@fluid-app/portal-sdk 0.1.249 → 0.1.251

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 (224) hide show
  1. package/dist/{AddressAutocompleteInput-B0qLrCHN.mjs → AddressAutocompleteInput-Bdsv2iFU.mjs} +2 -2
  2. package/dist/{AddressAutocompleteInput-B0qLrCHN.mjs.map → AddressAutocompleteInput-Bdsv2iFU.mjs.map} +1 -1
  3. package/dist/{ChartWidget-Ci4Q0Ig-.mjs → ChartWidget-aFsH9gwD.mjs} +2 -2
  4. package/dist/{ChartWidget-Ci4Q0Ig-.mjs.map → ChartWidget-aFsH9gwD.mjs.map} +1 -1
  5. package/dist/{ContactsScreen-Bq8zrA8k.mjs → ContactsScreen-DlxwuLwy.mjs} +4 -4
  6. package/dist/{ContactsScreen-Bq8zrA8k.mjs.map → ContactsScreen-DlxwuLwy.mjs.map} +1 -1
  7. package/dist/{FluidProvider-DS1QKy5j.mjs → FluidProvider-CvS807e4.mjs} +9 -9
  8. package/dist/{FluidProvider-DS1QKy5j.mjs.map → FluidProvider-CvS807e4.mjs.map} +1 -1
  9. package/dist/{InfiniteScrollSentinel-BHIgNtHI.mjs → InfiniteScrollSentinel-Dq--_LMC.mjs} +2 -2
  10. package/dist/{InfiniteScrollSentinel-BHIgNtHI.mjs.map → InfiniteScrollSentinel-Dq--_LMC.mjs.map} +1 -1
  11. package/dist/{LinkWidget-utkZrvAV.mjs → LinkWidget-CcEATaYa.mjs} +2 -2
  12. package/dist/{LinkWidget-utkZrvAV.mjs.map → LinkWidget-CcEATaYa.mjs.map} +1 -1
  13. package/dist/{MessagingScreen-CJ_9yIHK.mjs → MessagingScreen-D7crRUnX.mjs} +4 -4
  14. package/dist/{MessagingScreen-CJ_9yIHK.mjs.map → MessagingScreen-D7crRUnX.mjs.map} +1 -1
  15. package/dist/{MessagingScreen-s7CL9vPN.mjs → MessagingScreen-DZfFOdFI.mjs} +8 -8
  16. package/dist/{MessagingScreen-DeYSVcMd.cjs → MessagingScreen-GLb5id9n.cjs} +63 -130
  17. package/dist/MessagingScreen-GLb5id9n.cjs.map +1 -0
  18. package/dist/{MessagingScreen-FHwytr8B.cjs → MessagingScreen-jOf-MSk1.cjs} +1 -1
  19. package/dist/{MySiteScreen-DX8tBz8Z.mjs → MySiteScreen-CZFM4MQO.mjs} +3 -3
  20. package/dist/{MySiteScreen-DX8tBz8Z.mjs.map → MySiteScreen-CZFM4MQO.mjs.map} +1 -1
  21. package/dist/{OrdersScreen-B3vtWt8_.mjs → OrdersScreen-BDTtvnBR.mjs} +3 -3
  22. package/dist/{OrdersScreen-B3vtWt8_.mjs.map → OrdersScreen-BDTtvnBR.mjs.map} +1 -1
  23. package/dist/{ProfileScreen-IPuXlf9V.mjs → ProfileScreen--6ETap-j.mjs} +5 -5
  24. package/dist/{ProfileScreen-IPuXlf9V.mjs.map → ProfileScreen--6ETap-j.mjs.map} +1 -1
  25. package/dist/{ProfileScreen-m3fTsHyw.mjs → ProfileScreen-BXzIR1xc.mjs} +9 -9
  26. package/dist/{SearchSort-B5Jrk5lW.mjs → SearchSort-CnUiCGu2.mjs} +2 -2
  27. package/dist/{SearchSort-B5Jrk5lW.mjs.map → SearchSort-CnUiCGu2.mjs.map} +1 -1
  28. package/dist/{ShareablesScreen-NMoZH9ed.mjs → ShareablesScreen-BY47-Q_G.mjs} +4 -4
  29. package/dist/{ShareablesScreen-NMoZH9ed.mjs.map → ShareablesScreen-BY47-Q_G.mjs.map} +1 -1
  30. package/dist/{ShareablesScreen-Cd8chxk4.mjs → ShareablesScreen-D0z03RD0.mjs} +4 -4
  31. package/dist/{ShopScreen-DJANOOka.mjs → ShopScreen-BLU3IQ5B.mjs} +24 -24
  32. package/dist/{ShopScreen-DJANOOka.mjs.map → ShopScreen-BLU3IQ5B.mjs.map} +1 -1
  33. package/dist/{ShopScreen-CM3DDvLt.cjs → ShopScreen-BsfMjIPn.cjs} +21 -21
  34. package/dist/{ShopScreen-CM3DDvLt.cjs.map → ShopScreen-BsfMjIPn.cjs.map} +1 -1
  35. package/dist/{ShopScreen-BvSiWgsJ.mjs → ShopScreen-CKRSy_uk.mjs} +8 -8
  36. package/dist/{ShopScreen-Cz0dbkhp.cjs → ShopScreen-P7EazKlQ.cjs} +1 -1
  37. package/dist/{SubscriptionsScreen-DCUwHrdm.cjs → SubscriptionsScreen-BToWvdTh.cjs} +661 -252
  38. package/dist/SubscriptionsScreen-BToWvdTh.cjs.map +1 -0
  39. package/dist/{SubscriptionsScreen-rZxqb0eR.mjs → SubscriptionsScreen-CTGqV8gK.mjs} +567 -218
  40. package/dist/SubscriptionsScreen-CTGqV8gK.mjs.map +1 -0
  41. package/dist/{SubscriptionsScreen-BgKpfzi0.cjs → SubscriptionsScreen-DHTV7cFL.cjs} +1 -1
  42. package/dist/{TableWidget-CNCHDRrR.mjs → TableWidget-BtAfTNH_.mjs} +2 -2
  43. package/dist/{TableWidget-CNCHDRrR.mjs.map → TableWidget-BtAfTNH_.mjs.map} +1 -1
  44. package/dist/{ToDoWidget-C3lh-3SB.mjs → ToDoWidget-bn9bc_MO.mjs} +2 -2
  45. package/dist/{ToDoWidget-C3lh-3SB.mjs.map → ToDoWidget-bn9bc_MO.mjs.map} +1 -1
  46. package/dist/{UpgradeScreen-D_CM1n1M.mjs → UpgradeScreen-B-5QKZ_X.mjs} +2 -2
  47. package/dist/{UpgradeScreen-D_CM1n1M.mjs.map → UpgradeScreen-B-5QKZ_X.mjs.map} +1 -1
  48. package/dist/{components-D2h9u3tH.mjs → components-hloC7Tbu.mjs} +2 -2
  49. package/dist/{components-D2h9u3tH.mjs.map → components-hloC7Tbu.mjs.map} +1 -1
  50. package/dist/de-DGEv3Wj7.cjs +43 -0
  51. package/dist/de-DGEv3Wj7.cjs.map +1 -0
  52. package/dist/de-f_0MEvly.mjs +37 -0
  53. package/dist/de-f_0MEvly.mjs.map +1 -0
  54. package/dist/el-DBeHybzu.mjs +37 -0
  55. package/dist/el-DBeHybzu.mjs.map +1 -0
  56. package/dist/el-a-BUUyaN.cjs +43 -0
  57. package/dist/el-a-BUUyaN.cjs.map +1 -0
  58. package/dist/{es-C5dhBJ9E.mjs → es-B1tdcIoq.mjs} +2 -2
  59. package/dist/{es-C5dhBJ9E.mjs.map → es-B1tdcIoq.mjs.map} +1 -1
  60. package/dist/es-N-LjvJCS.cjs +43 -0
  61. package/dist/es-N-LjvJCS.cjs.map +1 -0
  62. package/dist/es-zRvcomm1.mjs +37 -0
  63. package/dist/es-zRvcomm1.mjs.map +1 -0
  64. package/dist/fr-CFggon_j.cjs +43 -0
  65. package/dist/fr-CFggon_j.cjs.map +1 -0
  66. package/dist/fr-DZ8hb7Li.mjs +37 -0
  67. package/dist/fr-DZ8hb7Li.mjs.map +1 -0
  68. package/dist/he-BXo3e9k9.mjs +37 -0
  69. package/dist/he-BXo3e9k9.mjs.map +1 -0
  70. package/dist/he-T4b_SIEg.cjs +43 -0
  71. package/dist/he-T4b_SIEg.cjs.map +1 -0
  72. package/dist/hu-C5uVO1Gi.cjs +43 -0
  73. package/dist/hu-C5uVO1Gi.cjs.map +1 -0
  74. package/dist/hu-DUbmD_v7.mjs +37 -0
  75. package/dist/hu-DUbmD_v7.mjs.map +1 -0
  76. package/dist/id-I8bH5NN_.mjs +37 -0
  77. package/dist/id-I8bH5NN_.mjs.map +1 -0
  78. package/dist/id-_R_sj2Zl.cjs +43 -0
  79. package/dist/id-_R_sj2Zl.cjs.map +1 -0
  80. package/dist/index.cjs +9 -9
  81. package/dist/index.mjs +39 -39
  82. package/dist/{format-CLUjV1oR.cjs → isAfter-DXdeICis.cjs} +80 -1
  83. package/dist/isAfter-DXdeICis.cjs.map +1 -0
  84. package/dist/it-BMvqaIb9.cjs +43 -0
  85. package/dist/it-BMvqaIb9.cjs.map +1 -0
  86. package/dist/it-D3Jf5QRi.mjs +37 -0
  87. package/dist/it-D3Jf5QRi.mjs.map +1 -0
  88. package/dist/ja-9CIQCExk.mjs +37 -0
  89. package/dist/ja-9CIQCExk.mjs.map +1 -0
  90. package/dist/ja-DBbelgna.cjs +43 -0
  91. package/dist/ja-DBbelgna.cjs.map +1 -0
  92. package/dist/ko-Bw-gMUu6.mjs +37 -0
  93. package/dist/ko-Bw-gMUu6.mjs.map +1 -0
  94. package/dist/ko-C0Tajaz1.cjs +43 -0
  95. package/dist/ko-C0Tajaz1.cjs.map +1 -0
  96. package/dist/nl-B89YTYeT.cjs +43 -0
  97. package/dist/nl-B89YTYeT.cjs.map +1 -0
  98. package/dist/nl-DDGMf5eH.mjs +37 -0
  99. package/dist/nl-DDGMf5eH.mjs.map +1 -0
  100. package/dist/{order-status-badge-CjX7Qxdk.mjs → order-status-badge-CKLegNhv.mjs} +4 -4
  101. package/dist/{order-status-badge-CjX7Qxdk.mjs.map → order-status-badge-CKLegNhv.mjs.map} +1 -1
  102. package/dist/pl--xhIwSlw.cjs +43 -0
  103. package/dist/pl--xhIwSlw.cjs.map +1 -0
  104. package/dist/pl-CdZlOTsS.mjs +37 -0
  105. package/dist/pl-CdZlOTsS.mjs.map +1 -0
  106. package/dist/pt-BdKQZfRo.mjs +37 -0
  107. package/dist/pt-BdKQZfRo.mjs.map +1 -0
  108. package/dist/pt-Cfp_A3CX.cjs +43 -0
  109. package/dist/pt-Cfp_A3CX.cjs.map +1 -0
  110. package/dist/ro-DnAztrxY.mjs +37 -0
  111. package/dist/ro-DnAztrxY.mjs.map +1 -0
  112. package/dist/ro-Qp0OJAI0.cjs +43 -0
  113. package/dist/ro-Qp0OJAI0.cjs.map +1 -0
  114. package/dist/ru-BkBpELbx.mjs +37 -0
  115. package/dist/ru-BkBpELbx.mjs.map +1 -0
  116. package/dist/ru-CY41Fh7R.cjs +43 -0
  117. package/dist/ru-CY41Fh7R.cjs.map +1 -0
  118. package/dist/{src-KINQ78Nj.mjs → src-jSFuc4IV.mjs} +2 -2
  119. package/dist/{src-KINQ78Nj.mjs.map → src-jSFuc4IV.mjs.map} +1 -1
  120. package/dist/th--13cvzk3.cjs +43 -0
  121. package/dist/th--13cvzk3.cjs.map +1 -0
  122. package/dist/th-B4QOqrXn.mjs +37 -0
  123. package/dist/th-B4QOqrXn.mjs.map +1 -0
  124. package/dist/tl-CEypklNf.mjs +37 -0
  125. package/dist/tl-CEypklNf.mjs.map +1 -0
  126. package/dist/tl-CaqI-eLl.cjs +43 -0
  127. package/dist/tl-CaqI-eLl.cjs.map +1 -0
  128. package/dist/tr-BzJ5aLBX.cjs +43 -0
  129. package/dist/tr-BzJ5aLBX.cjs.map +1 -0
  130. package/dist/tr-DUrLeX63.mjs +37 -0
  131. package/dist/tr-DUrLeX63.mjs.map +1 -0
  132. package/dist/zh_CN-2xAokYb4.cjs +43 -0
  133. package/dist/zh_CN-2xAokYb4.cjs.map +1 -0
  134. package/dist/zh_CN-Bhfuxe7w.mjs +37 -0
  135. package/dist/zh_CN-Bhfuxe7w.mjs.map +1 -0
  136. package/dist/zh_TW-B9XT91CL.cjs +43 -0
  137. package/dist/zh_TW-B9XT91CL.cjs.map +1 -0
  138. package/dist/zh_TW-DR3xhpLa.mjs +37 -0
  139. package/dist/zh_TW-DR3xhpLa.mjs.map +1 -0
  140. package/package.json +14 -14
  141. package/dist/MessagingScreen-DeYSVcMd.cjs.map +0 -1
  142. package/dist/SubscriptionsScreen-DCUwHrdm.cjs.map +0 -1
  143. package/dist/SubscriptionsScreen-rZxqb0eR.mjs.map +0 -1
  144. package/dist/de-CH__cDep.mjs +0 -6
  145. package/dist/de-CH__cDep.mjs.map +0 -1
  146. package/dist/de-CqKH8kwp.cjs +0 -12
  147. package/dist/de-CqKH8kwp.cjs.map +0 -1
  148. package/dist/el-CIrAhB-W.cjs +0 -12
  149. package/dist/el-CIrAhB-W.cjs.map +0 -1
  150. package/dist/el-De9QZiqh.mjs +0 -6
  151. package/dist/el-De9QZiqh.mjs.map +0 -1
  152. package/dist/es-4Wsa13tV.cjs +0 -12
  153. package/dist/es-4Wsa13tV.cjs.map +0 -1
  154. package/dist/es-CZLh7tET.mjs +0 -6
  155. package/dist/es-CZLh7tET.mjs.map +0 -1
  156. package/dist/format-CLUjV1oR.cjs.map +0 -1
  157. package/dist/fr-BDKPrKKW.cjs +0 -12
  158. package/dist/fr-BDKPrKKW.cjs.map +0 -1
  159. package/dist/fr-CIfM_0kG.mjs +0 -6
  160. package/dist/fr-CIfM_0kG.mjs.map +0 -1
  161. package/dist/he-5dq6lV2h.cjs +0 -12
  162. package/dist/he-5dq6lV2h.cjs.map +0 -1
  163. package/dist/he-BTK1iEJE.mjs +0 -6
  164. package/dist/he-BTK1iEJE.mjs.map +0 -1
  165. package/dist/hu-CrZGIbz9.mjs +0 -6
  166. package/dist/hu-CrZGIbz9.mjs.map +0 -1
  167. package/dist/hu-Dpgriy5N.cjs +0 -12
  168. package/dist/hu-Dpgriy5N.cjs.map +0 -1
  169. package/dist/id-B-LeCfHj.mjs +0 -6
  170. package/dist/id-B-LeCfHj.mjs.map +0 -1
  171. package/dist/id-Ba-0RT7y.cjs +0 -12
  172. package/dist/id-Ba-0RT7y.cjs.map +0 -1
  173. package/dist/it-CaxIV-R4.cjs +0 -12
  174. package/dist/it-CaxIV-R4.cjs.map +0 -1
  175. package/dist/it-rIkFmAF3.mjs +0 -6
  176. package/dist/it-rIkFmAF3.mjs.map +0 -1
  177. package/dist/ja--J_bhk3I.mjs +0 -6
  178. package/dist/ja--J_bhk3I.mjs.map +0 -1
  179. package/dist/ja-Lcg_Qqtj.cjs +0 -12
  180. package/dist/ja-Lcg_Qqtj.cjs.map +0 -1
  181. package/dist/ko-B2fghWQ9.mjs +0 -6
  182. package/dist/ko-B2fghWQ9.mjs.map +0 -1
  183. package/dist/ko-CFu0TjJO.cjs +0 -12
  184. package/dist/ko-CFu0TjJO.cjs.map +0 -1
  185. package/dist/nl-DR9IRXGT.cjs +0 -12
  186. package/dist/nl-DR9IRXGT.cjs.map +0 -1
  187. package/dist/nl-KgHmrRKy.mjs +0 -6
  188. package/dist/nl-KgHmrRKy.mjs.map +0 -1
  189. package/dist/pl-BJvDPvs3.mjs +0 -6
  190. package/dist/pl-BJvDPvs3.mjs.map +0 -1
  191. package/dist/pl-DSGSRDM2.cjs +0 -12
  192. package/dist/pl-DSGSRDM2.cjs.map +0 -1
  193. package/dist/pt-CmZpxftX.mjs +0 -6
  194. package/dist/pt-CmZpxftX.mjs.map +0 -1
  195. package/dist/pt-Pz_D1HUz.cjs +0 -12
  196. package/dist/pt-Pz_D1HUz.cjs.map +0 -1
  197. package/dist/ro-BoGeZTac.cjs +0 -12
  198. package/dist/ro-BoGeZTac.cjs.map +0 -1
  199. package/dist/ro-C_4rHVWp.mjs +0 -6
  200. package/dist/ro-C_4rHVWp.mjs.map +0 -1
  201. package/dist/ru-B0lzoBye.mjs +0 -6
  202. package/dist/ru-B0lzoBye.mjs.map +0 -1
  203. package/dist/ru-Cd7LUmcu.cjs +0 -12
  204. package/dist/ru-Cd7LUmcu.cjs.map +0 -1
  205. package/dist/th-DwLAQd0u.cjs +0 -12
  206. package/dist/th-DwLAQd0u.cjs.map +0 -1
  207. package/dist/th-QhoPGZ6C.mjs +0 -6
  208. package/dist/th-QhoPGZ6C.mjs.map +0 -1
  209. package/dist/tl-Dsfp243U.mjs +0 -6
  210. package/dist/tl-Dsfp243U.mjs.map +0 -1
  211. package/dist/tl-DwAVpDyB.cjs +0 -12
  212. package/dist/tl-DwAVpDyB.cjs.map +0 -1
  213. package/dist/tr-BFbCmHQZ.cjs +0 -12
  214. package/dist/tr-BFbCmHQZ.cjs.map +0 -1
  215. package/dist/tr-BiolaqkO.mjs +0 -6
  216. package/dist/tr-BiolaqkO.mjs.map +0 -1
  217. package/dist/zh_CN-Cn-k18Y5.cjs +0 -12
  218. package/dist/zh_CN-Cn-k18Y5.cjs.map +0 -1
  219. package/dist/zh_CN-DcGf3QsR.mjs +0 -6
  220. package/dist/zh_CN-DcGf3QsR.mjs.map +0 -1
  221. package/dist/zh_TW-CIUhIeJP.cjs +0 -12
  222. package/dist/zh_TW-CIUhIeJP.cjs.map +0 -1
  223. package/dist/zh_TW-DFw2O0OX.mjs +0 -6
  224. package/dist/zh_TW-DFw2O0OX.mjs.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"ProfileScreen-IPuXlf9V.mjs","names":[],"sources":["../src/screens/ProfileContentScreen.tsx","../src/screens/ProfileScreen.tsx"],"sourcesContent":["import { useCallback, useMemo } from \"react\";\nimport { useMutation, useQuery, useQueryClient } from \"@tanstack/react-query\";\nimport { useZodForm } from \"@fluid-app/ui-primitives\";\nimport { ProfileUIProvider } from \"@fluid-app/profile-core\";\nimport type { Language, PointsLedger } from \"@fluid-app/profile-core\";\nimport {\n Profile,\n AddressFormDialog,\n CreditCardFormDialog,\n MySiteProfileSection,\n MySiteProfileSocialSection,\n MySiteProfileSaveButton,\n mySiteProfileSchema,\n socialFields,\n} from \"@fluid-app/profile-ui\";\nimport type { MySiteProfileFormData } from \"@fluid-app/profile-ui\";\nimport type {\n UserFormData,\n EditPaymentMethodFormData,\n} from \"@fluid-app/profile-ui\";\nimport {\n FluidPayCoreProvider,\n type fluidPay,\n type State,\n} from \"@fluid-app/fluid-pay-core\";\nimport type {\n PayAddress,\n UpdatePaymentMethodBody,\n} from \"@fluid-app/portal-core/pay-types\";\nimport {\n createFluidPayApiAdapter,\n mapToFluidPayPaymentMethod,\n} from \"../adapters/fluid-pay-api-adapter\";\nimport type { AccountRep } from \"@fluid-app/portal-core/account-types\";\nimport { useAccountApi } from \"@fluid-app/portal-core/account-api-context\";\nimport { usePayApi } from \"@fluid-app/portal-core/pay-api-context\";\nimport {\n usePortalMySiteProfile,\n usePortalUpdateSettings,\n} from \"@fluid-app/mysite-ui/portal/hooks/use-mysite-portal\";\nimport { MySiteLinkCard } from \"@fluid-app/mysite-ui/portal/components\";\nimport { useCountriesApi } from \"@fluid-app/store-core/countries-api-context\";\nimport { useLanguagesApi } from \"@fluid-app/store-core/languages-api-context\";\nimport { AddressAutocompleteInput } from \"@fluid-app/address-autocomplete/components/AddressAutocompleteInput\";\nimport { accountKeys, payKeys, storeKeys } from \"../account/query-keys\";\nimport { useAccount } from \"../hooks/use-account\";\n\ninterface ProfileContentScreenProps {\n onToast: (message: string, type: \"success\" | \"error\" | \"warning\") => void;\n countryIso: string;\n}\n\nconst translations: Record<string, string> = {\n edit_profile: \"Edit Profile\",\n first_name: \"First Name\",\n last_name: \"Last Name\",\n phone_number: \"Phone Number\",\n language: \"Language\",\n first_name_is_required: \"First name is required\",\n last_name_is_required: \"Last name is required\",\n language_is_required: \"Language is required\",\n saving: \"Saving...\",\n save_changes: \"Save Changes\",\n select_an_option: \"Select an option\",\n points_history: \"Points History\",\n points_available: \"Points Available\",\n points_awarded: \"Points Awarded\",\n points_redeemed: \"Points Redeemed\",\n transaction: \"Transaction\",\n no_points_history_found: \"No points history found\",\n shipping_addresses: \"Shipping Addresses\",\n add_an_address: \"Add an Address\",\n delete_address: \"Delete Address\",\n delete_address_message:\n \"Are you sure you want to delete this address? This action cannot be undone.\",\n delete: \"Delete\",\n add_address: \"Add Address\",\n edit_address: \"Edit Address\",\n set_as_default_address: \"Set as default address\",\n save_address: \"Save Address\",\n card_number: \"Card Number\",\n expiration_date: \"Expiration (MM / YY)\",\n cvc: \"CVC\",\n cardholder_name: \"Cardholder Name\",\n add_credit_card: \"Add Credit Card\",\n save_card: \"Save Card\",\n securing: \"Loading secure form...\",\n payment_methods: \"Payment Methods\",\n add_payment_method: \"Add Payment Method\",\n delete_credit_card: \"Delete Credit Card\",\n delete_credit_card_message:\n \"Are you sure you want to delete this payment method? This action cannot be undone.\",\n edit_card: \"Card Details\",\n billing_address: \"Billing Address\",\n country: \"Country\",\n name: \"Name\",\n address_line_1: \"Address Line 1\",\n address_line_2: \"Address Line 2\",\n city: \"City\",\n state: \"State\",\n province: \"Province\",\n zip_code: \"Zip Code\",\n postal_code: \"Postal Code\",\n select_state: \"Select state\",\n set_as_default_payment_method: \"Set as default payment method\",\n cancel: \"Cancel\",\n save: \"Save\",\n close: \"Close\",\n edit: \"Edit\",\n default: \"Default\",\n card_expires: \"Expires\",\n no_billing_address: \"No billing address on file\",\n default_payment_method_updated: \"Payment method updated\",\n failed_to_set_default_payment_method: \"Failed to update payment method\",\n};\n\nfunction t(key: string): string {\n if (translations[key]) return translations[key];\n return key\n .split(\"_\")\n .map((word) => word.charAt(0).toUpperCase() + word.slice(1))\n .join(\" \");\n}\n\nfunction adaptPointsLedger(\n entry: import(\"@fluid-app/portal-core/pay-types\").PointsLedgerEntry,\n): PointsLedger {\n const meta = entry.metadata as {\n transaction_type?: string | null;\n source?: {\n name: string;\n email?: string;\n reason?: string;\n user_id?: number;\n } | null;\n } | null;\n return {\n id: entry.id,\n amount: entry.amount,\n company_id: 0,\n created_at: entry.created_at,\n customer_id: 0,\n metadata: {\n transaction_type: meta?.transaction_type ?? undefined,\n source: meta?.source ?? undefined,\n },\n total_balance: entry.total_balance,\n updated_at: entry.created_at,\n };\n}\n\nfunction mapAccountToCustomerAccount(\n raw: AccountRep,\n): fluidPay.CustomerAccount {\n return {\n fluid_pay_account: {\n id: raw.id,\n email: raw.email,\n address_count: 0,\n payment_methods_count: 0,\n language_iso: null,\n },\n customer: {\n id: raw.id,\n active: true,\n active_subscriptions_count: 0,\n display_total_spent: \"0\",\n email: raw.email,\n first_name: raw.first_name,\n full_name: `${raw.first_name} ${raw.last_name}`.trim(),\n inactive_subscriptions_count: 0,\n is_rep: raw.member_type === \"rep\",\n phone: raw.phone,\n orders_count: 0,\n },\n };\n}\n\nfunction composeAddressName(\n firstName: string,\n lastName: string,\n): string | null {\n const combined = `${firstName} ${lastName}`.trim();\n return combined.length > 0 ? combined : null;\n}\n\nfunction mapToFluidPayAddress(raw: PayAddress): fluidPay.CustomerAddress {\n return {\n id: raw.id,\n address1: raw.street1,\n address2: raw.street2,\n city: raw.city,\n country_code: raw.country,\n default: raw.default,\n name: raw.name,\n postal_code: raw.zip,\n state: raw.state,\n subdivision_code: null,\n };\n}\n\ntype SocialFieldKey = (typeof socialFields)[number][\"name\"];\n\nfunction mapAccountToMySiteFormValues(\n account: AccountRep | undefined,\n): MySiteProfileFormData {\n const social = account?.social_links ?? {};\n const result = { bio: account?.bio ?? \"\" } as MySiteProfileFormData;\n for (const { name } of socialFields) {\n result[name] = social[name] ?? \"\";\n }\n return result;\n}\n\nfunction mapFormToSocialLinks(\n data: MySiteProfileFormData,\n): Record<SocialFieldKey, string> {\n const result = {} as Record<SocialFieldKey, string>;\n for (const { name } of socialFields) {\n result[name] = data[name] ?? \"\";\n }\n return result;\n}\n\nexport function ProfileContentScreen({\n onToast,\n countryIso: _countryIso,\n}: ProfileContentScreenProps): React.JSX.Element {\n const payApi = usePayApi();\n const accountApi = useAccountApi();\n const queryClient = useQueryClient();\n const fluidPayShim = useMemo(\n () => createFluidPayApiAdapter(payApi),\n [payApi],\n );\n\n const { data: mySiteProfile } = usePortalMySiteProfile();\n const updateMySiteSettingsMutation = usePortalUpdateSettings();\n\n const mySiteUrl = mySiteProfile?.mysite_url ?? \"\";\n const mySiteDisplayUrl = mySiteUrl\n ? mySiteUrl.replace(/^https?:\\/\\//, \"\")\n : \"\";\n\n const handleUpdateSlug = useCallback(\n async (slug: string) => {\n await updateMySiteSettingsMutation.mutateAsync({ slug });\n },\n [updateMySiteSettingsMutation],\n );\n\n // Reuse the app-wide useAccount() cache entry shared with AppShell/PageRouter.\n const {\n data: accountRep,\n isLoading: isLoadingAccount,\n isError: isAccountError,\n } = useAccount();\n\n const mySiteFormValues = useMemo(\n () => mapAccountToMySiteFormValues(accountRep),\n [accountRep],\n );\n\n const {\n control: mySiteControl,\n handleSubmit: handleMySiteSubmit,\n formState: { isDirty: isMySiteDirty },\n } = useZodForm<MySiteProfileFormData>(mySiteProfileSchema, {\n values: mySiteFormValues,\n });\n\n const updateMySiteProfileMutation = useMutation({\n mutationFn: (data: MySiteProfileFormData) =>\n accountApi.updateAccount({\n account: {\n bio: data.bio,\n social_links: mapFormToSocialLinks(data),\n },\n }),\n onSuccess: () => {\n queryClient.invalidateQueries({ queryKey: accountKeys.all });\n onToast(\"Profile updated successfully\", \"success\");\n },\n onError: () => {\n onToast(\"Failed to update profile\", \"error\");\n },\n });\n\n const handleMySiteProfileSubmit = handleMySiteSubmit((data) => {\n updateMySiteProfileMutation.mutate(data);\n });\n const accountData = useMemo(\n () => (accountRep ? mapAccountToCustomerAccount(accountRep) : undefined),\n [accountRep],\n );\n\n const { data: addressesData, isLoading: isLoadingAddresses } = useQuery({\n queryKey: payKeys.addresses.list(),\n queryFn: async () => {\n const response = await payApi.fetchAddresses();\n return response.addresses.map(mapToFluidPayAddress);\n },\n enabled: true,\n });\n\n const { data: paymentMethodsData, isLoading: isLoadingPaymentMethods } =\n useQuery({\n queryKey: payKeys.paymentMethods.list(),\n queryFn: async () => {\n const response = await payApi.fetchPaymentMethods();\n return response.payment_methods.map(mapToFluidPayPaymentMethod);\n },\n enabled: true,\n });\n\n const countriesAdapter = useCountriesApi();\n const languagesAdapter = useLanguagesApi();\n\n const { data: countriesData } = useQuery({\n queryKey: storeKeys.countries(),\n queryFn: () => countriesAdapter.listCountries(),\n enabled: true,\n });\n\n const { data: languagesData } = useQuery({\n queryKey: storeKeys.languages(),\n queryFn: () => languagesAdapter.listLanguages(),\n enabled: true,\n });\n\n const {\n data: pointsLedgerData,\n isLoading: isLoadingPointsLedger,\n isError: isPointsLedgerError,\n } = useQuery({\n queryKey: payKeys.pointsLedgers.list(),\n queryFn: () => payApi.fetchPointsLedgers(),\n enabled: true,\n // BFF returns 403 when reward points are not enabled for the company.\n // Don't retry on 403 so the UI simply hides the points section.\n retry: (failureCount, error) => {\n if (\n error instanceof Error &&\n \"status\" in error &&\n (error as { status: number }).status === 403\n ) {\n return false;\n }\n return failureCount < 1;\n },\n });\n\n // Points are enabled if the fetch succeeded (non-403)\n const rewardPointsEnabled = !isPointsLedgerError && pointsLedgerData != null;\n\n const updateCustomerMutation = useMutation({\n mutationFn: async (data: UserFormData) => {\n await accountApi.updateAccount({\n account: {\n first_name: data.first_name,\n last_name: data.last_name,\n phone: data.phone_number,\n },\n });\n },\n onSuccess: () => {\n queryClient.invalidateQueries({ queryKey: accountKeys.all });\n onToast(\"Profile updated\", \"success\");\n },\n onError: () => {\n onToast(\"Failed to update profile\", \"error\");\n },\n });\n\n const deleteAddressMutation = useMutation({\n mutationFn: (addressId: number) => payApi.deleteAddress(addressId),\n onSuccess: () => {\n queryClient.invalidateQueries({ queryKey: payKeys.addresses.all });\n },\n onError: () => {\n onToast(\"Failed to delete address\", \"error\");\n },\n });\n\n const deletePaymentMethodMutation = useMutation({\n mutationFn: (paymentMethodId: number) =>\n payApi.deletePaymentMethod(paymentMethodId),\n onSuccess: () => {\n queryClient.invalidateQueries({\n queryKey: payKeys.paymentMethods.all,\n });\n },\n onError: () => {\n onToast(\"Failed to delete payment method\", \"error\");\n },\n });\n\n const updatePaymentMethodMutation = useMutation({\n mutationFn: ({\n paymentMethodId,\n data,\n }: {\n paymentMethodId: number;\n data: EditPaymentMethodFormData;\n }) =>\n payApi.updatePaymentMethod(paymentMethodId, {\n payment_method: {\n default: data.set_as_default,\n billing_address: {\n name: data.billing_address.name,\n street1: data.billing_address.address1,\n street2: data.billing_address.address2 ?? null,\n city: data.billing_address.city,\n state: data.billing_address.state,\n zip: data.billing_address.zip,\n country: data.billing_address.country_code,\n },\n },\n }),\n onSuccess: () => {\n queryClient.invalidateQueries({\n queryKey: payKeys.paymentMethods.all,\n });\n },\n onError: () => {\n onToast(\"Failed to update payment method\", \"error\");\n },\n });\n\n const makeDefaultPaymentMethodMutation = useMutation({\n mutationFn: (paymentMethodId: number) => {\n const pm = (paymentMethodsData ?? []).find(\n (p) => p.id === paymentMethodId,\n );\n if (!pm) throw new Error(\"Payment method not found\");\n const body: UpdatePaymentMethodBody = {\n payment_method: { default: true },\n };\n if (pm.billing_address) {\n body.payment_method.billing_address = {\n name: pm.billing_address.name,\n street1: pm.billing_address.address1 ?? \"\",\n street2: pm.billing_address.address2 ?? null,\n city: pm.billing_address.city ?? \"\",\n state: pm.billing_address.state ?? \"\",\n zip: pm.billing_address.zip ?? \"\",\n country: pm.billing_address.country_code ?? \"\",\n };\n }\n return payApi.updatePaymentMethod(paymentMethodId, body);\n },\n onSuccess: () => {\n queryClient.invalidateQueries({ queryKey: payKeys.paymentMethods.all });\n onToast(\"Default payment method updated\", \"success\");\n },\n onError: () => {\n onToast(\"Failed to update default payment method\", \"error\");\n },\n });\n\n const makeDefaultAddressMutation = useMutation({\n mutationFn: (addressId: number) => {\n const addr = addresses.find((a) => a.id === addressId);\n if (!addr) throw new Error(\"Address not found\");\n return payApi.updateAddress(addressId, {\n address: {\n name: addr.name ?? null,\n street1: addr.address1,\n street2: addr.address2,\n city: addr.city,\n state: addr.state,\n zip: addr.postal_code,\n country: addr.country_code ?? \"\",\n default: true,\n },\n });\n },\n onSuccess: () => {\n queryClient.invalidateQueries({ queryKey: payKeys.addresses.all });\n onToast(\"Default address updated\", \"success\");\n },\n onError: () => {\n onToast(\"Failed to update default address\", \"error\");\n },\n });\n\n const createAddressMutation = useMutation({\n mutationFn: (body: fluidPay.CreateAddressBody) =>\n payApi.createAddress({\n address: {\n name: composeAddressName(\n body.address.first_name,\n body.address.last_name,\n ),\n street1: body.address.address1,\n street2: body.address.address2,\n city: body.address.city,\n state: body.address.state,\n zip: body.address.postal_code,\n country: body.address.country_code,\n },\n }),\n onSuccess: () => {\n queryClient.invalidateQueries({ queryKey: payKeys.addresses.all });\n onToast(\"Address created\", \"success\");\n },\n onError: () => {\n onToast(\"Failed to create address\", \"error\");\n },\n });\n\n const updateAddressMutation = useMutation({\n mutationFn: ({\n addressId,\n body,\n }: {\n addressId: number;\n body: fluidPay.CreateAddressBody;\n }) =>\n payApi.updateAddress(addressId, {\n address: {\n name: composeAddressName(\n body.address.first_name,\n body.address.last_name,\n ),\n street1: body.address.address1,\n street2: body.address.address2,\n city: body.address.city,\n state: body.address.state,\n zip: body.address.postal_code,\n country: body.address.country_code,\n },\n }),\n onSuccess: () => {\n queryClient.invalidateQueries({ queryKey: payKeys.addresses.all });\n onToast(\"Address updated\", \"success\");\n },\n onError: () => {\n onToast(\"Failed to update address\", \"error\");\n },\n });\n\n const addCreditCardMutation = useMutation({\n mutationFn: (data: fluidPay.AddCreditCardData) =>\n payApi.createPaymentMethod({\n payment_method: {\n type: \"card\",\n token: data.payment_method.token,\n default: data.default_payment_method,\n },\n }),\n onSuccess: () => {\n queryClient.invalidateQueries({\n queryKey: payKeys.paymentMethods.all,\n });\n onToast(\"Payment method added\", \"success\");\n },\n onError: () => {\n onToast(\"Failed to add payment method\", \"error\");\n },\n });\n\n const addresses = addressesData ?? [];\n const paymentMethods = paymentMethodsData ?? [];\n\n const adaptedPointsLedger: PointsLedger[] =\n pointsLedgerData?.points_ledgers?.map(adaptPointsLedger) ?? [];\n\n const adaptedLanguages: Language[] = (languagesData?.languages ?? []).map(\n (l, i) => ({ id: i, name: l.name, iso: l.code }),\n );\n\n const countries = countriesData?.countries;\n\n const countryOptions = useMemo(\n () =>\n [...(countries ?? [])]\n .map((c) => ({ iso: c.code, name: c.name }))\n .sort((a, b) => a.name.localeCompare(b.name)),\n [countries],\n );\n\n const statesByCountry = useMemo(() => {\n const map = new Map<string, State[]>();\n for (const c of countries ?? []) {\n map.set(\n c.code,\n c.states.map((s) => ({ name: s.name, isoCode: s.code })),\n );\n }\n return map;\n }, [countries]);\n\n const fetchStatesFromCountries = useCallback(\n (countryCode: string): Promise<State[]> =>\n Promise.resolve(statesByCountry.get(countryCode) ?? []),\n [statesByCountry],\n );\n\n if (isAccountError && !isLoadingAccount) {\n return (\n <div className=\"px-4 py-8 sm:px-9\">\n <div className=\"text-muted-foreground text-center text-sm\">\n Unable to load account data. Please try again later.\n </div>\n </div>\n );\n }\n\n if (isLoadingAccount || !accountData) {\n return (\n <div className=\"px-4 pt-4 sm:px-9 md:pt-8\">\n <div className=\"space-y-4\">\n <div className=\"bg-muted h-16 animate-pulse rounded\" />\n <div className=\"bg-muted h-32 animate-pulse rounded\" />\n <div className=\"bg-muted h-32 animate-pulse rounded\" />\n </div>\n </div>\n );\n }\n\n return (\n <div className=\"px-4 pt-4 sm:px-9 md:pt-8\">\n <FluidPayCoreProvider api={fluidPayShim}>\n <ProfileUIProvider t={t}>\n <Profile\n customerAccount={accountData}\n languages={adaptedLanguages}\n onUpdateCustomer={async (data) => {\n await updateCustomerMutation.mutateAsync(data);\n }}\n isUpdatingCustomer={updateCustomerMutation.isPending}\n // TODO: wire onChangeEmail to PATCH /v202506/users/:id/change_email\n // once portal self-service email change is designed\n // onChangeEmail={...}\n // pendingEmail={pendingEmail}\n rewardsPointsEnabled={rewardPointsEnabled}\n pointsLedger={adaptedPointsLedger}\n isLoadingPointsLedger={isLoadingPointsLedger}\n addresses={addresses}\n isLoadingAddresses={isLoadingAddresses}\n onDeleteAddress={async (addressId) => {\n await deleteAddressMutation.mutateAsync(addressId);\n }}\n isDeletingAddress={deleteAddressMutation.isPending}\n onMakeDefaultAddress={async (addressId) => {\n await makeDefaultAddressMutation.mutateAsync(addressId);\n }}\n paymentMethods={paymentMethods}\n isLoadingPaymentMethods={isLoadingPaymentMethods}\n onDeletePaymentMethod={async (paymentMethodId) => {\n await deletePaymentMethodMutation.mutateAsync(paymentMethodId);\n }}\n isDeletingPaymentMethod={deletePaymentMethodMutation.isPending}\n onMakeDefaultPaymentMethod={async (paymentMethodId) => {\n await makeDefaultPaymentMethodMutation.mutateAsync(\n paymentMethodId,\n );\n }}\n onUpdatePaymentMethod={async (paymentMethodId, data) => {\n await updatePaymentMethodMutation.mutateAsync({\n paymentMethodId,\n data,\n });\n }}\n isUpdatingPaymentMethod={updatePaymentMethodMutation.isPending}\n getBillingAddress={(paymentMethod) =>\n paymentMethod.billing_address ?? null\n }\n countries={countryOptions}\n renderAddressDialog={({ isOpen, onClose, selectedAddress }) => (\n <AddressFormDialog\n isOpen={isOpen}\n onClose={onClose}\n selectedAddress={selectedAddress}\n t={t}\n onSubmit={async (formData) => {\n if (selectedAddress) {\n await updateAddressMutation.mutateAsync({\n addressId: selectedAddress.id,\n body: formData,\n });\n } else {\n await createAddressMutation.mutateAsync(formData);\n }\n onClose();\n }}\n isSubmitting={\n createAddressMutation.isPending ||\n updateAddressMutation.isPending\n }\n countries={countryOptions}\n fetchStates={fetchStatesFromCountries}\n renderAddressAutocomplete={({\n control,\n setValue,\n countryCode,\n }) => (\n <AddressAutocompleteInput\n control={control}\n setValue={setValue}\n countryIso={countryCode}\n addressLineField=\"address1\"\n cityField=\"city\"\n stateField=\"state\"\n postalCodeField=\"postal_code\"\n placeholder={t(\"address_line_1\")}\n />\n )}\n />\n )}\n renderCreditCardDialog={({ isOpen, onClose }) => (\n <CreditCardFormDialog\n isOpen={isOpen}\n onClose={onClose}\n t={t}\n onSubmit={async (data) => {\n try {\n await addCreditCardMutation.mutateAsync(data);\n onClose();\n } catch {\n // onError surfaces the toast; swallow here so the dialog\n // doesn't see an unhandled rejection.\n }\n }}\n isSubmitting={addCreditCardMutation.isPending}\n countries={countryOptions}\n jwt=\"\"\n renderAddressAutocomplete={({\n control,\n setValue,\n countryCode,\n }) => (\n <AddressAutocompleteInput\n control={control}\n setValue={setValue}\n countryIso={countryCode}\n addressLineField=\"address1\"\n cityField=\"city\"\n stateField=\"state\"\n postalCodeField=\"zip\"\n placeholder={t(\"address_line_1\")}\n />\n )}\n />\n )}\n footer={\n <>\n <MySiteLinkCard\n mysiteUrl={mySiteUrl}\n displayUrl={mySiteDisplayUrl}\n onUpdateSlug={handleUpdateSlug}\n onToast={onToast}\n />\n <MySiteProfileSocialSection control={mySiteControl} />\n <MySiteProfileSaveButton\n isDirty={isMySiteDirty}\n isPending={updateMySiteProfileMutation.isPending}\n onSubmit={handleMySiteProfileSubmit}\n />\n </>\n }\n >\n <MySiteProfileSection\n avatarUrl={accountRep?.avatar_url}\n initial={accountRep?.first_name?.[0]?.toUpperCase() ?? \"U\"}\n control={mySiteControl}\n />\n </Profile>\n </ProfileUIProvider>\n </FluidPayCoreProvider>\n </div>\n );\n}\n","import { type ComponentProps, useMemo } from \"react\";\nimport {\n Breadcrumb,\n BreadcrumbList,\n BreadcrumbItem,\n BreadcrumbPage,\n fluidToast,\n} from \"@fluid-app/ui-primitives\";\nimport { useScreenHeaderBreadcrumbs } from \"@fluid-app/portal-react/shell/ScreenHeaderContext\";\nimport type {\n BackgroundValue,\n BorderRadiusOptions,\n ColorOptions,\n PaddingOptions,\n} from \"../types\";\nimport type { WidgetPropertySchema } from \"../registries/property-schema-types\";\nimport { useFluidContext } from \"../providers/FluidProvider\";\nimport { ProfileContentScreen } from \"./ProfileContentScreen\";\n\ntype ProfileScreenProps = ComponentProps<\"div\"> & {\n background?: BackgroundValue;\n textColor?: ColorOptions;\n accentColor?: ColorOptions;\n padding?: PaddingOptions;\n borderRadius?: BorderRadiusOptions;\n onToast?: (message: string, type: \"success\" | \"error\" | \"warning\") => void;\n};\n\nfunction defaultToast(message: string, type: \"success\" | \"error\" | \"warning\") {\n fluidToast({ title: message, type });\n}\n\nexport function ProfileScreen({\n onToast,\n /* eslint-disable @typescript-eslint/no-unused-vars -- destructured to exclude from divProps spread */\n background,\n textColor,\n accentColor,\n padding,\n borderRadius,\n /* eslint-enable @typescript-eslint/no-unused-vars */\n ...divProps\n}: ProfileScreenProps): React.JSX.Element {\n const { config } = useFluidContext();\n const effectiveToast = onToast ?? defaultToast;\n const countryIso = config.countryIso ?? \"US\";\n\n const headerBreadcrumbs = useMemo(\n () => (\n <Breadcrumb>\n <BreadcrumbList className=\"text-lg\">\n <BreadcrumbItem>\n <BreadcrumbPage className=\"font-semibold\">Profile</BreadcrumbPage>\n </BreadcrumbItem>\n </BreadcrumbList>\n </Breadcrumb>\n ),\n [],\n );\n useScreenHeaderBreadcrumbs(headerBreadcrumbs);\n\n return (\n <div {...divProps}>\n <ProfileContentScreen onToast={effectiveToast} countryIso={countryIso} />\n </div>\n );\n}\n\nexport const profileScreenPropertySchema: WidgetPropertySchema = {\n widgetType: \"ProfileScreen\",\n displayName: \"Profile Screen\",\n tabsConfig: [{ id: \"styling\", label: \"Styling\" }],\n fields: [],\n} as const satisfies WidgetPropertySchema;\n"],"mappings":";;;;;;;;;;;;;;;AAoDA,MAAM,eAAuC;CAC3C,cAAc;CACd,YAAY;CACZ,WAAW;CACX,cAAc;CACd,UAAU;CACV,wBAAwB;CACxB,uBAAuB;CACvB,sBAAsB;CACtB,QAAQ;CACR,cAAc;CACd,kBAAkB;CAClB,gBAAgB;CAChB,kBAAkB;CAClB,gBAAgB;CAChB,iBAAiB;CACjB,aAAa;CACb,yBAAyB;CACzB,oBAAoB;CACpB,gBAAgB;CAChB,gBAAgB;CAChB,wBACE;CACF,QAAQ;CACR,aAAa;CACb,cAAc;CACd,wBAAwB;CACxB,cAAc;CACd,aAAa;CACb,iBAAiB;CACjB,KAAK;CACL,iBAAiB;CACjB,iBAAiB;CACjB,WAAW;CACX,UAAU;CACV,iBAAiB;CACjB,oBAAoB;CACpB,oBAAoB;CACpB,4BACE;CACF,WAAW;CACX,iBAAiB;CACjB,SAAS;CACT,MAAM;CACN,gBAAgB;CAChB,gBAAgB;CAChB,MAAM;CACN,OAAO;CACP,UAAU;CACV,UAAU;CACV,aAAa;CACb,cAAc;CACd,+BAA+B;CAC/B,QAAQ;CACR,MAAM;CACN,OAAO;CACP,MAAM;CACN,SAAS;CACT,cAAc;CACd,oBAAoB;CACpB,gCAAgC;CAChC,sCAAsC;CACvC;AAED,SAAS,EAAE,KAAqB;AAC9B,KAAI,aAAa,KAAM,QAAO,aAAa;AAC3C,QAAO,IACJ,MAAM,IAAI,CACV,KAAK,SAAS,KAAK,OAAO,EAAE,CAAC,aAAa,GAAG,KAAK,MAAM,EAAE,CAAC,CAC3D,KAAK,IAAI;;AAGd,SAAS,kBACP,OACc;CACd,MAAM,OAAO,MAAM;AASnB,QAAO;EACL,IAAI,MAAM;EACV,QAAQ,MAAM;EACd,YAAY;EACZ,YAAY,MAAM;EAClB,aAAa;EACb,UAAU;GACR,kBAAkB,MAAM,oBAAoB,KAAA;GAC5C,QAAQ,MAAM,UAAU,KAAA;GACzB;EACD,eAAe,MAAM;EACrB,YAAY,MAAM;EACnB;;AAGH,SAAS,4BACP,KAC0B;AAC1B,QAAO;EACL,mBAAmB;GACjB,IAAI,IAAI;GACR,OAAO,IAAI;GACX,eAAe;GACf,uBAAuB;GACvB,cAAc;GACf;EACD,UAAU;GACR,IAAI,IAAI;GACR,QAAQ;GACR,4BAA4B;GAC5B,qBAAqB;GACrB,OAAO,IAAI;GACX,YAAY,IAAI;GAChB,WAAW,GAAG,IAAI,WAAW,GAAG,IAAI,YAAY,MAAM;GACtD,8BAA8B;GAC9B,QAAQ,IAAI,gBAAgB;GAC5B,OAAO,IAAI;GACX,cAAc;GACf;EACF;;AAGH,SAAS,mBACP,WACA,UACe;CACf,MAAM,WAAW,GAAG,UAAU,GAAG,WAAW,MAAM;AAClD,QAAO,SAAS,SAAS,IAAI,WAAW;;AAG1C,SAAS,qBAAqB,KAA2C;AACvE,QAAO;EACL,IAAI,IAAI;EACR,UAAU,IAAI;EACd,UAAU,IAAI;EACd,MAAM,IAAI;EACV,cAAc,IAAI;EAClB,SAAS,IAAI;EACb,MAAM,IAAI;EACV,aAAa,IAAI;EACjB,OAAO,IAAI;EACX,kBAAkB;EACnB;;AAKH,SAAS,6BACP,SACuB;CACvB,MAAM,SAAS,SAAS,gBAAgB,EAAE;CAC1C,MAAM,SAAS,EAAE,KAAK,SAAS,OAAO,IAAI;AAC1C,MAAK,MAAM,EAAE,UAAU,aACrB,QAAO,QAAQ,OAAO,SAAS;AAEjC,QAAO;;AAGT,SAAS,qBACP,MACgC;CAChC,MAAM,SAAS,EAAE;AACjB,MAAK,MAAM,EAAE,UAAU,aACrB,QAAO,QAAQ,KAAK,SAAS;AAE/B,QAAO;;AAGT,SAAgB,qBAAqB,EACnC,SACA,YAAY,eACmC;CAC/C,MAAM,SAAS,WAAW;CAC1B,MAAM,aAAa,eAAe;CAClC,MAAM,cAAc,gBAAgB;CACpC,MAAM,eAAe,cACb,yBAAyB,OAAO,EACtC,CAAC,OAAO,CACT;CAED,MAAM,EAAE,MAAM,kBAAkB,wBAAwB;CACxD,MAAM,+BAA+B,yBAAyB;CAE9D,MAAM,YAAY,eAAe,cAAc;CAC/C,MAAM,mBAAmB,YACrB,UAAU,QAAQ,gBAAgB,GAAG,GACrC;CAEJ,MAAM,mBAAmB,YACvB,OAAO,SAAiB;AACtB,QAAM,6BAA6B,YAAY,EAAE,MAAM,CAAC;IAE1D,CAAC,6BAA6B,CAC/B;CAGD,MAAM,EACJ,MAAM,YACN,WAAW,kBACX,SAAS,mBACP,YAAY;CAOhB,MAAM,EACJ,SAAS,eACT,cAAc,oBACd,WAAW,EAAE,SAAS,oBACpB,WAAkC,qBAAqB,EACzD,QAVuB,cACjB,6BAA6B,WAAW,EAC9C,CAAC,WAAW,CACb,EAQA,CAAC;CAEF,MAAM,8BAA8B,YAAY;EAC9C,aAAa,SACX,WAAW,cAAc,EACvB,SAAS;GACP,KAAK,KAAK;GACV,cAAc,qBAAqB,KAAK;GACzC,EACF,CAAC;EACJ,iBAAiB;AACf,eAAY,kBAAkB,EAAE,UAAU,YAAY,KAAK,CAAC;AAC5D,WAAQ,gCAAgC,UAAU;;EAEpD,eAAe;AACb,WAAQ,4BAA4B,QAAQ;;EAE/C,CAAC;CAEF,MAAM,4BAA4B,oBAAoB,SAAS;AAC7D,8BAA4B,OAAO,KAAK;GACxC;CACF,MAAM,cAAc,cACX,aAAa,4BAA4B,WAAW,GAAG,KAAA,GAC9D,CAAC,WAAW,CACb;CAED,MAAM,EAAE,MAAM,eAAe,WAAW,uBAAuB,SAAS;EACtE,UAAU,QAAQ,UAAU,MAAM;EAClC,SAAS,YAAY;AAEnB,WADiB,MAAM,OAAO,gBAAgB,EAC9B,UAAU,IAAI,qBAAqB;;EAErD,SAAS;EACV,CAAC;CAEF,MAAM,EAAE,MAAM,oBAAoB,WAAW,4BAC3C,SAAS;EACP,UAAU,QAAQ,eAAe,MAAM;EACvC,SAAS,YAAY;AAEnB,WADiB,MAAM,OAAO,qBAAqB,EACnC,gBAAgB,IAAI,2BAA2B;;EAEjE,SAAS;EACV,CAAC;CAEJ,MAAM,mBAAmB,iBAAiB;CAC1C,MAAM,mBAAmB,iBAAiB;CAE1C,MAAM,EAAE,MAAM,kBAAkB,SAAS;EACvC,UAAU,UAAU,WAAW;EAC/B,eAAe,iBAAiB,eAAe;EAC/C,SAAS;EACV,CAAC;CAEF,MAAM,EAAE,MAAM,kBAAkB,SAAS;EACvC,UAAU,UAAU,WAAW;EAC/B,eAAe,iBAAiB,eAAe;EAC/C,SAAS;EACV,CAAC;CAEF,MAAM,EACJ,MAAM,kBACN,WAAW,uBACX,SAAS,wBACP,SAAS;EACX,UAAU,QAAQ,cAAc,MAAM;EACtC,eAAe,OAAO,oBAAoB;EAC1C,SAAS;EAGT,QAAQ,cAAc,UAAU;AAC9B,OACE,iBAAiB,SACjB,YAAY,SACX,MAA6B,WAAW,IAEzC,QAAO;AAET,UAAO,eAAe;;EAEzB,CAAC;CAGF,MAAM,sBAAsB,CAAC,uBAAuB,oBAAoB;CAExE,MAAM,yBAAyB,YAAY;EACzC,YAAY,OAAO,SAAuB;AACxC,SAAM,WAAW,cAAc,EAC7B,SAAS;IACP,YAAY,KAAK;IACjB,WAAW,KAAK;IAChB,OAAO,KAAK;IACb,EACF,CAAC;;EAEJ,iBAAiB;AACf,eAAY,kBAAkB,EAAE,UAAU,YAAY,KAAK,CAAC;AAC5D,WAAQ,mBAAmB,UAAU;;EAEvC,eAAe;AACb,WAAQ,4BAA4B,QAAQ;;EAE/C,CAAC;CAEF,MAAM,wBAAwB,YAAY;EACxC,aAAa,cAAsB,OAAO,cAAc,UAAU;EAClE,iBAAiB;AACf,eAAY,kBAAkB,EAAE,UAAU,QAAQ,UAAU,KAAK,CAAC;;EAEpE,eAAe;AACb,WAAQ,4BAA4B,QAAQ;;EAE/C,CAAC;CAEF,MAAM,8BAA8B,YAAY;EAC9C,aAAa,oBACX,OAAO,oBAAoB,gBAAgB;EAC7C,iBAAiB;AACf,eAAY,kBAAkB,EAC5B,UAAU,QAAQ,eAAe,KAClC,CAAC;;EAEJ,eAAe;AACb,WAAQ,mCAAmC,QAAQ;;EAEtD,CAAC;CAEF,MAAM,8BAA8B,YAAY;EAC9C,aAAa,EACX,iBACA,WAKA,OAAO,oBAAoB,iBAAiB,EAC1C,gBAAgB;GACd,SAAS,KAAK;GACd,iBAAiB;IACf,MAAM,KAAK,gBAAgB;IAC3B,SAAS,KAAK,gBAAgB;IAC9B,SAAS,KAAK,gBAAgB,YAAY;IAC1C,MAAM,KAAK,gBAAgB;IAC3B,OAAO,KAAK,gBAAgB;IAC5B,KAAK,KAAK,gBAAgB;IAC1B,SAAS,KAAK,gBAAgB;IAC/B;GACF,EACF,CAAC;EACJ,iBAAiB;AACf,eAAY,kBAAkB,EAC5B,UAAU,QAAQ,eAAe,KAClC,CAAC;;EAEJ,eAAe;AACb,WAAQ,mCAAmC,QAAQ;;EAEtD,CAAC;CAEF,MAAM,mCAAmC,YAAY;EACnD,aAAa,oBAA4B;GACvC,MAAM,MAAM,sBAAsB,EAAE,EAAE,MACnC,MAAM,EAAE,OAAO,gBACjB;AACD,OAAI,CAAC,GAAI,OAAM,IAAI,MAAM,2BAA2B;GACpD,MAAM,OAAgC,EACpC,gBAAgB,EAAE,SAAS,MAAM,EAClC;AACD,OAAI,GAAG,gBACL,MAAK,eAAe,kBAAkB;IACpC,MAAM,GAAG,gBAAgB;IACzB,SAAS,GAAG,gBAAgB,YAAY;IACxC,SAAS,GAAG,gBAAgB,YAAY;IACxC,MAAM,GAAG,gBAAgB,QAAQ;IACjC,OAAO,GAAG,gBAAgB,SAAS;IACnC,KAAK,GAAG,gBAAgB,OAAO;IAC/B,SAAS,GAAG,gBAAgB,gBAAgB;IAC7C;AAEH,UAAO,OAAO,oBAAoB,iBAAiB,KAAK;;EAE1D,iBAAiB;AACf,eAAY,kBAAkB,EAAE,UAAU,QAAQ,eAAe,KAAK,CAAC;AACvE,WAAQ,kCAAkC,UAAU;;EAEtD,eAAe;AACb,WAAQ,2CAA2C,QAAQ;;EAE9D,CAAC;CAEF,MAAM,6BAA6B,YAAY;EAC7C,aAAa,cAAsB;GACjC,MAAM,OAAO,UAAU,MAAM,MAAM,EAAE,OAAO,UAAU;AACtD,OAAI,CAAC,KAAM,OAAM,IAAI,MAAM,oBAAoB;AAC/C,UAAO,OAAO,cAAc,WAAW,EACrC,SAAS;IACP,MAAM,KAAK,QAAQ;IACnB,SAAS,KAAK;IACd,SAAS,KAAK;IACd,MAAM,KAAK;IACX,OAAO,KAAK;IACZ,KAAK,KAAK;IACV,SAAS,KAAK,gBAAgB;IAC9B,SAAS;IACV,EACF,CAAC;;EAEJ,iBAAiB;AACf,eAAY,kBAAkB,EAAE,UAAU,QAAQ,UAAU,KAAK,CAAC;AAClE,WAAQ,2BAA2B,UAAU;;EAE/C,eAAe;AACb,WAAQ,oCAAoC,QAAQ;;EAEvD,CAAC;CAEF,MAAM,wBAAwB,YAAY;EACxC,aAAa,SACX,OAAO,cAAc,EACnB,SAAS;GACP,MAAM,mBACJ,KAAK,QAAQ,YACb,KAAK,QAAQ,UACd;GACD,SAAS,KAAK,QAAQ;GACtB,SAAS,KAAK,QAAQ;GACtB,MAAM,KAAK,QAAQ;GACnB,OAAO,KAAK,QAAQ;GACpB,KAAK,KAAK,QAAQ;GAClB,SAAS,KAAK,QAAQ;GACvB,EACF,CAAC;EACJ,iBAAiB;AACf,eAAY,kBAAkB,EAAE,UAAU,QAAQ,UAAU,KAAK,CAAC;AAClE,WAAQ,mBAAmB,UAAU;;EAEvC,eAAe;AACb,WAAQ,4BAA4B,QAAQ;;EAE/C,CAAC;CAEF,MAAM,wBAAwB,YAAY;EACxC,aAAa,EACX,WACA,WAKA,OAAO,cAAc,WAAW,EAC9B,SAAS;GACP,MAAM,mBACJ,KAAK,QAAQ,YACb,KAAK,QAAQ,UACd;GACD,SAAS,KAAK,QAAQ;GACtB,SAAS,KAAK,QAAQ;GACtB,MAAM,KAAK,QAAQ;GACnB,OAAO,KAAK,QAAQ;GACpB,KAAK,KAAK,QAAQ;GAClB,SAAS,KAAK,QAAQ;GACvB,EACF,CAAC;EACJ,iBAAiB;AACf,eAAY,kBAAkB,EAAE,UAAU,QAAQ,UAAU,KAAK,CAAC;AAClE,WAAQ,mBAAmB,UAAU;;EAEvC,eAAe;AACb,WAAQ,4BAA4B,QAAQ;;EAE/C,CAAC;CAEF,MAAM,wBAAwB,YAAY;EACxC,aAAa,SACX,OAAO,oBAAoB,EACzB,gBAAgB;GACd,MAAM;GACN,OAAO,KAAK,eAAe;GAC3B,SAAS,KAAK;GACf,EACF,CAAC;EACJ,iBAAiB;AACf,eAAY,kBAAkB,EAC5B,UAAU,QAAQ,eAAe,KAClC,CAAC;AACF,WAAQ,wBAAwB,UAAU;;EAE5C,eAAe;AACb,WAAQ,gCAAgC,QAAQ;;EAEnD,CAAC;CAEF,MAAM,YAAY,iBAAiB,EAAE;CACrC,MAAM,iBAAiB,sBAAsB,EAAE;CAE/C,MAAM,sBACJ,kBAAkB,gBAAgB,IAAI,kBAAkB,IAAI,EAAE;CAEhE,MAAM,oBAAgC,eAAe,aAAa,EAAE,EAAE,KACnE,GAAG,OAAO;EAAE,IAAI;EAAG,MAAM,EAAE;EAAM,KAAK,EAAE;EAAM,EAChD;CAED,MAAM,YAAY,eAAe;CAEjC,MAAM,iBAAiB,cAEnB,CAAC,GAAI,aAAa,EAAE,CAAE,CACnB,KAAK,OAAO;EAAE,KAAK,EAAE;EAAM,MAAM,EAAE;EAAM,EAAE,CAC3C,MAAM,GAAG,MAAM,EAAE,KAAK,cAAc,EAAE,KAAK,CAAC,EACjD,CAAC,UAAU,CACZ;CAED,MAAM,kBAAkB,cAAc;EACpC,MAAM,sBAAM,IAAI,KAAsB;AACtC,OAAK,MAAM,KAAK,aAAa,EAAE,CAC7B,KAAI,IACF,EAAE,MACF,EAAE,OAAO,KAAK,OAAO;GAAE,MAAM,EAAE;GAAM,SAAS,EAAE;GAAM,EAAE,CACzD;AAEH,SAAO;IACN,CAAC,UAAU,CAAC;CAEf,MAAM,2BAA2B,aAC9B,gBACC,QAAQ,QAAQ,gBAAgB,IAAI,YAAY,IAAI,EAAE,CAAC,EACzD,CAAC,gBAAgB,CAClB;AAED,KAAI,kBAAkB,CAAC,iBACrB,QACE,oBAAC,OAAD;EAAK,WAAU;YACb,oBAAC,OAAD;GAAK,WAAU;aAA4C;GAErD,CAAA;EACF,CAAA;AAIV,KAAI,oBAAoB,CAAC,YACvB,QACE,oBAAC,OAAD;EAAK,WAAU;YACb,qBAAC,OAAD;GAAK,WAAU;aAAf;IACE,oBAAC,OAAD,EAAK,WAAU,uCAAwC,CAAA;IACvD,oBAAC,OAAD,EAAK,WAAU,uCAAwC,CAAA;IACvD,oBAAC,OAAD,EAAK,WAAU,uCAAwC,CAAA;IACnD;;EACF,CAAA;AAIV,QACE,oBAAC,OAAD;EAAK,WAAU;YACb,oBAAC,sBAAD;GAAsB,KAAK;aACzB,oBAAC,mBAAD;IAAsB;cACpB,oBAAC,SAAD;KACE,iBAAiB;KACjB,WAAW;KACX,kBAAkB,OAAO,SAAS;AAChC,YAAM,uBAAuB,YAAY,KAAK;;KAEhD,oBAAoB,uBAAuB;KAK3C,sBAAsB;KACtB,cAAc;KACS;KACZ;KACS;KACpB,iBAAiB,OAAO,cAAc;AACpC,YAAM,sBAAsB,YAAY,UAAU;;KAEpD,mBAAmB,sBAAsB;KACzC,sBAAsB,OAAO,cAAc;AACzC,YAAM,2BAA2B,YAAY,UAAU;;KAEzC;KACS;KACzB,uBAAuB,OAAO,oBAAoB;AAChD,YAAM,4BAA4B,YAAY,gBAAgB;;KAEhE,yBAAyB,4BAA4B;KACrD,4BAA4B,OAAO,oBAAoB;AACrD,YAAM,iCAAiC,YACrC,gBACD;;KAEH,uBAAuB,OAAO,iBAAiB,SAAS;AACtD,YAAM,4BAA4B,YAAY;OAC5C;OACA;OACD,CAAC;;KAEJ,yBAAyB,4BAA4B;KACrD,oBAAoB,kBAClB,cAAc,mBAAmB;KAEnC,WAAW;KACX,sBAAsB,EAAE,QAAQ,SAAS,sBACvC,oBAAC,mBAAD;MACU;MACC;MACQ;MACd;MACH,UAAU,OAAO,aAAa;AAC5B,WAAI,gBACF,OAAM,sBAAsB,YAAY;QACtC,WAAW,gBAAgB;QAC3B,MAAM;QACP,CAAC;WAEF,OAAM,sBAAsB,YAAY,SAAS;AAEnD,gBAAS;;MAEX,cACE,sBAAsB,aACtB,sBAAsB;MAExB,WAAW;MACX,aAAa;MACb,4BAA4B,EAC1B,SACA,UACA,kBAEA,oBAAC,0BAAD;OACW;OACC;OACV,YAAY;OACZ,kBAAiB;OACjB,WAAU;OACV,YAAW;OACX,iBAAgB;OAChB,aAAa,EAAE,iBAAiB;OAChC,CAAA;MAEJ,CAAA;KAEJ,yBAAyB,EAAE,QAAQ,cACjC,oBAAC,sBAAD;MACU;MACC;MACN;MACH,UAAU,OAAO,SAAS;AACxB,WAAI;AACF,cAAM,sBAAsB,YAAY,KAAK;AAC7C,iBAAS;eACH;;MAKV,cAAc,sBAAsB;MACpC,WAAW;MACX,KAAI;MACJ,4BAA4B,EAC1B,SACA,UACA,kBAEA,oBAAC,0BAAD;OACW;OACC;OACV,YAAY;OACZ,kBAAiB;OACjB,WAAU;OACV,YAAW;OACX,iBAAgB;OAChB,aAAa,EAAE,iBAAiB;OAChC,CAAA;MAEJ,CAAA;KAEJ,QACE,qBAAA,YAAA,EAAA,UAAA;MACE,oBAAC,gBAAD;OACE,WAAW;OACX,YAAY;OACZ,cAAc;OACL;OACT,CAAA;MACF,oBAAC,4BAAD,EAA4B,SAAS,eAAiB,CAAA;MACtD,oBAAC,yBAAD;OACE,SAAS;OACT,WAAW,4BAA4B;OACvC,UAAU;OACV,CAAA;MACD,EAAA,CAAA;eAGL,oBAAC,sBAAD;MACE,WAAW,YAAY;MACvB,SAAS,YAAY,aAAa,IAAI,aAAa,IAAI;MACvD,SAAS;MACT,CAAA;KACM,CAAA;IACQ,CAAA;GACC,CAAA;EACnB,CAAA;;;;ACvuBV,SAAS,aAAa,SAAiB,MAAuC;AAC5E,YAAW;EAAE,OAAO;EAAS;EAAM,CAAC;;AAGtC,SAAgB,cAAc,EAC5B,SAEA,YACA,WACA,aACA,SACA,cAEA,GAAG,YACqC;CACxC,MAAM,EAAE,WAAW,iBAAiB;CACpC,MAAM,iBAAiB,WAAW;CAClC,MAAM,aAAa,OAAO,cAAc;AAcxC,4BAZ0B,cAEtB,oBAAC,YAAD,EAAA,UACE,oBAAC,gBAAD;EAAgB,WAAU;YACxB,oBAAC,gBAAD,EAAA,UACE,oBAAC,gBAAD;GAAgB,WAAU;aAAgB;GAAwB,CAAA,EACnD,CAAA;EACF,CAAA,EACN,CAAA,EAEf,EAAE,CACH,CAC4C;AAE7C,QACE,oBAAC,OAAD;EAAK,GAAI;YACP,oBAAC,sBAAD;GAAsB,SAAS;GAA4B;GAAc,CAAA;EACrE,CAAA;;AAIV,MAAa,8BAAoD;CAC/D,YAAY;CACZ,aAAa;CACb,YAAY,CAAC;EAAE,IAAI;EAAW,OAAO;EAAW,CAAC;CACjD,QAAQ,EAAE;CACX"}
1
+ {"version":3,"file":"ProfileScreen--6ETap-j.mjs","names":[],"sources":["../src/screens/ProfileContentScreen.tsx","../src/screens/ProfileScreen.tsx"],"sourcesContent":["import { useCallback, useMemo } from \"react\";\nimport { useMutation, useQuery, useQueryClient } from \"@tanstack/react-query\";\nimport { useZodForm } from \"@fluid-app/ui-primitives\";\nimport { ProfileUIProvider } from \"@fluid-app/profile-core\";\nimport type { Language, PointsLedger } from \"@fluid-app/profile-core\";\nimport {\n Profile,\n AddressFormDialog,\n CreditCardFormDialog,\n MySiteProfileSection,\n MySiteProfileSocialSection,\n MySiteProfileSaveButton,\n mySiteProfileSchema,\n socialFields,\n} from \"@fluid-app/profile-ui\";\nimport type { MySiteProfileFormData } from \"@fluid-app/profile-ui\";\nimport type {\n UserFormData,\n EditPaymentMethodFormData,\n} from \"@fluid-app/profile-ui\";\nimport {\n FluidPayCoreProvider,\n type fluidPay,\n type State,\n} from \"@fluid-app/fluid-pay-core\";\nimport type {\n PayAddress,\n UpdatePaymentMethodBody,\n} from \"@fluid-app/portal-core/pay-types\";\nimport {\n createFluidPayApiAdapter,\n mapToFluidPayPaymentMethod,\n} from \"../adapters/fluid-pay-api-adapter\";\nimport type { AccountRep } from \"@fluid-app/portal-core/account-types\";\nimport { useAccountApi } from \"@fluid-app/portal-core/account-api-context\";\nimport { usePayApi } from \"@fluid-app/portal-core/pay-api-context\";\nimport {\n usePortalMySiteProfile,\n usePortalUpdateSettings,\n} from \"@fluid-app/mysite-ui/portal/hooks/use-mysite-portal\";\nimport { MySiteLinkCard } from \"@fluid-app/mysite-ui/portal/components\";\nimport { useCountriesApi } from \"@fluid-app/store-core/countries-api-context\";\nimport { useLanguagesApi } from \"@fluid-app/store-core/languages-api-context\";\nimport { AddressAutocompleteInput } from \"@fluid-app/address-autocomplete/components/AddressAutocompleteInput\";\nimport { accountKeys, payKeys, storeKeys } from \"../account/query-keys\";\nimport { useAccount } from \"../hooks/use-account\";\n\ninterface ProfileContentScreenProps {\n onToast: (message: string, type: \"success\" | \"error\" | \"warning\") => void;\n countryIso: string;\n}\n\nconst translations: Record<string, string> = {\n edit_profile: \"Edit Profile\",\n first_name: \"First Name\",\n last_name: \"Last Name\",\n phone_number: \"Phone Number\",\n language: \"Language\",\n first_name_is_required: \"First name is required\",\n last_name_is_required: \"Last name is required\",\n language_is_required: \"Language is required\",\n saving: \"Saving...\",\n save_changes: \"Save Changes\",\n select_an_option: \"Select an option\",\n points_history: \"Points History\",\n points_available: \"Points Available\",\n points_awarded: \"Points Awarded\",\n points_redeemed: \"Points Redeemed\",\n transaction: \"Transaction\",\n no_points_history_found: \"No points history found\",\n shipping_addresses: \"Shipping Addresses\",\n add_an_address: \"Add an Address\",\n delete_address: \"Delete Address\",\n delete_address_message:\n \"Are you sure you want to delete this address? This action cannot be undone.\",\n delete: \"Delete\",\n add_address: \"Add Address\",\n edit_address: \"Edit Address\",\n set_as_default_address: \"Set as default address\",\n save_address: \"Save Address\",\n card_number: \"Card Number\",\n expiration_date: \"Expiration (MM / YY)\",\n cvc: \"CVC\",\n cardholder_name: \"Cardholder Name\",\n add_credit_card: \"Add Credit Card\",\n save_card: \"Save Card\",\n securing: \"Loading secure form...\",\n payment_methods: \"Payment Methods\",\n add_payment_method: \"Add Payment Method\",\n delete_credit_card: \"Delete Credit Card\",\n delete_credit_card_message:\n \"Are you sure you want to delete this payment method? This action cannot be undone.\",\n edit_card: \"Card Details\",\n billing_address: \"Billing Address\",\n country: \"Country\",\n name: \"Name\",\n address_line_1: \"Address Line 1\",\n address_line_2: \"Address Line 2\",\n city: \"City\",\n state: \"State\",\n province: \"Province\",\n zip_code: \"Zip Code\",\n postal_code: \"Postal Code\",\n select_state: \"Select state\",\n set_as_default_payment_method: \"Set as default payment method\",\n cancel: \"Cancel\",\n save: \"Save\",\n close: \"Close\",\n edit: \"Edit\",\n default: \"Default\",\n card_expires: \"Expires\",\n no_billing_address: \"No billing address on file\",\n default_payment_method_updated: \"Payment method updated\",\n failed_to_set_default_payment_method: \"Failed to update payment method\",\n};\n\nfunction t(key: string): string {\n if (translations[key]) return translations[key];\n return key\n .split(\"_\")\n .map((word) => word.charAt(0).toUpperCase() + word.slice(1))\n .join(\" \");\n}\n\nfunction adaptPointsLedger(\n entry: import(\"@fluid-app/portal-core/pay-types\").PointsLedgerEntry,\n): PointsLedger {\n const meta = entry.metadata as {\n transaction_type?: string | null;\n source?: {\n name: string;\n email?: string;\n reason?: string;\n user_id?: number;\n } | null;\n } | null;\n return {\n id: entry.id,\n amount: entry.amount,\n company_id: 0,\n created_at: entry.created_at,\n customer_id: 0,\n metadata: {\n transaction_type: meta?.transaction_type ?? undefined,\n source: meta?.source ?? undefined,\n },\n total_balance: entry.total_balance,\n updated_at: entry.created_at,\n };\n}\n\nfunction mapAccountToCustomerAccount(\n raw: AccountRep,\n): fluidPay.CustomerAccount {\n return {\n fluid_pay_account: {\n id: raw.id,\n email: raw.email,\n address_count: 0,\n payment_methods_count: 0,\n language_iso: null,\n },\n customer: {\n id: raw.id,\n active: true,\n active_subscriptions_count: 0,\n display_total_spent: \"0\",\n email: raw.email,\n first_name: raw.first_name,\n full_name: `${raw.first_name} ${raw.last_name}`.trim(),\n inactive_subscriptions_count: 0,\n is_rep: raw.member_type === \"rep\",\n phone: raw.phone,\n orders_count: 0,\n },\n };\n}\n\nfunction composeAddressName(\n firstName: string,\n lastName: string,\n): string | null {\n const combined = `${firstName} ${lastName}`.trim();\n return combined.length > 0 ? combined : null;\n}\n\nfunction mapToFluidPayAddress(raw: PayAddress): fluidPay.CustomerAddress {\n return {\n id: raw.id,\n address1: raw.street1,\n address2: raw.street2,\n city: raw.city,\n country_code: raw.country,\n default: raw.default,\n name: raw.name,\n postal_code: raw.zip,\n state: raw.state,\n subdivision_code: null,\n };\n}\n\ntype SocialFieldKey = (typeof socialFields)[number][\"name\"];\n\nfunction mapAccountToMySiteFormValues(\n account: AccountRep | undefined,\n): MySiteProfileFormData {\n const social = account?.social_links ?? {};\n const result = { bio: account?.bio ?? \"\" } as MySiteProfileFormData;\n for (const { name } of socialFields) {\n result[name] = social[name] ?? \"\";\n }\n return result;\n}\n\nfunction mapFormToSocialLinks(\n data: MySiteProfileFormData,\n): Record<SocialFieldKey, string> {\n const result = {} as Record<SocialFieldKey, string>;\n for (const { name } of socialFields) {\n result[name] = data[name] ?? \"\";\n }\n return result;\n}\n\nexport function ProfileContentScreen({\n onToast,\n countryIso: _countryIso,\n}: ProfileContentScreenProps): React.JSX.Element {\n const payApi = usePayApi();\n const accountApi = useAccountApi();\n const queryClient = useQueryClient();\n const fluidPayShim = useMemo(\n () => createFluidPayApiAdapter(payApi),\n [payApi],\n );\n\n const { data: mySiteProfile } = usePortalMySiteProfile();\n const updateMySiteSettingsMutation = usePortalUpdateSettings();\n\n const mySiteUrl = mySiteProfile?.mysite_url ?? \"\";\n const mySiteDisplayUrl = mySiteUrl\n ? mySiteUrl.replace(/^https?:\\/\\//, \"\")\n : \"\";\n\n const handleUpdateSlug = useCallback(\n async (slug: string) => {\n await updateMySiteSettingsMutation.mutateAsync({ slug });\n },\n [updateMySiteSettingsMutation],\n );\n\n // Reuse the app-wide useAccount() cache entry shared with AppShell/PageRouter.\n const {\n data: accountRep,\n isLoading: isLoadingAccount,\n isError: isAccountError,\n } = useAccount();\n\n const mySiteFormValues = useMemo(\n () => mapAccountToMySiteFormValues(accountRep),\n [accountRep],\n );\n\n const {\n control: mySiteControl,\n handleSubmit: handleMySiteSubmit,\n formState: { isDirty: isMySiteDirty },\n } = useZodForm<MySiteProfileFormData>(mySiteProfileSchema, {\n values: mySiteFormValues,\n });\n\n const updateMySiteProfileMutation = useMutation({\n mutationFn: (data: MySiteProfileFormData) =>\n accountApi.updateAccount({\n account: {\n bio: data.bio,\n social_links: mapFormToSocialLinks(data),\n },\n }),\n onSuccess: () => {\n queryClient.invalidateQueries({ queryKey: accountKeys.all });\n onToast(\"Profile updated successfully\", \"success\");\n },\n onError: () => {\n onToast(\"Failed to update profile\", \"error\");\n },\n });\n\n const handleMySiteProfileSubmit = handleMySiteSubmit((data) => {\n updateMySiteProfileMutation.mutate(data);\n });\n const accountData = useMemo(\n () => (accountRep ? mapAccountToCustomerAccount(accountRep) : undefined),\n [accountRep],\n );\n\n const { data: addressesData, isLoading: isLoadingAddresses } = useQuery({\n queryKey: payKeys.addresses.list(),\n queryFn: async () => {\n const response = await payApi.fetchAddresses();\n return response.addresses.map(mapToFluidPayAddress);\n },\n enabled: true,\n });\n\n const { data: paymentMethodsData, isLoading: isLoadingPaymentMethods } =\n useQuery({\n queryKey: payKeys.paymentMethods.list(),\n queryFn: async () => {\n const response = await payApi.fetchPaymentMethods();\n return response.payment_methods.map(mapToFluidPayPaymentMethod);\n },\n enabled: true,\n });\n\n const countriesAdapter = useCountriesApi();\n const languagesAdapter = useLanguagesApi();\n\n const { data: countriesData } = useQuery({\n queryKey: storeKeys.countries(),\n queryFn: () => countriesAdapter.listCountries(),\n enabled: true,\n });\n\n const { data: languagesData } = useQuery({\n queryKey: storeKeys.languages(),\n queryFn: () => languagesAdapter.listLanguages(),\n enabled: true,\n });\n\n const {\n data: pointsLedgerData,\n isLoading: isLoadingPointsLedger,\n isError: isPointsLedgerError,\n } = useQuery({\n queryKey: payKeys.pointsLedgers.list(),\n queryFn: () => payApi.fetchPointsLedgers(),\n enabled: true,\n // BFF returns 403 when reward points are not enabled for the company.\n // Don't retry on 403 so the UI simply hides the points section.\n retry: (failureCount, error) => {\n if (\n error instanceof Error &&\n \"status\" in error &&\n (error as { status: number }).status === 403\n ) {\n return false;\n }\n return failureCount < 1;\n },\n });\n\n // Points are enabled if the fetch succeeded (non-403)\n const rewardPointsEnabled = !isPointsLedgerError && pointsLedgerData != null;\n\n const updateCustomerMutation = useMutation({\n mutationFn: async (data: UserFormData) => {\n await accountApi.updateAccount({\n account: {\n first_name: data.first_name,\n last_name: data.last_name,\n phone: data.phone_number,\n },\n });\n },\n onSuccess: () => {\n queryClient.invalidateQueries({ queryKey: accountKeys.all });\n onToast(\"Profile updated\", \"success\");\n },\n onError: () => {\n onToast(\"Failed to update profile\", \"error\");\n },\n });\n\n const deleteAddressMutation = useMutation({\n mutationFn: (addressId: number) => payApi.deleteAddress(addressId),\n onSuccess: () => {\n queryClient.invalidateQueries({ queryKey: payKeys.addresses.all });\n },\n onError: () => {\n onToast(\"Failed to delete address\", \"error\");\n },\n });\n\n const deletePaymentMethodMutation = useMutation({\n mutationFn: (paymentMethodId: number) =>\n payApi.deletePaymentMethod(paymentMethodId),\n onSuccess: () => {\n queryClient.invalidateQueries({\n queryKey: payKeys.paymentMethods.all,\n });\n },\n onError: () => {\n onToast(\"Failed to delete payment method\", \"error\");\n },\n });\n\n const updatePaymentMethodMutation = useMutation({\n mutationFn: ({\n paymentMethodId,\n data,\n }: {\n paymentMethodId: number;\n data: EditPaymentMethodFormData;\n }) =>\n payApi.updatePaymentMethod(paymentMethodId, {\n payment_method: {\n default: data.set_as_default,\n billing_address: {\n name: data.billing_address.name,\n street1: data.billing_address.address1,\n street2: data.billing_address.address2 ?? null,\n city: data.billing_address.city,\n state: data.billing_address.state,\n zip: data.billing_address.zip,\n country: data.billing_address.country_code,\n },\n },\n }),\n onSuccess: () => {\n queryClient.invalidateQueries({\n queryKey: payKeys.paymentMethods.all,\n });\n },\n onError: () => {\n onToast(\"Failed to update payment method\", \"error\");\n },\n });\n\n const makeDefaultPaymentMethodMutation = useMutation({\n mutationFn: (paymentMethodId: number) => {\n const pm = (paymentMethodsData ?? []).find(\n (p) => p.id === paymentMethodId,\n );\n if (!pm) throw new Error(\"Payment method not found\");\n const body: UpdatePaymentMethodBody = {\n payment_method: { default: true },\n };\n if (pm.billing_address) {\n body.payment_method.billing_address = {\n name: pm.billing_address.name,\n street1: pm.billing_address.address1 ?? \"\",\n street2: pm.billing_address.address2 ?? null,\n city: pm.billing_address.city ?? \"\",\n state: pm.billing_address.state ?? \"\",\n zip: pm.billing_address.zip ?? \"\",\n country: pm.billing_address.country_code ?? \"\",\n };\n }\n return payApi.updatePaymentMethod(paymentMethodId, body);\n },\n onSuccess: () => {\n queryClient.invalidateQueries({ queryKey: payKeys.paymentMethods.all });\n onToast(\"Default payment method updated\", \"success\");\n },\n onError: () => {\n onToast(\"Failed to update default payment method\", \"error\");\n },\n });\n\n const makeDefaultAddressMutation = useMutation({\n mutationFn: (addressId: number) => {\n const addr = addresses.find((a) => a.id === addressId);\n if (!addr) throw new Error(\"Address not found\");\n return payApi.updateAddress(addressId, {\n address: {\n name: addr.name ?? null,\n street1: addr.address1,\n street2: addr.address2,\n city: addr.city,\n state: addr.state,\n zip: addr.postal_code,\n country: addr.country_code ?? \"\",\n default: true,\n },\n });\n },\n onSuccess: () => {\n queryClient.invalidateQueries({ queryKey: payKeys.addresses.all });\n onToast(\"Default address updated\", \"success\");\n },\n onError: () => {\n onToast(\"Failed to update default address\", \"error\");\n },\n });\n\n const createAddressMutation = useMutation({\n mutationFn: (body: fluidPay.CreateAddressBody) =>\n payApi.createAddress({\n address: {\n name: composeAddressName(\n body.address.first_name,\n body.address.last_name,\n ),\n street1: body.address.address1,\n street2: body.address.address2,\n city: body.address.city,\n state: body.address.state,\n zip: body.address.postal_code,\n country: body.address.country_code,\n },\n }),\n onSuccess: () => {\n queryClient.invalidateQueries({ queryKey: payKeys.addresses.all });\n onToast(\"Address created\", \"success\");\n },\n onError: () => {\n onToast(\"Failed to create address\", \"error\");\n },\n });\n\n const updateAddressMutation = useMutation({\n mutationFn: ({\n addressId,\n body,\n }: {\n addressId: number;\n body: fluidPay.CreateAddressBody;\n }) =>\n payApi.updateAddress(addressId, {\n address: {\n name: composeAddressName(\n body.address.first_name,\n body.address.last_name,\n ),\n street1: body.address.address1,\n street2: body.address.address2,\n city: body.address.city,\n state: body.address.state,\n zip: body.address.postal_code,\n country: body.address.country_code,\n },\n }),\n onSuccess: () => {\n queryClient.invalidateQueries({ queryKey: payKeys.addresses.all });\n onToast(\"Address updated\", \"success\");\n },\n onError: () => {\n onToast(\"Failed to update address\", \"error\");\n },\n });\n\n const addCreditCardMutation = useMutation({\n mutationFn: (data: fluidPay.AddCreditCardData) =>\n payApi.createPaymentMethod({\n payment_method: {\n type: \"card\",\n token: data.payment_method.token,\n default: data.default_payment_method,\n },\n }),\n onSuccess: () => {\n queryClient.invalidateQueries({\n queryKey: payKeys.paymentMethods.all,\n });\n onToast(\"Payment method added\", \"success\");\n },\n onError: () => {\n onToast(\"Failed to add payment method\", \"error\");\n },\n });\n\n const addresses = addressesData ?? [];\n const paymentMethods = paymentMethodsData ?? [];\n\n const adaptedPointsLedger: PointsLedger[] =\n pointsLedgerData?.points_ledgers?.map(adaptPointsLedger) ?? [];\n\n const adaptedLanguages: Language[] = (languagesData?.languages ?? []).map(\n (l, i) => ({ id: i, name: l.name, iso: l.code }),\n );\n\n const countries = countriesData?.countries;\n\n const countryOptions = useMemo(\n () =>\n [...(countries ?? [])]\n .map((c) => ({ iso: c.code, name: c.name }))\n .sort((a, b) => a.name.localeCompare(b.name)),\n [countries],\n );\n\n const statesByCountry = useMemo(() => {\n const map = new Map<string, State[]>();\n for (const c of countries ?? []) {\n map.set(\n c.code,\n c.states.map((s) => ({ name: s.name, isoCode: s.code })),\n );\n }\n return map;\n }, [countries]);\n\n const fetchStatesFromCountries = useCallback(\n (countryCode: string): Promise<State[]> =>\n Promise.resolve(statesByCountry.get(countryCode) ?? []),\n [statesByCountry],\n );\n\n if (isAccountError && !isLoadingAccount) {\n return (\n <div className=\"px-4 py-8 sm:px-9\">\n <div className=\"text-muted-foreground text-center text-sm\">\n Unable to load account data. Please try again later.\n </div>\n </div>\n );\n }\n\n if (isLoadingAccount || !accountData) {\n return (\n <div className=\"px-4 pt-4 sm:px-9 md:pt-8\">\n <div className=\"space-y-4\">\n <div className=\"bg-muted h-16 animate-pulse rounded\" />\n <div className=\"bg-muted h-32 animate-pulse rounded\" />\n <div className=\"bg-muted h-32 animate-pulse rounded\" />\n </div>\n </div>\n );\n }\n\n return (\n <div className=\"px-4 pt-4 sm:px-9 md:pt-8\">\n <FluidPayCoreProvider api={fluidPayShim}>\n <ProfileUIProvider t={t}>\n <Profile\n customerAccount={accountData}\n languages={adaptedLanguages}\n onUpdateCustomer={async (data) => {\n await updateCustomerMutation.mutateAsync(data);\n }}\n isUpdatingCustomer={updateCustomerMutation.isPending}\n // TODO: wire onChangeEmail to PATCH /v202506/users/:id/change_email\n // once portal self-service email change is designed\n // onChangeEmail={...}\n // pendingEmail={pendingEmail}\n rewardsPointsEnabled={rewardPointsEnabled}\n pointsLedger={adaptedPointsLedger}\n isLoadingPointsLedger={isLoadingPointsLedger}\n addresses={addresses}\n isLoadingAddresses={isLoadingAddresses}\n onDeleteAddress={async (addressId) => {\n await deleteAddressMutation.mutateAsync(addressId);\n }}\n isDeletingAddress={deleteAddressMutation.isPending}\n onMakeDefaultAddress={async (addressId) => {\n await makeDefaultAddressMutation.mutateAsync(addressId);\n }}\n paymentMethods={paymentMethods}\n isLoadingPaymentMethods={isLoadingPaymentMethods}\n onDeletePaymentMethod={async (paymentMethodId) => {\n await deletePaymentMethodMutation.mutateAsync(paymentMethodId);\n }}\n isDeletingPaymentMethod={deletePaymentMethodMutation.isPending}\n onMakeDefaultPaymentMethod={async (paymentMethodId) => {\n await makeDefaultPaymentMethodMutation.mutateAsync(\n paymentMethodId,\n );\n }}\n onUpdatePaymentMethod={async (paymentMethodId, data) => {\n await updatePaymentMethodMutation.mutateAsync({\n paymentMethodId,\n data,\n });\n }}\n isUpdatingPaymentMethod={updatePaymentMethodMutation.isPending}\n getBillingAddress={(paymentMethod) =>\n paymentMethod.billing_address ?? null\n }\n countries={countryOptions}\n renderAddressDialog={({ isOpen, onClose, selectedAddress }) => (\n <AddressFormDialog\n isOpen={isOpen}\n onClose={onClose}\n selectedAddress={selectedAddress}\n t={t}\n onSubmit={async (formData) => {\n if (selectedAddress) {\n await updateAddressMutation.mutateAsync({\n addressId: selectedAddress.id,\n body: formData,\n });\n } else {\n await createAddressMutation.mutateAsync(formData);\n }\n onClose();\n }}\n isSubmitting={\n createAddressMutation.isPending ||\n updateAddressMutation.isPending\n }\n countries={countryOptions}\n fetchStates={fetchStatesFromCountries}\n renderAddressAutocomplete={({\n control,\n setValue,\n countryCode,\n }) => (\n <AddressAutocompleteInput\n control={control}\n setValue={setValue}\n countryIso={countryCode}\n addressLineField=\"address1\"\n cityField=\"city\"\n stateField=\"state\"\n postalCodeField=\"postal_code\"\n placeholder={t(\"address_line_1\")}\n />\n )}\n />\n )}\n renderCreditCardDialog={({ isOpen, onClose }) => (\n <CreditCardFormDialog\n isOpen={isOpen}\n onClose={onClose}\n t={t}\n onSubmit={async (data) => {\n try {\n await addCreditCardMutation.mutateAsync(data);\n onClose();\n } catch {\n // onError surfaces the toast; swallow here so the dialog\n // doesn't see an unhandled rejection.\n }\n }}\n isSubmitting={addCreditCardMutation.isPending}\n countries={countryOptions}\n jwt=\"\"\n renderAddressAutocomplete={({\n control,\n setValue,\n countryCode,\n }) => (\n <AddressAutocompleteInput\n control={control}\n setValue={setValue}\n countryIso={countryCode}\n addressLineField=\"address1\"\n cityField=\"city\"\n stateField=\"state\"\n postalCodeField=\"zip\"\n placeholder={t(\"address_line_1\")}\n />\n )}\n />\n )}\n footer={\n <>\n <MySiteLinkCard\n mysiteUrl={mySiteUrl}\n displayUrl={mySiteDisplayUrl}\n onUpdateSlug={handleUpdateSlug}\n onToast={onToast}\n />\n <MySiteProfileSocialSection control={mySiteControl} />\n <MySiteProfileSaveButton\n isDirty={isMySiteDirty}\n isPending={updateMySiteProfileMutation.isPending}\n onSubmit={handleMySiteProfileSubmit}\n />\n </>\n }\n >\n <MySiteProfileSection\n avatarUrl={accountRep?.avatar_url}\n initial={accountRep?.first_name?.[0]?.toUpperCase() ?? \"U\"}\n control={mySiteControl}\n />\n </Profile>\n </ProfileUIProvider>\n </FluidPayCoreProvider>\n </div>\n );\n}\n","import { type ComponentProps, useMemo } from \"react\";\nimport {\n Breadcrumb,\n BreadcrumbList,\n BreadcrumbItem,\n BreadcrumbPage,\n fluidToast,\n} from \"@fluid-app/ui-primitives\";\nimport { useScreenHeaderBreadcrumbs } from \"@fluid-app/portal-react/shell/ScreenHeaderContext\";\nimport type {\n BackgroundValue,\n BorderRadiusOptions,\n ColorOptions,\n PaddingOptions,\n} from \"../types\";\nimport type { WidgetPropertySchema } from \"../registries/property-schema-types\";\nimport { useFluidContext } from \"../providers/FluidProvider\";\nimport { ProfileContentScreen } from \"./ProfileContentScreen\";\n\ntype ProfileScreenProps = ComponentProps<\"div\"> & {\n background?: BackgroundValue;\n textColor?: ColorOptions;\n accentColor?: ColorOptions;\n padding?: PaddingOptions;\n borderRadius?: BorderRadiusOptions;\n onToast?: (message: string, type: \"success\" | \"error\" | \"warning\") => void;\n};\n\nfunction defaultToast(message: string, type: \"success\" | \"error\" | \"warning\") {\n fluidToast({ title: message, type });\n}\n\nexport function ProfileScreen({\n onToast,\n /* eslint-disable @typescript-eslint/no-unused-vars -- destructured to exclude from divProps spread */\n background,\n textColor,\n accentColor,\n padding,\n borderRadius,\n /* eslint-enable @typescript-eslint/no-unused-vars */\n ...divProps\n}: ProfileScreenProps): React.JSX.Element {\n const { config } = useFluidContext();\n const effectiveToast = onToast ?? defaultToast;\n const countryIso = config.countryIso ?? \"US\";\n\n const headerBreadcrumbs = useMemo(\n () => (\n <Breadcrumb>\n <BreadcrumbList className=\"text-lg\">\n <BreadcrumbItem>\n <BreadcrumbPage className=\"font-semibold\">Profile</BreadcrumbPage>\n </BreadcrumbItem>\n </BreadcrumbList>\n </Breadcrumb>\n ),\n [],\n );\n useScreenHeaderBreadcrumbs(headerBreadcrumbs);\n\n return (\n <div {...divProps}>\n <ProfileContentScreen onToast={effectiveToast} countryIso={countryIso} />\n </div>\n );\n}\n\nexport const profileScreenPropertySchema: WidgetPropertySchema = {\n widgetType: \"ProfileScreen\",\n displayName: \"Profile Screen\",\n tabsConfig: [{ id: \"styling\", label: \"Styling\" }],\n fields: [],\n} as const satisfies WidgetPropertySchema;\n"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import "./FluidProvider-DS1QKy5j.mjs";
1
+ import "./FluidProvider-CvS807e4.mjs";
2
2
  import "./ScreenRenderer-BQal-fnZ.mjs";
3
3
  import "./account-api-context-BIZ_aibJ.mjs";
4
4
  import "./store-api-context-C1lXT_3d.mjs";
@@ -22,11 +22,11 @@ import "./purify.es-Ba5Ug4-y.mjs";
22
22
  import "./MediaRenderer-13Jlf38P.mjs";
23
23
  import "./CarouselWidget-C0X-nFyW.mjs";
24
24
  import "./CatchUpWidget-BkeZR91e.mjs";
25
- import "./src-KINQ78Nj.mjs";
26
- import "./ChartWidget-Ci4Q0Ig-.mjs";
25
+ import "./src-jSFuc4IV.mjs";
26
+ import "./ChartWidget-aFsH9gwD.mjs";
27
27
  import "./ContainerWidget-cbX_KEOQ.mjs";
28
28
  import "./ImageWidget-DmaAQZBK.mjs";
29
- import "./LinkWidget-utkZrvAV.mjs";
29
+ import "./LinkWidget-CcEATaYa.mjs";
30
30
  import "./ListWidget-CNAxW_3c.mjs";
31
31
  import "./MySiteWidget-C0n9cSw7.mjs";
32
32
  import "./scroll-arrows-D90Miaz_.mjs";
@@ -37,12 +37,12 @@ import "./QuickShareWidget-DJ0Y71om.mjs";
37
37
  import "./RecentActivityWidget-Rpj33TiN.mjs";
38
38
  import "./SeparatorWidget-Bgzsloji.mjs";
39
39
  import "./SpacerWidget-C1byII28.mjs";
40
- import "./TableWidget-CNCHDRrR.mjs";
41
- import "./ToDoWidget-C3lh-3SB.mjs";
40
+ import "./TableWidget-BtAfTNH_.mjs";
41
+ import "./ToDoWidget-bn9bc_MO.mjs";
42
42
  import "./VideoWidget-DKhqN_Rx.mjs";
43
43
  import "./ScreenHeaderContext-4WYXIqQ5.mjs";
44
- import "./AddressAutocompleteInput-B0qLrCHN.mjs";
44
+ import "./AddressAutocompleteInput-Bdsv2iFU.mjs";
45
45
  import "./sortable.esm-NmKxJoc7.mjs";
46
- import "./components-D2h9u3tH.mjs";
47
- import { n as profileScreenPropertySchema, t as ProfileScreen } from "./ProfileScreen-IPuXlf9V.mjs";
46
+ import "./components-hloC7Tbu.mjs";
47
+ import { n as profileScreenPropertySchema, t as ProfileScreen } from "./ProfileScreen--6ETap-j.mjs";
48
48
  export { ProfileScreen, profileScreenPropertySchema };
@@ -1,4 +1,4 @@
1
- import { Dn as Button, J as DropdownMenuContent, L as Input, Y as DropdownMenuItem, q as DropdownMenu, rt as DropdownMenuTrigger } from "./src-KINQ78Nj.mjs";
1
+ import { J as DropdownMenuContent, L as Input, Y as DropdownMenuItem, kn as Button, q as DropdownMenu, rt as DropdownMenuTrigger } from "./src-jSFuc4IV.mjs";
2
2
  import { jsx, jsxs } from "react/jsx-runtime";
3
3
  import { ArrowUpDown, Check, Search, X } from "lucide-react";
4
4
  //#region ../../platform/ui-components/src/components/SearchSort.tsx
@@ -54,4 +54,4 @@ function SearchSort({ searchValue, onSearchChange, placeholder = "Search...", so
54
54
  //#endregion
55
55
  export { SearchSort as t };
56
56
 
57
- //# sourceMappingURL=SearchSort-B5Jrk5lW.mjs.map
57
+ //# sourceMappingURL=SearchSort-CnUiCGu2.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"SearchSort-B5Jrk5lW.mjs","names":[],"sources":["../../../platform/ui-components/src/components/SearchSort.tsx"],"sourcesContent":["import type React from \"react\";\nimport { ArrowUpDown, Check, Search, X } from \"lucide-react\";\nimport { Input } from \"@fluid-app/ui-primitives\";\nimport { Button } from \"@fluid-app/ui-primitives\";\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuTrigger,\n} from \"@fluid-app/ui-primitives\";\n\ntype SortOption = {\n label: string;\n value: string;\n};\n\ntype BaseSearchProps = {\n /** Current search value (controlled). */\n searchValue: string;\n /** Called on every keystroke with the new value. */\n onSearchChange: (value: string) => void;\n /** Placeholder text for the search input. */\n placeholder?: string;\n};\n\ntype SearchOnlyProps = BaseSearchProps & {\n sortOptions?: never;\n sortValue?: never;\n onSortChange?: never;\n};\n\ntype WithSortProps = BaseSearchProps & {\n /** Sort options to display in the dropdown. */\n sortOptions: ReadonlyArray<SortOption>;\n /** Currently selected sort value. */\n sortValue: string;\n /** Called when a sort option is selected. */\n onSortChange: (value: string) => void;\n};\n\ntype SearchSortProps = SearchOnlyProps | WithSortProps;\n\nexport type {\n SortOption,\n BaseSearchProps,\n SearchOnlyProps,\n WithSortProps,\n SearchSortProps,\n};\n\nexport function SearchSort({\n searchValue,\n onSearchChange,\n placeholder = \"Search...\",\n sortOptions,\n sortValue,\n onSortChange,\n}: SearchSortProps): React.JSX.Element {\n const activeSort = sortOptions?.find((o) => o.value === sortValue);\n\n return (\n <div className=\"flex items-center gap-2\">\n <div className=\"relative min-w-0 flex-1\">\n <Search className=\"text-muted-foreground pointer-events-none absolute top-1/2 left-3 size-4 -translate-y-1/2\" />\n <Input\n type=\"search\"\n value={searchValue}\n onChange={(e) => onSearchChange(e.target.value)}\n placeholder={placeholder}\n className=\"pl-9 [&::-webkit-search-cancel-button]:hidden\"\n />\n {searchValue.length > 0 && (\n <Button\n variant=\"ghost\"\n size=\"icon-xs\"\n onClick={() => onSearchChange(\"\")}\n aria-label=\"Clear search\"\n className=\"absolute top-1/2 right-2 -translate-y-1/2\"\n >\n <X className=\"size-3\" />\n </Button>\n )}\n </div>\n {sortOptions && sortOptions.length > 0 && (\n <DropdownMenu>\n <DropdownMenuTrigger asChild>\n <Button\n variant=\"outline\"\n aria-label={\n activeSort ? `Sort: ${activeSort.label}` : \"Sort options\"\n }\n >\n <ArrowUpDown className=\"size-4\" />\n {activeSort && (\n <span className=\"hidden sm:inline\">{activeSort.label}</span>\n )}\n </Button>\n </DropdownMenuTrigger>\n <DropdownMenuContent align=\"end\">\n {sortOptions.map((option) => {\n const isActive = option.value === sortValue;\n return (\n <DropdownMenuItem\n key={option.value}\n onClick={() => onSortChange(option.value)}\n >\n <span className=\"flex-1\">{option.label}</span>\n {isActive && (\n <Check className=\"text-muted-foreground size-4\" />\n )}\n </DropdownMenuItem>\n );\n })}\n </DropdownMenuContent>\n </DropdownMenu>\n )}\n </div>\n );\n}\n"],"mappings":";;;;AAkDA,SAAgB,WAAW,EACzB,aACA,gBACA,cAAc,aACd,aACA,WACA,gBACqC;CACrC,MAAM,aAAa,aAAa,MAAM,MAAM,EAAE,UAAU,UAAU;AAElE,QACE,qBAAC,OAAD;EAAK,WAAU;YAAf,CACE,qBAAC,OAAD;GAAK,WAAU;aAAf;IACE,oBAAC,QAAD,EAAQ,WAAU,6FAA8F,CAAA;IAChH,oBAAC,OAAD;KACE,MAAK;KACL,OAAO;KACP,WAAW,MAAM,eAAe,EAAE,OAAO,MAAM;KAClC;KACb,WAAU;KACV,CAAA;IACD,YAAY,SAAS,KACpB,oBAAC,QAAD;KACE,SAAQ;KACR,MAAK;KACL,eAAe,eAAe,GAAG;KACjC,cAAW;KACX,WAAU;eAEV,oBAAC,GAAD,EAAG,WAAU,UAAW,CAAA;KACjB,CAAA;IAEP;MACL,eAAe,YAAY,SAAS,KACnC,qBAAC,cAAD,EAAA,UAAA,CACE,oBAAC,qBAAD;GAAqB,SAAA;aACnB,qBAAC,QAAD;IACE,SAAQ;IACR,cACE,aAAa,SAAS,WAAW,UAAU;cAH/C,CAME,oBAAC,aAAD,EAAa,WAAU,UAAW,CAAA,EACjC,cACC,oBAAC,QAAD;KAAM,WAAU;eAAoB,WAAW;KAAa,CAAA,CAEvD;;GACW,CAAA,EACtB,oBAAC,qBAAD;GAAqB,OAAM;aACxB,YAAY,KAAK,WAAW;IAC3B,MAAM,WAAW,OAAO,UAAU;AAClC,WACE,qBAAC,kBAAD;KAEE,eAAe,aAAa,OAAO,MAAM;eAF3C,CAIE,oBAAC,QAAD;MAAM,WAAU;gBAAU,OAAO;MAAa,CAAA,EAC7C,YACC,oBAAC,OAAD,EAAO,WAAU,gCAAiC,CAAA,CAEnC;OAPZ,OAAO,MAOK;KAErB;GACkB,CAAA,CACT,EAAA,CAAA,CAEb"}
1
+ {"version":3,"file":"SearchSort-CnUiCGu2.mjs","names":[],"sources":["../../../platform/ui-components/src/components/SearchSort.tsx"],"sourcesContent":["import type React from \"react\";\nimport { ArrowUpDown, Check, Search, X } from \"lucide-react\";\nimport { Input } from \"@fluid-app/ui-primitives\";\nimport { Button } from \"@fluid-app/ui-primitives\";\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuTrigger,\n} from \"@fluid-app/ui-primitives\";\n\ntype SortOption = {\n label: string;\n value: string;\n};\n\ntype BaseSearchProps = {\n /** Current search value (controlled). */\n searchValue: string;\n /** Called on every keystroke with the new value. */\n onSearchChange: (value: string) => void;\n /** Placeholder text for the search input. */\n placeholder?: string;\n};\n\ntype SearchOnlyProps = BaseSearchProps & {\n sortOptions?: never;\n sortValue?: never;\n onSortChange?: never;\n};\n\ntype WithSortProps = BaseSearchProps & {\n /** Sort options to display in the dropdown. */\n sortOptions: ReadonlyArray<SortOption>;\n /** Currently selected sort value. */\n sortValue: string;\n /** Called when a sort option is selected. */\n onSortChange: (value: string) => void;\n};\n\ntype SearchSortProps = SearchOnlyProps | WithSortProps;\n\nexport type {\n SortOption,\n BaseSearchProps,\n SearchOnlyProps,\n WithSortProps,\n SearchSortProps,\n};\n\nexport function SearchSort({\n searchValue,\n onSearchChange,\n placeholder = \"Search...\",\n sortOptions,\n sortValue,\n onSortChange,\n}: SearchSortProps): React.JSX.Element {\n const activeSort = sortOptions?.find((o) => o.value === sortValue);\n\n return (\n <div className=\"flex items-center gap-2\">\n <div className=\"relative min-w-0 flex-1\">\n <Search className=\"text-muted-foreground pointer-events-none absolute top-1/2 left-3 size-4 -translate-y-1/2\" />\n <Input\n type=\"search\"\n value={searchValue}\n onChange={(e) => onSearchChange(e.target.value)}\n placeholder={placeholder}\n className=\"pl-9 [&::-webkit-search-cancel-button]:hidden\"\n />\n {searchValue.length > 0 && (\n <Button\n variant=\"ghost\"\n size=\"icon-xs\"\n onClick={() => onSearchChange(\"\")}\n aria-label=\"Clear search\"\n className=\"absolute top-1/2 right-2 -translate-y-1/2\"\n >\n <X className=\"size-3\" />\n </Button>\n )}\n </div>\n {sortOptions && sortOptions.length > 0 && (\n <DropdownMenu>\n <DropdownMenuTrigger asChild>\n <Button\n variant=\"outline\"\n aria-label={\n activeSort ? `Sort: ${activeSort.label}` : \"Sort options\"\n }\n >\n <ArrowUpDown className=\"size-4\" />\n {activeSort && (\n <span className=\"hidden sm:inline\">{activeSort.label}</span>\n )}\n </Button>\n </DropdownMenuTrigger>\n <DropdownMenuContent align=\"end\">\n {sortOptions.map((option) => {\n const isActive = option.value === sortValue;\n return (\n <DropdownMenuItem\n key={option.value}\n onClick={() => onSortChange(option.value)}\n >\n <span className=\"flex-1\">{option.label}</span>\n {isActive && (\n <Check className=\"text-muted-foreground size-4\" />\n )}\n </DropdownMenuItem>\n );\n })}\n </DropdownMenuContent>\n </DropdownMenu>\n )}\n </div>\n );\n}\n"],"mappings":";;;;AAkDA,SAAgB,WAAW,EACzB,aACA,gBACA,cAAc,aACd,aACA,WACA,gBACqC;CACrC,MAAM,aAAa,aAAa,MAAM,MAAM,EAAE,UAAU,UAAU;AAElE,QACE,qBAAC,OAAD;EAAK,WAAU;YAAf,CACE,qBAAC,OAAD;GAAK,WAAU;aAAf;IACE,oBAAC,QAAD,EAAQ,WAAU,6FAA8F,CAAA;IAChH,oBAAC,OAAD;KACE,MAAK;KACL,OAAO;KACP,WAAW,MAAM,eAAe,EAAE,OAAO,MAAM;KAClC;KACb,WAAU;KACV,CAAA;IACD,YAAY,SAAS,KACpB,oBAAC,QAAD;KACE,SAAQ;KACR,MAAK;KACL,eAAe,eAAe,GAAG;KACjC,cAAW;KACX,WAAU;eAEV,oBAAC,GAAD,EAAG,WAAU,UAAW,CAAA;KACjB,CAAA;IAEP;MACL,eAAe,YAAY,SAAS,KACnC,qBAAC,cAAD,EAAA,UAAA,CACE,oBAAC,qBAAD;GAAqB,SAAA;aACnB,qBAAC,QAAD;IACE,SAAQ;IACR,cACE,aAAa,SAAS,WAAW,UAAU;cAH/C,CAME,oBAAC,aAAD,EAAa,WAAU,UAAW,CAAA,EACjC,cACC,oBAAC,QAAD;KAAM,WAAU;eAAoB,WAAW;KAAa,CAAA,CAEvD;;GACW,CAAA,EACtB,oBAAC,qBAAD;GAAqB,OAAM;aACxB,YAAY,KAAK,WAAW;IAC3B,MAAM,WAAW,OAAO,UAAU;AAClC,WACE,qBAAC,kBAAD;KAEE,eAAe,aAAa,OAAO,MAAM;eAF3C,CAIE,oBAAC,QAAD;MAAM,WAAU;gBAAU,OAAO;MAAa,CAAA,EAC7C,YACC,oBAAC,OAAD,EAAO,WAAU,gCAAiC,CAAA,CAEnC;OAPZ,OAAO,MAOK;KAErB;GACkB,CAAA,CACT,EAAA,CAAA,CAEb"}
@@ -1,15 +1,15 @@
1
1
  import { A as playlists_list, C as pages_show, D as playlists_items_list, E as playlists_items_add, M as playlists_update, N as shares_create, O as playlists_items_remove, P as shares_list, S as pages_list, T as playlists_destroy, _ as media_products_add, a as content_playlists_by_shares, b as media_show, c as dam_asset_paths_list, d as dam_assets_discard, f as dam_assets_list, g as media_list, h as media_destroy, i as content_pages_by_visits, j as playlists_show, k as playlists_items_reorder, l as dam_assets_create, m as media_create, n as content_media_by_visits, o as content_playlists_by_visits, p as dam_query, r as content_pages_by_shares, s as dam_asset_paths_create, t as content_media_by_shares, u as dam_assets_destroy, v as media_products_list, w as playlists_create, x as media_update, y as media_products_remove } from "./portal_tenant_content-DPLnrtOG.mjs";
2
2
  import { l as enrollment_packs_list, u as enrollment_packs_show } from "./portal_tenant-Q3x7ALaZ.mjs";
3
3
  import { n as usePortalTenantClient } from "./PortalTenantClientProvider-Bni6J3KS.mjs";
4
- import { $ as DropdownMenuSeparator, A as Select, B as Form, C as Skeleton, Cn as AlertDialogDescription, Dn as Button, En as AlertDialogTitle, Et as CardContent, Fn as cn, G as FormMessage, H as FormField, J as DropdownMenuContent, K as Label, L as Input, M as SelectItem, N as SelectTrigger, On as Content, P as SelectValue, Pn as useZodForm, S as Slider, Sn as AlertDialogContent, Tn as AlertDialogHeader, U as FormItem, V as FormControl, W as FormLabel, Y as DropdownMenuItem, _ as Switch, b as fluidToast, bn as AlertDialogAction, c as Tabs, dn as BreadcrumbLink, dt as DialogPortal, et as DropdownMenuSub, fn as BreadcrumbList, ft as DialogTitle, hn as Badge, ht as PopoverTrigger, i as TooltipTrigger, it as Dialog, j as SelectContent, jt as Checkbox, k as Separator, l as TabsList, ln as Breadcrumb, lt as DialogHeader, mn as BreadcrumbSeparator, mt as PopoverContent, n as TooltipContent, nt as DropdownMenuSubTrigger, ot as DialogContent, pn as BreadcrumbPage, pt as Popover, q as DropdownMenu, r as TooltipProvider, rt as DropdownMenuTrigger, s as Textarea, st as DialogDescription, t as Tooltip, tt as DropdownMenuSubContent, u as TabsTrigger, un as BreadcrumbItem, ut as DialogOverlay, wn as AlertDialogFooter, wt as Card, xn as AlertDialogCancel, y as Spinner, yn as AlertDialog } from "./src-KINQ78Nj.mjs";
4
+ import { $ as DropdownMenuSeparator, A as Select, An as Content, B as Form, C as Skeleton, Cn as AlertDialogCancel, Dn as AlertDialogHeader, En as AlertDialogFooter, Et as CardContent, G as FormMessage, H as FormField, In as useZodForm, J as DropdownMenuContent, K as Label, L as Input, Ln as cn, M as SelectItem, N as SelectTrigger, On as AlertDialogTitle, P as SelectValue, S as Slider, Sn as AlertDialogAction, Tn as AlertDialogDescription, U as FormItem, V as FormControl, W as FormLabel, Y as DropdownMenuItem, _ as Switch, _n as Badge, b as fluidToast, c as Tabs, dn as Breadcrumb, dt as DialogPortal, et as DropdownMenuSub, fn as BreadcrumbItem, ft as DialogTitle, gn as BreadcrumbSeparator, hn as BreadcrumbPage, ht as PopoverTrigger, i as TooltipTrigger, it as Dialog, j as SelectContent, jt as Checkbox, k as Separator, kn as Button, l as TabsList, lt as DialogHeader, mn as BreadcrumbList, mt as PopoverContent, n as TooltipContent, nt as DropdownMenuSubTrigger, ot as DialogContent, pn as BreadcrumbLink, pt as Popover, q as DropdownMenu, r as TooltipProvider, rt as DropdownMenuTrigger, s as Textarea, st as DialogDescription, t as Tooltip, tt as DropdownMenuSubContent, u as TabsTrigger, ut as DialogOverlay, wn as AlertDialogContent, wt as Card, xn as AlertDialog, y as Spinner } from "./src-jSFuc4IV.mjs";
5
5
  import { n as useScreenHeaderActions, r as useScreenHeaderBreadcrumbs } from "./ScreenHeaderContext-4WYXIqQ5.mjs";
6
6
  import { t as useStore } from "./use-store-BVCCB9kx.mjs";
7
7
  import { t as useAccount } from "./use-account-CGaDP8xd.mjs";
8
8
  import { n as useAppNavigation } from "./AppNavigationContext-BcZZMtV6.mjs";
9
9
  import { a as verticalListSortingStrategy, c as PointerSensor, d as useSensors, f as CSS, i as useSortable, l as closestCenter, n as arrayMove, o as DndContext, p as PORTAL_MYSITE_KEYS, r as sortableKeyboardCoordinates, s as KeyboardSensor, t as SortableContext, u as useSensor } from "./sortable.esm-NmKxJoc7.mjs";
10
10
  import { a as useEditor, o as Placeholder, r as EditorContent, t as StarterKit } from "./dist-BstXVe25.mjs";
11
- import { t as useDropzone } from "./es-C5dhBJ9E.mjs";
12
- import { t as SearchSort } from "./SearchSort-B5Jrk5lW.mjs";
11
+ import { t as useDropzone } from "./es-B1tdcIoq.mjs";
12
+ import { t as SearchSort } from "./SearchSort-CnUiCGu2.mjs";
13
13
  import { n as TextAlign, t as Underline } from "./dist-Di1hciu4.mjs";
14
14
  import { o as usePortalProductsApi, t as PortalProductsApiProvider } from "./PortalProductsApiProvider-CNAu2pAb.mjs";
15
15
  import React, { PureComponent, createContext, createRef, forwardRef, useCallback, useContext, useEffect, useImperativeHandle, useMemo, useRef, useState } from "react";
@@ -13481,4 +13481,4 @@ const shareablesScreenPropertySchema = {
13481
13481
  //#endregion
13482
13482
  export { shareablesScreenPropertySchema as n, ShareablesScreen as t };
13483
13483
 
13484
- //# sourceMappingURL=ShareablesScreen-NMoZH9ed.mjs.map
13484
+ //# sourceMappingURL=ShareablesScreen-BY47-Q_G.mjs.map