@fluid-app/portal-sdk 0.1.286 → 0.1.288

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 (881) hide show
  1. package/dist/AddressAutocompleteInput-C_H7gSJt.mjs +2214 -0
  2. package/dist/AddressAutocompleteInput-C_H7gSJt.mjs.map +1 -0
  3. package/dist/AddressAutocompleteInput-tZX9kPwb.cjs +2310 -0
  4. package/dist/AddressAutocompleteInput-tZX9kPwb.cjs.map +1 -0
  5. package/dist/ContactsScreen-BaNFVTVX.cjs +10 -0
  6. package/dist/ContactsScreen-CLLyfNru.mjs +3397 -0
  7. package/dist/ContactsScreen-CLLyfNru.mjs.map +1 -0
  8. package/dist/ContactsScreen-D8M6J3nC.cjs +3405 -0
  9. package/dist/ContactsScreen-D8M6J3nC.cjs.map +1 -0
  10. package/dist/ProfileScreen-BDvruZ90.mjs +1232 -0
  11. package/dist/ProfileScreen-BDvruZ90.mjs.map +1 -0
  12. package/dist/ProfileScreen-BH0A6Y3R.mjs +46 -0
  13. package/dist/ProfileScreen-CT5nLt3E.cjs +1244 -0
  14. package/dist/ProfileScreen-CT5nLt3E.cjs.map +1 -0
  15. package/dist/ProfileScreen-DrTa9Boy.cjs +48 -0
  16. package/dist/ShareablesScreen-BT3H1Omb.cjs +13896 -0
  17. package/dist/ShareablesScreen-BT3H1Omb.cjs.map +1 -0
  18. package/dist/ShareablesScreen-BrsJQqia.mjs +13880 -0
  19. package/dist/ShareablesScreen-BrsJQqia.mjs.map +1 -0
  20. package/dist/ShareablesScreen-IU9JBJzD.mjs +14 -0
  21. package/dist/ShareablesScreen-RxdJqjda.cjs +16 -0
  22. package/dist/ShopScreen-BLo9zSmm.mjs +45 -0
  23. package/dist/ShopScreen-BgiNBkIk.cjs +1295 -0
  24. package/dist/ShopScreen-BgiNBkIk.cjs.map +1 -0
  25. package/dist/ShopScreen-Bjo-5mdC.mjs +1282 -0
  26. package/dist/ShopScreen-Bjo-5mdC.mjs.map +1 -0
  27. package/dist/ShopScreen-BzaTY9cV.cjs +47 -0
  28. package/dist/SubscriptionsScreen-5IsYJnvc.cjs +5791 -0
  29. package/dist/SubscriptionsScreen-5IsYJnvc.cjs.map +1 -0
  30. package/dist/SubscriptionsScreen-B9_Cmmrc.mjs +5723 -0
  31. package/dist/SubscriptionsScreen-B9_Cmmrc.mjs.map +1 -0
  32. package/dist/SubscriptionsScreen-BpiWZf9J.cjs +11 -0
  33. package/dist/UpgradeScreen-DjCkknBC.cjs +6 -0
  34. package/dist/UpgradeScreen-Dqe70qIt.cjs +203 -0
  35. package/dist/UpgradeScreen-Dqe70qIt.cjs.map +1 -0
  36. package/dist/UpgradeScreen-WLq4bFhS.mjs +196 -0
  37. package/dist/UpgradeScreen-WLq4bFhS.mjs.map +1 -0
  38. package/dist/de-B2xuRzqB.mjs +125 -0
  39. package/dist/de-B2xuRzqB.mjs.map +1 -0
  40. package/dist/de-BMzN6pvJ.mjs +37 -0
  41. package/dist/de-BMzN6pvJ.mjs.map +1 -0
  42. package/dist/de-BP_BwSkX.mjs +24 -0
  43. package/dist/de-BP_BwSkX.mjs.map +1 -0
  44. package/dist/de-BcjRy6IX.mjs +74 -0
  45. package/dist/de-BcjRy6IX.mjs.map +1 -0
  46. package/dist/de-CA1BpazO.cjs +43 -0
  47. package/dist/de-CA1BpazO.cjs.map +1 -0
  48. package/dist/de-CQojBku3.cjs +131 -0
  49. package/dist/de-CQojBku3.cjs.map +1 -0
  50. package/dist/de-DLKXYoUC.cjs +80 -0
  51. package/dist/de-DLKXYoUC.cjs.map +1 -0
  52. package/dist/de-DLVI44iM.cjs +12 -0
  53. package/dist/de-DLVI44iM.cjs.map +1 -0
  54. package/dist/de-DZXu_Lma.mjs +6 -0
  55. package/dist/de-DZXu_Lma.mjs.map +1 -0
  56. package/dist/de-d5sXuDlc.cjs +12 -0
  57. package/dist/de-d5sXuDlc.cjs.map +1 -0
  58. package/dist/de-hW77cwjn.cjs +30 -0
  59. package/dist/de-hW77cwjn.cjs.map +1 -0
  60. package/dist/de-ndSZ5ykY.mjs +6 -0
  61. package/dist/de-ndSZ5ykY.mjs.map +1 -0
  62. package/dist/el-3T5wNvmF.cjs +12 -0
  63. package/dist/el-3T5wNvmF.cjs.map +1 -0
  64. package/dist/el-BVROkdqG.cjs +43 -0
  65. package/dist/el-BVROkdqG.cjs.map +1 -0
  66. package/dist/el-C1QZdoK1.cjs +131 -0
  67. package/dist/el-C1QZdoK1.cjs.map +1 -0
  68. package/dist/el-CT5RY-mx.mjs +125 -0
  69. package/dist/el-CT5RY-mx.mjs.map +1 -0
  70. package/dist/el-CWq1GFO2.mjs +37 -0
  71. package/dist/el-CWq1GFO2.mjs.map +1 -0
  72. package/dist/el-ChL3zQdm.mjs +6 -0
  73. package/dist/el-ChL3zQdm.mjs.map +1 -0
  74. package/dist/el-Dji5p2km.cjs +80 -0
  75. package/dist/el-Dji5p2km.cjs.map +1 -0
  76. package/dist/el-DtirnL7N.cjs +12 -0
  77. package/dist/el-DtirnL7N.cjs.map +1 -0
  78. package/dist/el-XW2NR7Vh.mjs +74 -0
  79. package/dist/el-XW2NR7Vh.mjs.map +1 -0
  80. package/dist/el-XwgbXcif.cjs +30 -0
  81. package/dist/el-XwgbXcif.cjs.map +1 -0
  82. package/dist/el-epEJkauy.mjs +6 -0
  83. package/dist/el-epEJkauy.mjs.map +1 -0
  84. package/dist/el-xbVPoQUL.mjs +24 -0
  85. package/dist/el-xbVPoQUL.mjs.map +1 -0
  86. package/dist/es-BSkjqnkF.cjs +12 -0
  87. package/dist/es-BSkjqnkF.cjs.map +1 -0
  88. package/dist/es-BX5djVHQ.cjs +30 -0
  89. package/dist/es-BX5djVHQ.cjs.map +1 -0
  90. package/dist/es-Bh1xngyE.mjs +6 -0
  91. package/dist/es-Bh1xngyE.mjs.map +1 -0
  92. package/dist/es-BjDZEneQ.cjs +80 -0
  93. package/dist/es-BjDZEneQ.cjs.map +1 -0
  94. package/dist/es-C2uchKja.cjs +43 -0
  95. package/dist/es-C2uchKja.cjs.map +1 -0
  96. package/dist/es-C2zfJQck.mjs +37 -0
  97. package/dist/es-C2zfJQck.mjs.map +1 -0
  98. package/dist/es-CWW1uLK3.mjs +6 -0
  99. package/dist/es-CWW1uLK3.mjs.map +1 -0
  100. package/dist/es-CyPr-juY.cjs +131 -0
  101. package/dist/es-CyPr-juY.cjs.map +1 -0
  102. package/dist/es-DYAui4cM.cjs +12 -0
  103. package/dist/es-DYAui4cM.cjs.map +1 -0
  104. package/dist/es-DjcSUa7j.mjs +125 -0
  105. package/dist/es-DjcSUa7j.mjs.map +1 -0
  106. package/dist/es-DnX0XFqD.mjs +74 -0
  107. package/dist/es-DnX0XFqD.mjs.map +1 -0
  108. package/dist/es-O3pQS-dk.mjs +24 -0
  109. package/dist/es-O3pQS-dk.mjs.map +1 -0
  110. package/dist/fr-7IjPHZxW.mjs +74 -0
  111. package/dist/fr-7IjPHZxW.mjs.map +1 -0
  112. package/dist/fr-BiJrmc6t.mjs +125 -0
  113. package/dist/fr-BiJrmc6t.mjs.map +1 -0
  114. package/dist/fr-BzVQUMC0.cjs +131 -0
  115. package/dist/fr-BzVQUMC0.cjs.map +1 -0
  116. package/dist/fr-C-2Pj7D2.cjs +43 -0
  117. package/dist/fr-C-2Pj7D2.cjs.map +1 -0
  118. package/dist/fr-CT47eWK_.mjs +6 -0
  119. package/dist/fr-CT47eWK_.mjs.map +1 -0
  120. package/dist/fr-DYML7Hb_.cjs +12 -0
  121. package/dist/fr-DYML7Hb_.cjs.map +1 -0
  122. package/dist/fr-DfMQoI8H.mjs +6 -0
  123. package/dist/fr-DfMQoI8H.mjs.map +1 -0
  124. package/dist/fr-MJsdTksK.mjs +24 -0
  125. package/dist/fr-MJsdTksK.mjs.map +1 -0
  126. package/dist/fr-XWBehwDw.cjs +30 -0
  127. package/dist/fr-XWBehwDw.cjs.map +1 -0
  128. package/dist/fr-_zhbWJHh.cjs +12 -0
  129. package/dist/fr-_zhbWJHh.cjs.map +1 -0
  130. package/dist/fr-jXtwm66y.mjs +37 -0
  131. package/dist/fr-jXtwm66y.mjs.map +1 -0
  132. package/dist/fr-wYZdZtt7.cjs +80 -0
  133. package/dist/fr-wYZdZtt7.cjs.map +1 -0
  134. package/dist/he-BNgtWUzu.cjs +43 -0
  135. package/dist/he-BNgtWUzu.cjs.map +1 -0
  136. package/dist/he-BcBh-9RB.cjs +12 -0
  137. package/dist/he-BcBh-9RB.cjs.map +1 -0
  138. package/dist/he-C4xGY_O5.cjs +30 -0
  139. package/dist/he-C4xGY_O5.cjs.map +1 -0
  140. package/dist/he-CBny3yj_.cjs +131 -0
  141. package/dist/he-CBny3yj_.cjs.map +1 -0
  142. package/dist/he-Cai6j3oW.mjs +6 -0
  143. package/dist/he-Cai6j3oW.mjs.map +1 -0
  144. package/dist/he-CsOIjabt.mjs +24 -0
  145. package/dist/he-CsOIjabt.mjs.map +1 -0
  146. package/dist/he-Cu_YCy1f.cjs +12 -0
  147. package/dist/he-Cu_YCy1f.cjs.map +1 -0
  148. package/dist/he-D-R8pe0L.mjs +125 -0
  149. package/dist/he-D-R8pe0L.mjs.map +1 -0
  150. package/dist/he-Dv0k0pX-.cjs +80 -0
  151. package/dist/he-Dv0k0pX-.cjs.map +1 -0
  152. package/dist/he-OAQhQxWm.mjs +74 -0
  153. package/dist/he-OAQhQxWm.mjs.map +1 -0
  154. package/dist/he-gcmGB1-C.mjs +6 -0
  155. package/dist/he-gcmGB1-C.mjs.map +1 -0
  156. package/dist/he-z0iIyfGu.mjs +37 -0
  157. package/dist/he-z0iIyfGu.mjs.map +1 -0
  158. package/dist/hu-BLBHZrAu.mjs +37 -0
  159. package/dist/hu-BLBHZrAu.mjs.map +1 -0
  160. package/dist/hu-BR0rOtJC.cjs +43 -0
  161. package/dist/hu-BR0rOtJC.cjs.map +1 -0
  162. package/dist/hu-BTBlTUaQ.cjs +131 -0
  163. package/dist/hu-BTBlTUaQ.cjs.map +1 -0
  164. package/dist/hu-BTvnBj9a.cjs +30 -0
  165. package/dist/hu-BTvnBj9a.cjs.map +1 -0
  166. package/dist/hu-CDvVhWXF.mjs +74 -0
  167. package/dist/hu-CDvVhWXF.mjs.map +1 -0
  168. package/dist/hu-CYFjRrQD.cjs +80 -0
  169. package/dist/hu-CYFjRrQD.cjs.map +1 -0
  170. package/dist/hu-Czc1FPg9.cjs +12 -0
  171. package/dist/hu-Czc1FPg9.cjs.map +1 -0
  172. package/dist/hu-D4fy_GxO.mjs +125 -0
  173. package/dist/hu-D4fy_GxO.mjs.map +1 -0
  174. package/dist/hu-DGyykLlw.mjs +24 -0
  175. package/dist/hu-DGyykLlw.mjs.map +1 -0
  176. package/dist/hu-DS-6XHh5.mjs +6 -0
  177. package/dist/hu-DS-6XHh5.mjs.map +1 -0
  178. package/dist/hu-DqI8hdAt.cjs +12 -0
  179. package/dist/hu-DqI8hdAt.cjs.map +1 -0
  180. package/dist/hu-pswRdooT.mjs +6 -0
  181. package/dist/hu-pswRdooT.mjs.map +1 -0
  182. package/dist/id-4tl2Uj7F.mjs +6 -0
  183. package/dist/id-4tl2Uj7F.mjs.map +1 -0
  184. package/dist/id-52itow18.cjs +43 -0
  185. package/dist/id-52itow18.cjs.map +1 -0
  186. package/dist/id-Bbvk8MDA.mjs +125 -0
  187. package/dist/id-Bbvk8MDA.mjs.map +1 -0
  188. package/dist/id-BxQgqmXd.cjs +131 -0
  189. package/dist/id-BxQgqmXd.cjs.map +1 -0
  190. package/dist/id-C4zO4qio.cjs +30 -0
  191. package/dist/id-C4zO4qio.cjs.map +1 -0
  192. package/dist/id-Cdurf_cc.mjs +24 -0
  193. package/dist/id-Cdurf_cc.mjs.map +1 -0
  194. package/dist/id-DGh6JGZ5.mjs +37 -0
  195. package/dist/id-DGh6JGZ5.mjs.map +1 -0
  196. package/dist/id-DP5zxg41.mjs +74 -0
  197. package/dist/id-DP5zxg41.mjs.map +1 -0
  198. package/dist/id-Dhws7LdN.mjs +6 -0
  199. package/dist/id-Dhws7LdN.mjs.map +1 -0
  200. package/dist/id-DqK8hygJ.cjs +12 -0
  201. package/dist/id-DqK8hygJ.cjs.map +1 -0
  202. package/dist/id-Vw9DQ3V1.cjs +12 -0
  203. package/dist/id-Vw9DQ3V1.cjs.map +1 -0
  204. package/dist/id-tlOQCFLJ.cjs +80 -0
  205. package/dist/id-tlOQCFLJ.cjs.map +1 -0
  206. package/dist/index.cjs +152 -61
  207. package/dist/index.cjs.map +1 -1
  208. package/dist/index.d.cts.map +1 -1
  209. package/dist/index.d.mts.map +1 -1
  210. package/dist/index.mjs +152 -61
  211. package/dist/index.mjs.map +1 -1
  212. package/dist/it--DHBKc26.cjs +12 -0
  213. package/dist/it--DHBKc26.cjs.map +1 -0
  214. package/dist/it-BODMi-FY.cjs +30 -0
  215. package/dist/it-BODMi-FY.cjs.map +1 -0
  216. package/dist/it-C34p5klu.mjs +24 -0
  217. package/dist/it-C34p5klu.mjs.map +1 -0
  218. package/dist/it-CPXF5aFi.cjs +80 -0
  219. package/dist/it-CPXF5aFi.cjs.map +1 -0
  220. package/dist/it-CbZjaErj.cjs +43 -0
  221. package/dist/it-CbZjaErj.cjs.map +1 -0
  222. package/dist/it-CfLSq25e.mjs +37 -0
  223. package/dist/it-CfLSq25e.mjs.map +1 -0
  224. package/dist/it-CpnrX6Qu.cjs +12 -0
  225. package/dist/it-CpnrX6Qu.cjs.map +1 -0
  226. package/dist/it-CqvzV23C.mjs +74 -0
  227. package/dist/it-CqvzV23C.mjs.map +1 -0
  228. package/dist/it-ELWZ1sxy.mjs +125 -0
  229. package/dist/it-ELWZ1sxy.mjs.map +1 -0
  230. package/dist/it-Hj3LCvz1.mjs +6 -0
  231. package/dist/it-Hj3LCvz1.mjs.map +1 -0
  232. package/dist/it-L0NVZqjU.cjs +131 -0
  233. package/dist/it-L0NVZqjU.cjs.map +1 -0
  234. package/dist/it-dsOgAn3r.mjs +6 -0
  235. package/dist/it-dsOgAn3r.mjs.map +1 -0
  236. package/dist/ja-B1DQXHgd.mjs +74 -0
  237. package/dist/ja-B1DQXHgd.mjs.map +1 -0
  238. package/dist/ja-B2NQ5sR-.cjs +80 -0
  239. package/dist/ja-B2NQ5sR-.cjs.map +1 -0
  240. package/dist/ja-BYGHlw8d.cjs +30 -0
  241. package/dist/ja-BYGHlw8d.cjs.map +1 -0
  242. package/dist/ja-BaU2QXo2.cjs +43 -0
  243. package/dist/ja-BaU2QXo2.cjs.map +1 -0
  244. package/dist/ja-BqySbP-W.mjs +6 -0
  245. package/dist/ja-BqySbP-W.mjs.map +1 -0
  246. package/dist/ja-C1QZfTGN.mjs +125 -0
  247. package/dist/ja-C1QZfTGN.mjs.map +1 -0
  248. package/dist/ja-C3C0k99E.cjs +12 -0
  249. package/dist/ja-C3C0k99E.cjs.map +1 -0
  250. package/dist/ja-Cft4ODrl.mjs +24 -0
  251. package/dist/ja-Cft4ODrl.mjs.map +1 -0
  252. package/dist/ja-CuLC8KzH.mjs +6 -0
  253. package/dist/ja-CuLC8KzH.mjs.map +1 -0
  254. package/dist/ja-D5fpLCDT.cjs +131 -0
  255. package/dist/ja-D5fpLCDT.cjs.map +1 -0
  256. package/dist/ja-JVcCjBJ9.cjs +12 -0
  257. package/dist/ja-JVcCjBJ9.cjs.map +1 -0
  258. package/dist/ja-kM5CUvdg.mjs +37 -0
  259. package/dist/ja-kM5CUvdg.mjs.map +1 -0
  260. package/dist/ko-BREsc9Rl.mjs +24 -0
  261. package/dist/ko-BREsc9Rl.mjs.map +1 -0
  262. package/dist/ko-BX4GXxaa.mjs +125 -0
  263. package/dist/ko-BX4GXxaa.mjs.map +1 -0
  264. package/dist/ko-C0Q33hJ9.cjs +80 -0
  265. package/dist/ko-C0Q33hJ9.cjs.map +1 -0
  266. package/dist/ko-Cdb4MyCC.mjs +6 -0
  267. package/dist/ko-Cdb4MyCC.mjs.map +1 -0
  268. package/dist/ko-D2TLG_3_.mjs +37 -0
  269. package/dist/ko-D2TLG_3_.mjs.map +1 -0
  270. package/dist/ko-D64no-WM.cjs +131 -0
  271. package/dist/ko-D64no-WM.cjs.map +1 -0
  272. package/dist/ko-DDBkvKT3.mjs +6 -0
  273. package/dist/ko-DDBkvKT3.mjs.map +1 -0
  274. package/dist/ko-DROYufGO.cjs +12 -0
  275. package/dist/ko-DROYufGO.cjs.map +1 -0
  276. package/dist/ko-HEegPkOi.cjs +30 -0
  277. package/dist/ko-HEegPkOi.cjs.map +1 -0
  278. package/dist/ko-PUpIJgsU.mjs +74 -0
  279. package/dist/ko-PUpIJgsU.mjs.map +1 -0
  280. package/dist/ko-WIfVodYY.cjs +12 -0
  281. package/dist/ko-WIfVodYY.cjs.map +1 -0
  282. package/dist/ko-vQjiRfrX.cjs +43 -0
  283. package/dist/ko-vQjiRfrX.cjs.map +1 -0
  284. package/dist/nl-BdRkpB-f.mjs +74 -0
  285. package/dist/nl-BdRkpB-f.mjs.map +1 -0
  286. package/dist/nl-Byk7MZjq.cjs +12 -0
  287. package/dist/nl-Byk7MZjq.cjs.map +1 -0
  288. package/dist/nl-C5U5y6gr.cjs +12 -0
  289. package/dist/nl-C5U5y6gr.cjs.map +1 -0
  290. package/dist/nl-C8T6RqHI.cjs +131 -0
  291. package/dist/nl-C8T6RqHI.cjs.map +1 -0
  292. package/dist/nl-CxaUAerZ.mjs +24 -0
  293. package/dist/nl-CxaUAerZ.mjs.map +1 -0
  294. package/dist/nl-D0dcnS-5.mjs +6 -0
  295. package/dist/nl-D0dcnS-5.mjs.map +1 -0
  296. package/dist/nl-D5y8p_At.cjs +80 -0
  297. package/dist/nl-D5y8p_At.cjs.map +1 -0
  298. package/dist/nl-DFUHK5ta.mjs +6 -0
  299. package/dist/nl-DFUHK5ta.mjs.map +1 -0
  300. package/dist/nl-DRxCBp_v.cjs +43 -0
  301. package/dist/nl-DRxCBp_v.cjs.map +1 -0
  302. package/dist/nl-Dww7O0AO.mjs +37 -0
  303. package/dist/nl-Dww7O0AO.mjs.map +1 -0
  304. package/dist/nl-ayPagHJ_.cjs +30 -0
  305. package/dist/nl-ayPagHJ_.cjs.map +1 -0
  306. package/dist/nl-mL8uL7cu.mjs +125 -0
  307. package/dist/nl-mL8uL7cu.mjs.map +1 -0
  308. package/dist/pl-AsC20yM9.cjs +43 -0
  309. package/dist/pl-AsC20yM9.cjs.map +1 -0
  310. package/dist/pl-Beb7Fiam.mjs +125 -0
  311. package/dist/pl-Beb7Fiam.mjs.map +1 -0
  312. package/dist/pl-BvfqoRfV.cjs +80 -0
  313. package/dist/pl-BvfqoRfV.cjs.map +1 -0
  314. package/dist/pl-COP9NGch.mjs +6 -0
  315. package/dist/pl-COP9NGch.mjs.map +1 -0
  316. package/dist/pl-CcIcOxXb.mjs +6 -0
  317. package/dist/pl-CcIcOxXb.mjs.map +1 -0
  318. package/dist/pl-CgKBvrJr.mjs +24 -0
  319. package/dist/pl-CgKBvrJr.mjs.map +1 -0
  320. package/dist/pl-DJKAFKNJ.cjs +12 -0
  321. package/dist/pl-DJKAFKNJ.cjs.map +1 -0
  322. package/dist/pl-DZZ1e6TM.cjs +12 -0
  323. package/dist/pl-DZZ1e6TM.cjs.map +1 -0
  324. package/dist/pl-DpVEpGL0.cjs +131 -0
  325. package/dist/pl-DpVEpGL0.cjs.map +1 -0
  326. package/dist/pl-LHrd1s6r.cjs +30 -0
  327. package/dist/pl-LHrd1s6r.cjs.map +1 -0
  328. package/dist/pl-PV9rlOz1.mjs +37 -0
  329. package/dist/pl-PV9rlOz1.mjs.map +1 -0
  330. package/dist/pl-XfyC_jQs.mjs +74 -0
  331. package/dist/pl-XfyC_jQs.mjs.map +1 -0
  332. package/dist/pt-B4hr_uJO.mjs +125 -0
  333. package/dist/pt-B4hr_uJO.mjs.map +1 -0
  334. package/dist/pt-BBFH5zDu.cjs +43 -0
  335. package/dist/pt-BBFH5zDu.cjs.map +1 -0
  336. package/dist/pt-BC56DXTY.mjs +37 -0
  337. package/dist/pt-BC56DXTY.mjs.map +1 -0
  338. package/dist/pt-BrnvgQRs.cjs +12 -0
  339. package/dist/pt-BrnvgQRs.cjs.map +1 -0
  340. package/dist/pt-CSvh02ed.mjs +6 -0
  341. package/dist/pt-CSvh02ed.mjs.map +1 -0
  342. package/dist/pt-CW6UZk1v.cjs +30 -0
  343. package/dist/pt-CW6UZk1v.cjs.map +1 -0
  344. package/dist/pt-CifIYahI.cjs +131 -0
  345. package/dist/pt-CifIYahI.cjs.map +1 -0
  346. package/dist/pt-CpQN7iPy.cjs +12 -0
  347. package/dist/pt-CpQN7iPy.cjs.map +1 -0
  348. package/dist/pt-DG1WQnTO.mjs +24 -0
  349. package/dist/pt-DG1WQnTO.mjs.map +1 -0
  350. package/dist/pt-DLFLkEpR.mjs +74 -0
  351. package/dist/pt-DLFLkEpR.mjs.map +1 -0
  352. package/dist/pt-D_Fxu0mz.mjs +6 -0
  353. package/dist/pt-D_Fxu0mz.mjs.map +1 -0
  354. package/dist/pt-Dx69fLab.cjs +80 -0
  355. package/dist/pt-Dx69fLab.cjs.map +1 -0
  356. package/dist/ro-B6ExafZC.cjs +131 -0
  357. package/dist/ro-B6ExafZC.cjs.map +1 -0
  358. package/dist/ro-BY4QQCns.cjs +30 -0
  359. package/dist/ro-BY4QQCns.cjs.map +1 -0
  360. package/dist/ro-CGOwHLvs.cjs +12 -0
  361. package/dist/ro-CGOwHLvs.cjs.map +1 -0
  362. package/dist/ro-CJJKGRs9.mjs +37 -0
  363. package/dist/ro-CJJKGRs9.mjs.map +1 -0
  364. package/dist/ro-Cu3cJnmT.mjs +74 -0
  365. package/dist/ro-Cu3cJnmT.mjs.map +1 -0
  366. package/dist/ro-D2WH48l8.mjs +6 -0
  367. package/dist/ro-D2WH48l8.mjs.map +1 -0
  368. package/dist/ro-DS3mARiW.cjs +43 -0
  369. package/dist/ro-DS3mARiW.cjs.map +1 -0
  370. package/dist/ro-DStH8jqQ.cjs +80 -0
  371. package/dist/ro-DStH8jqQ.cjs.map +1 -0
  372. package/dist/ro-Dg398PV0.mjs +24 -0
  373. package/dist/ro-Dg398PV0.mjs.map +1 -0
  374. package/dist/ro-DhGoI55Z.mjs +125 -0
  375. package/dist/ro-DhGoI55Z.mjs.map +1 -0
  376. package/dist/ro-dpJtFKiA.cjs +12 -0
  377. package/dist/ro-dpJtFKiA.cjs.map +1 -0
  378. package/dist/ro-lFxvLN7R.mjs +6 -0
  379. package/dist/ro-lFxvLN7R.mjs.map +1 -0
  380. package/dist/ru-9zdAxTCI.cjs +30 -0
  381. package/dist/ru-9zdAxTCI.cjs.map +1 -0
  382. package/dist/ru-BCP_P-Kw.mjs +6 -0
  383. package/dist/ru-BCP_P-Kw.mjs.map +1 -0
  384. package/dist/ru-BymfL4lY.mjs +125 -0
  385. package/dist/ru-BymfL4lY.mjs.map +1 -0
  386. package/dist/ru-C9sTu8KO.mjs +74 -0
  387. package/dist/ru-C9sTu8KO.mjs.map +1 -0
  388. package/dist/ru-CKfstS2M.cjs +43 -0
  389. package/dist/ru-CKfstS2M.cjs.map +1 -0
  390. package/dist/ru-CW4wBDfy.cjs +12 -0
  391. package/dist/ru-CW4wBDfy.cjs.map +1 -0
  392. package/dist/ru-CyoLQlWx.cjs +12 -0
  393. package/dist/ru-CyoLQlWx.cjs.map +1 -0
  394. package/dist/ru-DHNcAvHk.mjs +37 -0
  395. package/dist/ru-DHNcAvHk.mjs.map +1 -0
  396. package/dist/ru-DPs8Axnb.cjs +80 -0
  397. package/dist/ru-DPs8Axnb.cjs.map +1 -0
  398. package/dist/ru-JgTYyWIt.mjs +6 -0
  399. package/dist/ru-JgTYyWIt.mjs.map +1 -0
  400. package/dist/ru-fz-F75f4.cjs +131 -0
  401. package/dist/ru-fz-F75f4.cjs.map +1 -0
  402. package/dist/ru-k8yUinAx.mjs +24 -0
  403. package/dist/ru-k8yUinAx.mjs.map +1 -0
  404. package/dist/th-B83Fh-0G.cjs +12 -0
  405. package/dist/th-B83Fh-0G.cjs.map +1 -0
  406. package/dist/th-BVg0Jjgr.cjs +131 -0
  407. package/dist/th-BVg0Jjgr.cjs.map +1 -0
  408. package/dist/th-BYXBW0X2.cjs +43 -0
  409. package/dist/th-BYXBW0X2.cjs.map +1 -0
  410. package/dist/th-C7VrhPP5.cjs +12 -0
  411. package/dist/th-C7VrhPP5.cjs.map +1 -0
  412. package/dist/th-CZxqRIHs.mjs +6 -0
  413. package/dist/th-CZxqRIHs.mjs.map +1 -0
  414. package/dist/th-CmX6_2CM.mjs +74 -0
  415. package/dist/th-CmX6_2CM.mjs.map +1 -0
  416. package/dist/th-D8Prwe8n.cjs +30 -0
  417. package/dist/th-D8Prwe8n.cjs.map +1 -0
  418. package/dist/th-DkjnkI6P.mjs +6 -0
  419. package/dist/th-DkjnkI6P.mjs.map +1 -0
  420. package/dist/th-KyxBje7z.cjs +80 -0
  421. package/dist/th-KyxBje7z.cjs.map +1 -0
  422. package/dist/th-cad5Cap4.mjs +37 -0
  423. package/dist/th-cad5Cap4.mjs.map +1 -0
  424. package/dist/th-ge5FSv6T.mjs +125 -0
  425. package/dist/th-ge5FSv6T.mjs.map +1 -0
  426. package/dist/th-nYdqpaRn.mjs +24 -0
  427. package/dist/th-nYdqpaRn.mjs.map +1 -0
  428. package/dist/tl-B888TBzV.mjs +37 -0
  429. package/dist/tl-B888TBzV.mjs.map +1 -0
  430. package/dist/tl-Bua5-krl.mjs +24 -0
  431. package/dist/tl-Bua5-krl.mjs.map +1 -0
  432. package/dist/tl-CATDGPeB.cjs +12 -0
  433. package/dist/tl-CATDGPeB.cjs.map +1 -0
  434. package/dist/tl-CKjLSF_S.cjs +131 -0
  435. package/dist/tl-CKjLSF_S.cjs.map +1 -0
  436. package/dist/tl-CT5Bevzy.mjs +6 -0
  437. package/dist/tl-CT5Bevzy.mjs.map +1 -0
  438. package/dist/tl-CsRFJOIR.cjs +80 -0
  439. package/dist/tl-CsRFJOIR.cjs.map +1 -0
  440. package/dist/tl-D4iI7i02.cjs +30 -0
  441. package/dist/tl-D4iI7i02.cjs.map +1 -0
  442. package/dist/tl-DCKUBvuV.mjs +6 -0
  443. package/dist/tl-DCKUBvuV.mjs.map +1 -0
  444. package/dist/tl-DI0F6h6a.mjs +74 -0
  445. package/dist/tl-DI0F6h6a.mjs.map +1 -0
  446. package/dist/tl-DzIwhz3k.cjs +12 -0
  447. package/dist/tl-DzIwhz3k.cjs.map +1 -0
  448. package/dist/tl-icpkJ5RY.mjs +125 -0
  449. package/dist/tl-icpkJ5RY.mjs.map +1 -0
  450. package/dist/tl-lZlSu-sM.cjs +43 -0
  451. package/dist/tl-lZlSu-sM.cjs.map +1 -0
  452. package/dist/tr-9nLGvy6N.mjs +24 -0
  453. package/dist/tr-9nLGvy6N.mjs.map +1 -0
  454. package/dist/tr-B96yy4BZ.mjs +37 -0
  455. package/dist/tr-B96yy4BZ.mjs.map +1 -0
  456. package/dist/tr-BdEGICrX.cjs +80 -0
  457. package/dist/tr-BdEGICrX.cjs.map +1 -0
  458. package/dist/tr-Bsdv5dWu.cjs +12 -0
  459. package/dist/tr-Bsdv5dWu.cjs.map +1 -0
  460. package/dist/tr-Bu5HeGRu.cjs +30 -0
  461. package/dist/tr-Bu5HeGRu.cjs.map +1 -0
  462. package/dist/tr-COlHtN47.mjs +6 -0
  463. package/dist/tr-COlHtN47.mjs.map +1 -0
  464. package/dist/tr-CVK6oefd.cjs +12 -0
  465. package/dist/tr-CVK6oefd.cjs.map +1 -0
  466. package/dist/tr-CifdAA_w.cjs +43 -0
  467. package/dist/tr-CifdAA_w.cjs.map +1 -0
  468. package/dist/tr-D1KVbmGI.mjs +74 -0
  469. package/dist/tr-D1KVbmGI.mjs.map +1 -0
  470. package/dist/tr-DMnXKPnI.cjs +131 -0
  471. package/dist/tr-DMnXKPnI.cjs.map +1 -0
  472. package/dist/tr-DuFbZrRu.mjs +6 -0
  473. package/dist/tr-DuFbZrRu.mjs.map +1 -0
  474. package/dist/tr-QaTfqnit.mjs +125 -0
  475. package/dist/tr-QaTfqnit.mjs.map +1 -0
  476. package/dist/zh_CN-2FPc1yGp.mjs +6 -0
  477. package/dist/zh_CN-2FPc1yGp.mjs.map +1 -0
  478. package/dist/zh_CN-BJnhvkc0.mjs +37 -0
  479. package/dist/zh_CN-BJnhvkc0.mjs.map +1 -0
  480. package/dist/zh_CN-BT8zi4ct.mjs +125 -0
  481. package/dist/zh_CN-BT8zi4ct.mjs.map +1 -0
  482. package/dist/zh_CN-BUDga7b8.cjs +12 -0
  483. package/dist/zh_CN-BUDga7b8.cjs.map +1 -0
  484. package/dist/zh_CN-BWIy2qoV.cjs +43 -0
  485. package/dist/zh_CN-BWIy2qoV.cjs.map +1 -0
  486. package/dist/zh_CN-BrkBDK-m.cjs +131 -0
  487. package/dist/zh_CN-BrkBDK-m.cjs.map +1 -0
  488. package/dist/zh_CN-Bzo7sqbA.cjs +12 -0
  489. package/dist/zh_CN-Bzo7sqbA.cjs.map +1 -0
  490. package/dist/zh_CN-CEwzKvT8.mjs +74 -0
  491. package/dist/zh_CN-CEwzKvT8.mjs.map +1 -0
  492. package/dist/zh_CN-CLqN3qJp.mjs +24 -0
  493. package/dist/zh_CN-CLqN3qJp.mjs.map +1 -0
  494. package/dist/zh_CN-DZFGqn6D.cjs +30 -0
  495. package/dist/zh_CN-DZFGqn6D.cjs.map +1 -0
  496. package/dist/zh_CN-oOeDsP-B.mjs +6 -0
  497. package/dist/zh_CN-oOeDsP-B.mjs.map +1 -0
  498. package/dist/zh_CN-wE1DUfsY.cjs +80 -0
  499. package/dist/zh_CN-wE1DUfsY.cjs.map +1 -0
  500. package/dist/zh_TW-BeBQ0pV1.mjs +74 -0
  501. package/dist/zh_TW-BeBQ0pV1.mjs.map +1 -0
  502. package/dist/zh_TW-Bz5_kUpI.mjs +37 -0
  503. package/dist/zh_TW-Bz5_kUpI.mjs.map +1 -0
  504. package/dist/zh_TW-CZhSh3BU.cjs +80 -0
  505. package/dist/zh_TW-CZhSh3BU.cjs.map +1 -0
  506. package/dist/zh_TW-D-xI7JBs.mjs +6 -0
  507. package/dist/zh_TW-D-xI7JBs.mjs.map +1 -0
  508. package/dist/zh_TW-D86GUR9C.cjs +43 -0
  509. package/dist/zh_TW-D86GUR9C.cjs.map +1 -0
  510. package/dist/zh_TW-DPLNY3Sh.cjs +12 -0
  511. package/dist/zh_TW-DPLNY3Sh.cjs.map +1 -0
  512. package/dist/zh_TW-DQdWK1u9.cjs +12 -0
  513. package/dist/zh_TW-DQdWK1u9.cjs.map +1 -0
  514. package/dist/zh_TW-Dg6LeVzh.mjs +24 -0
  515. package/dist/zh_TW-Dg6LeVzh.mjs.map +1 -0
  516. package/dist/zh_TW-DoDLHILX.cjs +30 -0
  517. package/dist/zh_TW-DoDLHILX.cjs.map +1 -0
  518. package/dist/zh_TW-Dqcoo0F5.mjs +6 -0
  519. package/dist/zh_TW-Dqcoo0F5.mjs.map +1 -0
  520. package/dist/zh_TW-DzFlj-kU.cjs +131 -0
  521. package/dist/zh_TW-DzFlj-kU.cjs.map +1 -0
  522. package/dist/zh_TW-idE0Evam.mjs +125 -0
  523. package/dist/zh_TW-idE0Evam.mjs.map +1 -0
  524. package/package.json +16 -16
  525. package/dist/AddressAutocompleteInput-DiXfEThY.mjs +0 -2214
  526. package/dist/AddressAutocompleteInput-DiXfEThY.mjs.map +0 -1
  527. package/dist/AddressAutocompleteInput-DmsSlPVz.cjs +0 -2310
  528. package/dist/AddressAutocompleteInput-DmsSlPVz.cjs.map +0 -1
  529. package/dist/ContactsScreen-9SzNlWEb.cjs +0 -10
  530. package/dist/ContactsScreen-BIPKKITz.mjs +0 -3397
  531. package/dist/ContactsScreen-BIPKKITz.mjs.map +0 -1
  532. package/dist/ContactsScreen-Comv_f_d.cjs +0 -3405
  533. package/dist/ContactsScreen-Comv_f_d.cjs.map +0 -1
  534. package/dist/ProfileScreen-B4OYJdd1.cjs +0 -1244
  535. package/dist/ProfileScreen-B4OYJdd1.cjs.map +0 -1
  536. package/dist/ProfileScreen-Be3RVQ2L.mjs +0 -1232
  537. package/dist/ProfileScreen-Be3RVQ2L.mjs.map +0 -1
  538. package/dist/ProfileScreen-D9YYYFK-.mjs +0 -46
  539. package/dist/ProfileScreen-j7Eyy4tk.cjs +0 -48
  540. package/dist/ShareablesScreen-CPvylNL7.mjs +0 -13
  541. package/dist/ShareablesScreen-CQZBq1Hl.cjs +0 -13457
  542. package/dist/ShareablesScreen-CQZBq1Hl.cjs.map +0 -1
  543. package/dist/ShareablesScreen-DYOIQwK-.mjs +0 -13441
  544. package/dist/ShareablesScreen-DYOIQwK-.mjs.map +0 -1
  545. package/dist/ShareablesScreen-ljPcmGLg.cjs +0 -15
  546. package/dist/ShopScreen-BEKSgvCp.mjs +0 -45
  547. package/dist/ShopScreen-CU0ynA2v.mjs +0 -1282
  548. package/dist/ShopScreen-CU0ynA2v.mjs.map +0 -1
  549. package/dist/ShopScreen-Cr_XcWdY.cjs +0 -1295
  550. package/dist/ShopScreen-Cr_XcWdY.cjs.map +0 -1
  551. package/dist/ShopScreen-QjSfEvCZ.cjs +0 -47
  552. package/dist/SubscriptionsScreen-Ces1Pv8k.mjs +0 -5723
  553. package/dist/SubscriptionsScreen-Ces1Pv8k.mjs.map +0 -1
  554. package/dist/SubscriptionsScreen-Cu-WeJ7L.cjs +0 -11
  555. package/dist/SubscriptionsScreen-DMqKtptN.cjs +0 -5791
  556. package/dist/SubscriptionsScreen-DMqKtptN.cjs.map +0 -1
  557. package/dist/UpgradeScreen-B4CnkCjg.cjs +0 -203
  558. package/dist/UpgradeScreen-B4CnkCjg.cjs.map +0 -1
  559. package/dist/UpgradeScreen-C9TjaPoJ.mjs +0 -196
  560. package/dist/UpgradeScreen-C9TjaPoJ.mjs.map +0 -1
  561. package/dist/UpgradeScreen-jvHU1at7.cjs +0 -6
  562. package/dist/de-14i_YO8a.mjs +0 -125
  563. package/dist/de-14i_YO8a.mjs.map +0 -1
  564. package/dist/de-8f8CBqQz.mjs +0 -74
  565. package/dist/de-8f8CBqQz.mjs.map +0 -1
  566. package/dist/de-C2d-Wmdy.cjs +0 -80
  567. package/dist/de-C2d-Wmdy.cjs.map +0 -1
  568. package/dist/de-CjPctz3q.cjs +0 -43
  569. package/dist/de-CjPctz3q.cjs.map +0 -1
  570. package/dist/de-DBGj2OFs.cjs +0 -30
  571. package/dist/de-DBGj2OFs.cjs.map +0 -1
  572. package/dist/de-DCq1H3bn.mjs +0 -24
  573. package/dist/de-DCq1H3bn.mjs.map +0 -1
  574. package/dist/de-DbKC3CDA.mjs +0 -37
  575. package/dist/de-DbKC3CDA.mjs.map +0 -1
  576. package/dist/de-MxH9dP_P.cjs +0 -131
  577. package/dist/de-MxH9dP_P.cjs.map +0 -1
  578. package/dist/el-B0l-Q1qT.mjs +0 -37
  579. package/dist/el-B0l-Q1qT.mjs.map +0 -1
  580. package/dist/el-B8bnnoKc.mjs +0 -24
  581. package/dist/el-B8bnnoKc.mjs.map +0 -1
  582. package/dist/el-BGxr23AZ.mjs +0 -74
  583. package/dist/el-BGxr23AZ.mjs.map +0 -1
  584. package/dist/el-BKGArK2f.cjs +0 -80
  585. package/dist/el-BKGArK2f.cjs.map +0 -1
  586. package/dist/el-BdbemgXl.cjs +0 -43
  587. package/dist/el-BdbemgXl.cjs.map +0 -1
  588. package/dist/el-C_EpDLLk.mjs +0 -125
  589. package/dist/el-C_EpDLLk.mjs.map +0 -1
  590. package/dist/el-DJbG54c1.cjs +0 -30
  591. package/dist/el-DJbG54c1.cjs.map +0 -1
  592. package/dist/el-v1A4TFkT.cjs +0 -131
  593. package/dist/el-v1A4TFkT.cjs.map +0 -1
  594. package/dist/es-BMW1EA1c.cjs +0 -30
  595. package/dist/es-BMW1EA1c.cjs.map +0 -1
  596. package/dist/es-BaMIh5FA.mjs +0 -125
  597. package/dist/es-BaMIh5FA.mjs.map +0 -1
  598. package/dist/es-CT2hq6ZJ.mjs +0 -24
  599. package/dist/es-CT2hq6ZJ.mjs.map +0 -1
  600. package/dist/es-C_4clFHt.cjs +0 -80
  601. package/dist/es-C_4clFHt.cjs.map +0 -1
  602. package/dist/es-CiGfOfqA.cjs +0 -43
  603. package/dist/es-CiGfOfqA.cjs.map +0 -1
  604. package/dist/es-CtRMRF22.mjs +0 -37
  605. package/dist/es-CtRMRF22.mjs.map +0 -1
  606. package/dist/es-DwVnFc84.mjs +0 -74
  607. package/dist/es-DwVnFc84.mjs.map +0 -1
  608. package/dist/es-OY_6uXf5.cjs +0 -131
  609. package/dist/es-OY_6uXf5.cjs.map +0 -1
  610. package/dist/fr-6k1dLzPa.cjs +0 -30
  611. package/dist/fr-6k1dLzPa.cjs.map +0 -1
  612. package/dist/fr-BXkj4XVE.cjs +0 -43
  613. package/dist/fr-BXkj4XVE.cjs.map +0 -1
  614. package/dist/fr-BcnTVvSD.mjs +0 -24
  615. package/dist/fr-BcnTVvSD.mjs.map +0 -1
  616. package/dist/fr-C0Oj4xnv.mjs +0 -74
  617. package/dist/fr-C0Oj4xnv.mjs.map +0 -1
  618. package/dist/fr-Ce2tevwP.mjs +0 -125
  619. package/dist/fr-Ce2tevwP.mjs.map +0 -1
  620. package/dist/fr-DSG1yVZR.cjs +0 -80
  621. package/dist/fr-DSG1yVZR.cjs.map +0 -1
  622. package/dist/fr-Zh7yPXbQ.cjs +0 -131
  623. package/dist/fr-Zh7yPXbQ.cjs.map +0 -1
  624. package/dist/fr-kd7QtgdA.mjs +0 -37
  625. package/dist/fr-kd7QtgdA.mjs.map +0 -1
  626. package/dist/he-Alro4HT4.cjs +0 -30
  627. package/dist/he-Alro4HT4.cjs.map +0 -1
  628. package/dist/he-B4cg1J00.mjs +0 -74
  629. package/dist/he-B4cg1J00.mjs.map +0 -1
  630. package/dist/he-Bsinkol5.mjs +0 -125
  631. package/dist/he-Bsinkol5.mjs.map +0 -1
  632. package/dist/he-CTOKIYzG.cjs +0 -80
  633. package/dist/he-CTOKIYzG.cjs.map +0 -1
  634. package/dist/he-CdDmyq0k.cjs +0 -43
  635. package/dist/he-CdDmyq0k.cjs.map +0 -1
  636. package/dist/he-CuuLh6US.cjs +0 -131
  637. package/dist/he-CuuLh6US.cjs.map +0 -1
  638. package/dist/he-CvNcU3F-.mjs +0 -24
  639. package/dist/he-CvNcU3F-.mjs.map +0 -1
  640. package/dist/he-oOy2HM0e.mjs +0 -37
  641. package/dist/he-oOy2HM0e.mjs.map +0 -1
  642. package/dist/hu-B84oEeJZ.mjs +0 -125
  643. package/dist/hu-B84oEeJZ.mjs.map +0 -1
  644. package/dist/hu-BSPTfhWR.cjs +0 -43
  645. package/dist/hu-BSPTfhWR.cjs.map +0 -1
  646. package/dist/hu-CF_ikpEl.cjs +0 -80
  647. package/dist/hu-CF_ikpEl.cjs.map +0 -1
  648. package/dist/hu-CYlsbrG1.mjs +0 -24
  649. package/dist/hu-CYlsbrG1.mjs.map +0 -1
  650. package/dist/hu-D5x1eDHD.cjs +0 -30
  651. package/dist/hu-D5x1eDHD.cjs.map +0 -1
  652. package/dist/hu-Dv5s1IMB.mjs +0 -37
  653. package/dist/hu-Dv5s1IMB.mjs.map +0 -1
  654. package/dist/hu-IZ3Wz8XP.mjs +0 -74
  655. package/dist/hu-IZ3Wz8XP.mjs.map +0 -1
  656. package/dist/hu-Vw6dogZo.cjs +0 -131
  657. package/dist/hu-Vw6dogZo.cjs.map +0 -1
  658. package/dist/id-1z_sYwiV.cjs +0 -131
  659. package/dist/id-1z_sYwiV.cjs.map +0 -1
  660. package/dist/id-C30Gd0ig.mjs +0 -24
  661. package/dist/id-C30Gd0ig.mjs.map +0 -1
  662. package/dist/id-C4q84iQs.mjs +0 -37
  663. package/dist/id-C4q84iQs.mjs.map +0 -1
  664. package/dist/id-CKzznQLP.cjs +0 -80
  665. package/dist/id-CKzznQLP.cjs.map +0 -1
  666. package/dist/id-CXL-L1qX.mjs +0 -125
  667. package/dist/id-CXL-L1qX.mjs.map +0 -1
  668. package/dist/id-DI4Mmfx0.mjs +0 -74
  669. package/dist/id-DI4Mmfx0.mjs.map +0 -1
  670. package/dist/id-Duby505w.cjs +0 -30
  671. package/dist/id-Duby505w.cjs.map +0 -1
  672. package/dist/id-NeJHVkY8.cjs +0 -43
  673. package/dist/id-NeJHVkY8.cjs.map +0 -1
  674. package/dist/it-5pXu8eWE.cjs +0 -43
  675. package/dist/it-5pXu8eWE.cjs.map +0 -1
  676. package/dist/it-BSiMXbIw.cjs +0 -30
  677. package/dist/it-BSiMXbIw.cjs.map +0 -1
  678. package/dist/it-BbNDdOME.mjs +0 -37
  679. package/dist/it-BbNDdOME.mjs.map +0 -1
  680. package/dist/it-CQY4tm5S.cjs +0 -131
  681. package/dist/it-CQY4tm5S.cjs.map +0 -1
  682. package/dist/it-CTPG4nXE.mjs +0 -24
  683. package/dist/it-CTPG4nXE.mjs.map +0 -1
  684. package/dist/it-CnIs_n8L.mjs +0 -74
  685. package/dist/it-CnIs_n8L.mjs.map +0 -1
  686. package/dist/it-CwAg1PPt.mjs +0 -125
  687. package/dist/it-CwAg1PPt.mjs.map +0 -1
  688. package/dist/it-IEJYmwzw.cjs +0 -80
  689. package/dist/it-IEJYmwzw.cjs.map +0 -1
  690. package/dist/ja-B-YZ7YHO.mjs +0 -74
  691. package/dist/ja-B-YZ7YHO.mjs.map +0 -1
  692. package/dist/ja-BBOP6z7P.cjs +0 -131
  693. package/dist/ja-BBOP6z7P.cjs.map +0 -1
  694. package/dist/ja-CDnUJv_3.mjs +0 -37
  695. package/dist/ja-CDnUJv_3.mjs.map +0 -1
  696. package/dist/ja-D5845TL0.mjs +0 -24
  697. package/dist/ja-D5845TL0.mjs.map +0 -1
  698. package/dist/ja-DobSeN1K.cjs +0 -43
  699. package/dist/ja-DobSeN1K.cjs.map +0 -1
  700. package/dist/ja-X6HQT0aD.cjs +0 -80
  701. package/dist/ja-X6HQT0aD.cjs.map +0 -1
  702. package/dist/ja-lCgyxNWH.mjs +0 -125
  703. package/dist/ja-lCgyxNWH.mjs.map +0 -1
  704. package/dist/ja-pSbdkRSW.cjs +0 -30
  705. package/dist/ja-pSbdkRSW.cjs.map +0 -1
  706. package/dist/ko-B3Oa-b5c.mjs +0 -24
  707. package/dist/ko-B3Oa-b5c.mjs.map +0 -1
  708. package/dist/ko-B4GjXpnY.mjs +0 -125
  709. package/dist/ko-B4GjXpnY.mjs.map +0 -1
  710. package/dist/ko-BIi-F1dV.cjs +0 -131
  711. package/dist/ko-BIi-F1dV.cjs.map +0 -1
  712. package/dist/ko-BfySQ1ZI.mjs +0 -74
  713. package/dist/ko-BfySQ1ZI.mjs.map +0 -1
  714. package/dist/ko-C-DvBsfj.cjs +0 -80
  715. package/dist/ko-C-DvBsfj.cjs.map +0 -1
  716. package/dist/ko-CuJFyarb.cjs +0 -43
  717. package/dist/ko-CuJFyarb.cjs.map +0 -1
  718. package/dist/ko-ir7yEsoy.cjs +0 -30
  719. package/dist/ko-ir7yEsoy.cjs.map +0 -1
  720. package/dist/ko-o5PlsiO4.mjs +0 -37
  721. package/dist/ko-o5PlsiO4.mjs.map +0 -1
  722. package/dist/nl-B3aJ9t79.cjs +0 -30
  723. package/dist/nl-B3aJ9t79.cjs.map +0 -1
  724. package/dist/nl-B8i6Eran.mjs +0 -125
  725. package/dist/nl-B8i6Eran.mjs.map +0 -1
  726. package/dist/nl-Casz-6t5.mjs +0 -37
  727. package/dist/nl-Casz-6t5.mjs.map +0 -1
  728. package/dist/nl-D6QZWEm6.mjs +0 -74
  729. package/dist/nl-D6QZWEm6.mjs.map +0 -1
  730. package/dist/nl-DOW7O3Ls.cjs +0 -80
  731. package/dist/nl-DOW7O3Ls.cjs.map +0 -1
  732. package/dist/nl-DlW0bd6G.mjs +0 -24
  733. package/dist/nl-DlW0bd6G.mjs.map +0 -1
  734. package/dist/nl-L3QBBaKe.cjs +0 -131
  735. package/dist/nl-L3QBBaKe.cjs.map +0 -1
  736. package/dist/nl-UaKnUkiF.cjs +0 -43
  737. package/dist/nl-UaKnUkiF.cjs.map +0 -1
  738. package/dist/pl-BTpBOJRd.mjs +0 -74
  739. package/dist/pl-BTpBOJRd.mjs.map +0 -1
  740. package/dist/pl-Bc5PLKWA.cjs +0 -30
  741. package/dist/pl-Bc5PLKWA.cjs.map +0 -1
  742. package/dist/pl-BhYoyqAF.mjs +0 -125
  743. package/dist/pl-BhYoyqAF.mjs.map +0 -1
  744. package/dist/pl-CK-QOBHU.cjs +0 -43
  745. package/dist/pl-CK-QOBHU.cjs.map +0 -1
  746. package/dist/pl-CMFgAXzQ.mjs +0 -24
  747. package/dist/pl-CMFgAXzQ.mjs.map +0 -1
  748. package/dist/pl-CuCpTUw8.cjs +0 -80
  749. package/dist/pl-CuCpTUw8.cjs.map +0 -1
  750. package/dist/pl-Dhgn2yX2.cjs +0 -131
  751. package/dist/pl-Dhgn2yX2.cjs.map +0 -1
  752. package/dist/pl-QhF51ZKE.mjs +0 -37
  753. package/dist/pl-QhF51ZKE.mjs.map +0 -1
  754. package/dist/pt-BLHjWaSa.cjs +0 -43
  755. package/dist/pt-BLHjWaSa.cjs.map +0 -1
  756. package/dist/pt-BNcmRTXF.mjs +0 -125
  757. package/dist/pt-BNcmRTXF.mjs.map +0 -1
  758. package/dist/pt-Bk5lU5Bq.cjs +0 -30
  759. package/dist/pt-Bk5lU5Bq.cjs.map +0 -1
  760. package/dist/pt-Bo9r1x0D.cjs +0 -131
  761. package/dist/pt-Bo9r1x0D.cjs.map +0 -1
  762. package/dist/pt-CRWFsKEU.mjs +0 -37
  763. package/dist/pt-CRWFsKEU.mjs.map +0 -1
  764. package/dist/pt-DK2uIFjk.mjs +0 -24
  765. package/dist/pt-DK2uIFjk.mjs.map +0 -1
  766. package/dist/pt-DidvCPJO.mjs +0 -74
  767. package/dist/pt-DidvCPJO.mjs.map +0 -1
  768. package/dist/pt-gwAOG4ye.cjs +0 -80
  769. package/dist/pt-gwAOG4ye.cjs.map +0 -1
  770. package/dist/ro-0CezOHmT.cjs +0 -80
  771. package/dist/ro-0CezOHmT.cjs.map +0 -1
  772. package/dist/ro-B3zGlIxa.cjs +0 -30
  773. package/dist/ro-B3zGlIxa.cjs.map +0 -1
  774. package/dist/ro-D7ttD6wI.mjs +0 -24
  775. package/dist/ro-D7ttD6wI.mjs.map +0 -1
  776. package/dist/ro-DIuZ_x0Y.mjs +0 -125
  777. package/dist/ro-DIuZ_x0Y.mjs.map +0 -1
  778. package/dist/ro-DPmaLEta.cjs +0 -131
  779. package/dist/ro-DPmaLEta.cjs.map +0 -1
  780. package/dist/ro-DeurRKLx.mjs +0 -37
  781. package/dist/ro-DeurRKLx.mjs.map +0 -1
  782. package/dist/ro-nugOenVq.cjs +0 -43
  783. package/dist/ro-nugOenVq.cjs.map +0 -1
  784. package/dist/ro-uWPaYSks.mjs +0 -74
  785. package/dist/ro-uWPaYSks.mjs.map +0 -1
  786. package/dist/ru-AaRaNSOD.cjs +0 -80
  787. package/dist/ru-AaRaNSOD.cjs.map +0 -1
  788. package/dist/ru-B9QN1Xa3.cjs +0 -30
  789. package/dist/ru-B9QN1Xa3.cjs.map +0 -1
  790. package/dist/ru-C127BOjG.mjs +0 -125
  791. package/dist/ru-C127BOjG.mjs.map +0 -1
  792. package/dist/ru-C72sfdMa.mjs +0 -24
  793. package/dist/ru-C72sfdMa.mjs.map +0 -1
  794. package/dist/ru-CYExV0AV.cjs +0 -131
  795. package/dist/ru-CYExV0AV.cjs.map +0 -1
  796. package/dist/ru-D9P2Trsv.mjs +0 -74
  797. package/dist/ru-D9P2Trsv.mjs.map +0 -1
  798. package/dist/ru-DH4xf5h_.cjs +0 -43
  799. package/dist/ru-DH4xf5h_.cjs.map +0 -1
  800. package/dist/ru-DbmM_yGB.mjs +0 -37
  801. package/dist/ru-DbmM_yGB.mjs.map +0 -1
  802. package/dist/th-BFt4w61B.cjs +0 -30
  803. package/dist/th-BFt4w61B.cjs.map +0 -1
  804. package/dist/th-BG8R3dAP.cjs +0 -43
  805. package/dist/th-BG8R3dAP.cjs.map +0 -1
  806. package/dist/th-BJlArNGG.mjs +0 -24
  807. package/dist/th-BJlArNGG.mjs.map +0 -1
  808. package/dist/th-BavxQWOu.cjs +0 -131
  809. package/dist/th-BavxQWOu.cjs.map +0 -1
  810. package/dist/th-CGTuBtiC.mjs +0 -37
  811. package/dist/th-CGTuBtiC.mjs.map +0 -1
  812. package/dist/th-a1Jy5C_d.cjs +0 -80
  813. package/dist/th-a1Jy5C_d.cjs.map +0 -1
  814. package/dist/th-h90suc6n.mjs +0 -125
  815. package/dist/th-h90suc6n.mjs.map +0 -1
  816. package/dist/th-zwlwoiv6.mjs +0 -74
  817. package/dist/th-zwlwoiv6.mjs.map +0 -1
  818. package/dist/tl-BHwQDhWD.mjs +0 -125
  819. package/dist/tl-BHwQDhWD.mjs.map +0 -1
  820. package/dist/tl-BoIi6HWk.cjs +0 -131
  821. package/dist/tl-BoIi6HWk.cjs.map +0 -1
  822. package/dist/tl-BsGu5Py0.mjs +0 -24
  823. package/dist/tl-BsGu5Py0.mjs.map +0 -1
  824. package/dist/tl-ByorVCxH.cjs +0 -43
  825. package/dist/tl-ByorVCxH.cjs.map +0 -1
  826. package/dist/tl-C2azJUgn.mjs +0 -74
  827. package/dist/tl-C2azJUgn.mjs.map +0 -1
  828. package/dist/tl-Ce-0Cpm6.cjs +0 -30
  829. package/dist/tl-Ce-0Cpm6.cjs.map +0 -1
  830. package/dist/tl-DN6DtBpZ.cjs +0 -80
  831. package/dist/tl-DN6DtBpZ.cjs.map +0 -1
  832. package/dist/tl-DytTStSw.mjs +0 -37
  833. package/dist/tl-DytTStSw.mjs.map +0 -1
  834. package/dist/tr-5RnbIa4c.mjs +0 -24
  835. package/dist/tr-5RnbIa4c.mjs.map +0 -1
  836. package/dist/tr-8c97dqrL.cjs +0 -131
  837. package/dist/tr-8c97dqrL.cjs.map +0 -1
  838. package/dist/tr-BT6N_Wus.mjs +0 -74
  839. package/dist/tr-BT6N_Wus.mjs.map +0 -1
  840. package/dist/tr-BedGdI5d.cjs +0 -80
  841. package/dist/tr-BedGdI5d.cjs.map +0 -1
  842. package/dist/tr-BouBqgCB.mjs +0 -125
  843. package/dist/tr-BouBqgCB.mjs.map +0 -1
  844. package/dist/tr-D6eImzZD.mjs +0 -37
  845. package/dist/tr-D6eImzZD.mjs.map +0 -1
  846. package/dist/tr-DcRheecc.cjs +0 -43
  847. package/dist/tr-DcRheecc.cjs.map +0 -1
  848. package/dist/tr-De6vY4Jr.cjs +0 -30
  849. package/dist/tr-De6vY4Jr.cjs.map +0 -1
  850. package/dist/zh_CN-BQsZQZhr.mjs +0 -74
  851. package/dist/zh_CN-BQsZQZhr.mjs.map +0 -1
  852. package/dist/zh_CN-BokVyKnZ.cjs +0 -80
  853. package/dist/zh_CN-BokVyKnZ.cjs.map +0 -1
  854. package/dist/zh_CN-COIJjtl4.mjs +0 -37
  855. package/dist/zh_CN-COIJjtl4.mjs.map +0 -1
  856. package/dist/zh_CN-Cj5fwlCh.mjs +0 -24
  857. package/dist/zh_CN-Cj5fwlCh.mjs.map +0 -1
  858. package/dist/zh_CN-Cr8k96O_.cjs +0 -131
  859. package/dist/zh_CN-Cr8k96O_.cjs.map +0 -1
  860. package/dist/zh_CN-CtrM9Bt7.mjs +0 -125
  861. package/dist/zh_CN-CtrM9Bt7.mjs.map +0 -1
  862. package/dist/zh_CN-CubDPpC6.cjs +0 -43
  863. package/dist/zh_CN-CubDPpC6.cjs.map +0 -1
  864. package/dist/zh_CN-CyFIfnPm.cjs +0 -30
  865. package/dist/zh_CN-CyFIfnPm.cjs.map +0 -1
  866. package/dist/zh_TW-BQjHIF9g.cjs +0 -80
  867. package/dist/zh_TW-BQjHIF9g.cjs.map +0 -1
  868. package/dist/zh_TW-BrH-zluV.cjs +0 -43
  869. package/dist/zh_TW-BrH-zluV.cjs.map +0 -1
  870. package/dist/zh_TW-Cs0GkiU5.cjs +0 -30
  871. package/dist/zh_TW-Cs0GkiU5.cjs.map +0 -1
  872. package/dist/zh_TW-DB4Om9FX.mjs +0 -37
  873. package/dist/zh_TW-DB4Om9FX.mjs.map +0 -1
  874. package/dist/zh_TW-DdCGAeE-.mjs +0 -125
  875. package/dist/zh_TW-DdCGAeE-.mjs.map +0 -1
  876. package/dist/zh_TW-MAOS8yS2.mjs +0 -74
  877. package/dist/zh_TW-MAOS8yS2.mjs.map +0 -1
  878. package/dist/zh_TW-Q6KxkIVE.mjs +0 -24
  879. package/dist/zh_TW-Q6KxkIVE.mjs.map +0 -1
  880. package/dist/zh_TW-jgCKq0gP.cjs +0 -131
  881. package/dist/zh_TW-jgCKq0gP.cjs.map +0 -1
@@ -1,2310 +0,0 @@
1
- require("./chunk-9hOWP6kD.cjs");
2
- const require_api_context = require("./api-context-BkBvyFVK.cjs");
3
- const require_static_dict_adapter = require("./static-dict-adapter-D1ErNskC.cjs");
4
- const require_src = require("./src-B0ut9PTw.cjs");
5
- let react = require("react");
6
- require("@tanstack/react-query");
7
- let react_jsx_runtime = require("react/jsx-runtime");
8
- let lucide_react = require("lucide-react");
9
- let react_hook_form = require("react-hook-form");
10
- let zod = require("zod");
11
- //#region ../../profile/core/src/translation-api-context.ts
12
- const { Provider, useTranslation } = require_static_dict_adapter.createTranslationContext("Profile");
13
- const ProfileTranslationProvider = Provider;
14
- const useProfileTranslation = useTranslation;
15
- //#endregion
16
- //#region ../../profile/core/src/translation-adapter.ts
17
- const profileDomain = require_static_dict_adapter.createDomainTranslations({
18
- fallback: {
19
- breadcrumb: "Profile",
20
- edit_profile: "Edit Profile",
21
- first_name: "First Name",
22
- last_name: "Last Name",
23
- phone_number: "Phone Number",
24
- bio: "Bio",
25
- add_a_short_bio: "Add a short bio",
26
- language: "Language",
27
- first_name_is_required: "First name is required",
28
- last_name_is_required: "Last name is required",
29
- language_is_required: "Language is required",
30
- saving: "Saving...",
31
- save_changes: "Save Changes",
32
- select_an_option: "Select an option",
33
- points_history: "Points History",
34
- points_available: "Points Available",
35
- points_awarded: "Points Awarded",
36
- points_redeemed: "Points Redeemed",
37
- transaction: "Transaction",
38
- no_points_history_found: "No points history found",
39
- email: "Email",
40
- shipping_addresses: "Shipping Addresses",
41
- add_an_address: "Add an Address",
42
- delete_address: "Delete Address",
43
- delete_address_message: "Are you sure you want to delete this address? This action cannot be undone.",
44
- delete: "Delete",
45
- no_saved_addresses_found: "No saved addresses found",
46
- add_address: "Add Address",
47
- edit_address: "Edit Address",
48
- set_as_default_address: "Set as default address",
49
- save_address: "Save Address",
50
- card_number: "Card Number",
51
- expiration_date: "Expiration (MM / YY)",
52
- cvc: "CVC",
53
- cardholder_name: "Cardholder Name",
54
- add_credit_card: "Add Credit Card",
55
- save_card: "Save Card",
56
- securing: "Loading secure form...",
57
- payment_methods: "Payment Methods",
58
- add_payment_method: "Add Payment Method",
59
- delete_credit_card: "Delete Credit Card",
60
- delete_credit_card_message: "Are you sure you want to delete this payment method? This action cannot be undone.",
61
- delete_card: "Delete card",
62
- deleting: "Deleting...",
63
- tap_to_confirm: "Tap to confirm",
64
- edit_card: "Card Details",
65
- billing_address: "Billing Address",
66
- country: "Country",
67
- name: "Name",
68
- address_line_1: "Address Line 1",
69
- address_line_2: "Address Line 2",
70
- city: "City",
71
- state: "State",
72
- province: "Province",
73
- zip_code: "Zip Code",
74
- postal_code: "Postal Code",
75
- select_state: "Select state",
76
- set_as_default_payment_method: "Set as default payment method",
77
- cancel: "Cancel",
78
- save: "Save",
79
- close: "Close",
80
- edit: "Edit",
81
- default: "Default",
82
- card_expires: "Expires",
83
- no_billing_address: "No billing address on file",
84
- default_payment_method_updated: "Payment method updated",
85
- failed_to_set_default_payment_method: "Failed to update payment method"
86
- },
87
- loaders: {
88
- de: () => Promise.resolve().then(() => require("./de-C2d-Wmdy.cjs")).then((m) => m.default),
89
- el: () => Promise.resolve().then(() => require("./el-BKGArK2f.cjs")).then((m) => m.default),
90
- es: () => Promise.resolve().then(() => require("./es-C_4clFHt.cjs")).then((m) => m.default),
91
- fr: () => Promise.resolve().then(() => require("./fr-DSG1yVZR.cjs")).then((m) => m.default),
92
- he: () => Promise.resolve().then(() => require("./he-CTOKIYzG.cjs")).then((m) => m.default),
93
- hu: () => Promise.resolve().then(() => require("./hu-CF_ikpEl.cjs")).then((m) => m.default),
94
- id: () => Promise.resolve().then(() => require("./id-CKzznQLP.cjs")).then((m) => m.default),
95
- it: () => Promise.resolve().then(() => require("./it-IEJYmwzw.cjs")).then((m) => m.default),
96
- ja: () => Promise.resolve().then(() => require("./ja-X6HQT0aD.cjs")).then((m) => m.default),
97
- ko: () => Promise.resolve().then(() => require("./ko-C-DvBsfj.cjs")).then((m) => m.default),
98
- nl: () => Promise.resolve().then(() => require("./nl-DOW7O3Ls.cjs")).then((m) => m.default),
99
- pl: () => Promise.resolve().then(() => require("./pl-CuCpTUw8.cjs")).then((m) => m.default),
100
- pt: () => Promise.resolve().then(() => require("./pt-gwAOG4ye.cjs")).then((m) => m.default),
101
- ro: () => Promise.resolve().then(() => require("./ro-0CezOHmT.cjs")).then((m) => m.default),
102
- ru: () => Promise.resolve().then(() => require("./ru-AaRaNSOD.cjs")).then((m) => m.default),
103
- th: () => Promise.resolve().then(() => require("./th-a1Jy5C_d.cjs")).then((m) => m.default),
104
- tl: () => Promise.resolve().then(() => require("./tl-DN6DtBpZ.cjs")).then((m) => m.default),
105
- tr: () => Promise.resolve().then(() => require("./tr-BedGdI5d.cjs")).then((m) => m.default),
106
- zh_CN: () => Promise.resolve().then(() => require("./zh_CN-BokVyKnZ.cjs")).then((m) => m.default),
107
- zh_TW: () => Promise.resolve().then(() => require("./zh_TW-BQjHIF9g.cjs")).then((m) => m.default)
108
- }
109
- });
110
- function createProfileTranslationAdapter(locale, dict) {
111
- return require_static_dict_adapter.createStaticDictAdapter(locale, dict);
112
- }
113
- //#endregion
114
- //#region src/providers/ProfileTranslationBridge.tsx
115
- function ProfileTranslationBridge({ children }) {
116
- const { locale } = require_static_dict_adapter.useActiveLocale();
117
- const dict = require_static_dict_adapter.useDomainDict(profileDomain, locale);
118
- return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(ProfileTranslationProvider, {
119
- value: (0, react.useMemo)(() => createProfileTranslationAdapter(locale, dict), [locale, dict]),
120
- children
121
- });
122
- }
123
- //#endregion
124
- //#region ../../profile/ui/src/components/ellipses-dropdown.tsx
125
- function EllipsesDropdown({ onDelete, onEdit, onMakeDefault, editLabel = "Edit", deleteLabel = "Delete", makeDefaultLabel = "Make Default", disabled = false }) {
126
- if (disabled) return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_src.Button, {
127
- variant: "ghost",
128
- disabled: true,
129
- children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("svg", {
130
- xmlns: "http://www.w3.org/2000/svg",
131
- viewBox: "0 0 128 512",
132
- className: "fill-muted-foreground h-4 w-1",
133
- children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("path", { d: "M64 360a56 56 0 1 0 0 112 56 56 0 1 0 0-112zm0-160a56 56 0 1 0 0 112 56 56 0 1 0 0-112zM120 96A56 56 0 1 0 8 96a56 56 0 1 0 112 0z" })
134
- })
135
- });
136
- return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(require_src.DropdownMenu, { children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_src.DropdownMenuTrigger, {
137
- asChild: true,
138
- children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_src.Button, {
139
- variant: "ghost",
140
- children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("svg", {
141
- xmlns: "http://www.w3.org/2000/svg",
142
- viewBox: "0 0 128 512",
143
- className: "fill-muted-foreground h-4 w-1",
144
- children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("path", { d: "M64 360a56 56 0 1 0 0 112 56 56 0 1 0 0-112zm0-160a56 56 0 1 0 0 112 56 56 0 1 0 0-112zM120 96A56 56 0 1 0 8 96a56 56 0 1 0 112 0z" })
145
- })
146
- })
147
- }), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(require_src.DropdownMenuContent, {
148
- className: "text-foreground min-w-28 space-y-1 text-sm",
149
- children: [
150
- onEdit && /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)(require_src.DropdownMenuItem, {
151
- className: "hover:bg-muted flex cursor-pointer flex-row items-center gap-x-2 rounded px-2",
152
- onClick: (e) => {
153
- e.stopPropagation();
154
- onEdit();
155
- },
156
- children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("svg", {
157
- xmlns: "http://www.w3.org/2000/svg",
158
- fill: "none",
159
- viewBox: "0 0 24 24",
160
- strokeWidth: 1.5,
161
- stroke: "currentColor",
162
- className: "h-3.5 w-3.5 flex-shrink-0",
163
- children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("path", {
164
- strokeLinecap: "round",
165
- strokeLinejoin: "round",
166
- d: "m16.862 4.487 1.687-1.688a1.875 1.875 0 1 1 2.652 2.652L10.582 16.07a4.5 4.5 0 0 1-1.897 1.13L6 18l.8-2.685a4.5 4.5 0 0 1 1.13-1.897l8.932-8.931Zm0 0L19.5 7.125M18 14v4.75A2.25 2.25 0 0 1 15.75 21H5.25A2.25 2.25 0 0 1 3 18.75V8.25A2.25 2.25 0 0 1 5.25 6H10"
167
- })
168
- }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", { children: editLabel })]
169
- }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_src.DropdownMenuSeparator, {})] }),
170
- onMakeDefault && /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)(require_src.DropdownMenuItem, {
171
- className: "hover:bg-muted flex cursor-pointer flex-row items-center gap-x-2 rounded px-2",
172
- onClick: (e) => {
173
- e.stopPropagation();
174
- onMakeDefault();
175
- },
176
- children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("svg", {
177
- xmlns: "http://www.w3.org/2000/svg",
178
- fill: "none",
179
- viewBox: "0 0 24 24",
180
- strokeWidth: 1.5,
181
- stroke: "currentColor",
182
- className: "h-3.5 w-3.5 flex-shrink-0",
183
- children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("path", {
184
- strokeLinecap: "round",
185
- strokeLinejoin: "round",
186
- d: "m4.5 12.75 6 6 9-13.5"
187
- })
188
- }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", { children: makeDefaultLabel })]
189
- }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_src.DropdownMenuSeparator, {})] }),
190
- /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(require_src.DropdownMenuItem, {
191
- className: "text-destructive hover:bg-destructive/10 flex cursor-pointer flex-row items-center gap-x-2 rounded px-2",
192
- onClick: (e) => {
193
- e.stopPropagation();
194
- onDelete?.();
195
- },
196
- children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("svg", {
197
- xmlns: "http://www.w3.org/2000/svg",
198
- fill: "none",
199
- viewBox: "0 0 24 24",
200
- strokeWidth: 1.5,
201
- stroke: "currentColor",
202
- className: "h-3.5 w-3.5 flex-shrink-0",
203
- children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("path", {
204
- strokeLinecap: "round",
205
- strokeLinejoin: "round",
206
- d: "m14.74 9-.346 9m-4.788 0L9.26 9m9.968-3.21c.342.052.682.107 1.022.166m-1.022-.165L18.16 19.673a2.25 2.25 0 0 1-2.244 2.077H8.084a2.25 2.25 0 0 1-2.244-2.077L4.772 5.79m14.456 0a48.108 48.108 0 0 0-3.478-.397m-12 .562c.34-.059.68-.114 1.022-.165m0 0a48.11 48.11 0 0 1 3.478-.397m7.5 0v-.916c0-1.18-.91-2.164-2.09-2.201a51.964 51.964 0 0 0-3.32 0c-1.18.037-2.09 1.022-2.09 2.201v.916m7.5 0a48.667 48.667 0 0 0-7.5 0"
207
- })
208
- }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", { children: deleteLabel })]
209
- })
210
- ]
211
- })] });
212
- }
213
- //#endregion
214
- //#region ../../profile/ui/src/components/confirm-action-dialog.tsx
215
- function ConfirmActionDialog({ title, description, onAction, openDialog, setOpenDialog, errorMsg, isLoading, actionText = "Delete" }) {
216
- const { t } = useProfileTranslation();
217
- return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_src.Dialog, {
218
- open: openDialog,
219
- onOpenChange: setOpenDialog,
220
- children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(require_src.DialogContent, {
221
- className: "max-w-sm md:w-90",
222
- children: [
223
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_src.DialogHeader, {
224
- className: "flex flex-row justify-between",
225
- children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_src.DialogTitle, {
226
- className: "w-full text-left",
227
- children: title
228
- })
229
- }),
230
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
231
- className: "space-y-4",
232
- children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
233
- className: "text-muted-foreground text-left text-sm",
234
- children: description
235
- })
236
- }),
237
- errorMsg && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
238
- className: "text-destructive text-sm",
239
- children: errorMsg
240
- }),
241
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_src.DialogFooter, { children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
242
- className: "flex w-full flex-row justify-between space-x-2",
243
- children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_src.DialogClose, {
244
- asChild: true,
245
- children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_src.Button, {
246
- variant: "secondary",
247
- className: "min-w-[70px]",
248
- onClick: () => setOpenDialog(false),
249
- children: t("cancel")
250
- })
251
- }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_src.Button, {
252
- type: "button",
253
- variant: "destructive",
254
- className: "min-w-[70px]",
255
- onClick: onAction,
256
- disabled: isLoading,
257
- children: isLoading ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", { className: "border-primary-foreground h-5 w-5 animate-spin rounded-full border-4 border-t-4 border-t-transparent" }) : actionText
258
- })]
259
- }) })
260
- ]
261
- })
262
- });
263
- }
264
- //#endregion
265
- //#region ../../profile/ui/src/components/form-fields.tsx
266
- function FormTextField$1({ control, name, label, containerClassName, ...props }) {
267
- const { field, fieldState: { error } } = (0, react_hook_form.useController)({
268
- name,
269
- control
270
- });
271
- return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
272
- className: require_src.cn("space-y-1", containerClassName),
273
- children: [
274
- label && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_src.Label, {
275
- htmlFor: name,
276
- className: "mb-1.5 block text-sm font-medium",
277
- children: label
278
- }),
279
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_src.Input, {
280
- ...field,
281
- ...props,
282
- id: name,
283
- value: field.value ?? "",
284
- className: require_src.cn(error && "ring-destructive ring-1", props.className)
285
- }),
286
- error && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
287
- className: "text-destructive text-sm",
288
- children: error.message
289
- })
290
- ]
291
- });
292
- }
293
- function FormTextareaField({ control, name, label, containerClassName, ...props }) {
294
- const { field, fieldState: { error } } = (0, react_hook_form.useController)({
295
- name,
296
- control
297
- });
298
- return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
299
- className: require_src.cn("space-y-1", containerClassName),
300
- children: [
301
- label && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_src.Label, {
302
- htmlFor: name,
303
- className: "mb-1.5 block text-sm font-medium",
304
- children: label
305
- }),
306
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_src.Textarea, {
307
- ...field,
308
- ...props,
309
- id: name,
310
- value: field.value ?? "",
311
- className: require_src.cn(error && "ring-destructive ring-1", props.className)
312
- }),
313
- error && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
314
- className: "text-destructive text-sm",
315
- children: error.message
316
- })
317
- ]
318
- });
319
- }
320
- function FormSelectField$1({ control, name, label, options, placeholder, containerClassName, onChange }) {
321
- const { field, fieldState: { error } } = (0, react_hook_form.useController)({
322
- name,
323
- control
324
- });
325
- return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
326
- className: require_src.cn("space-y-1", containerClassName),
327
- children: [
328
- label && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_src.Label, {
329
- htmlFor: name,
330
- className: "block text-sm font-medium",
331
- children: label
332
- }),
333
- /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(require_src.Select, {
334
- value: field.value?.toString() ?? "",
335
- onValueChange: (val) => {
336
- field.onChange(val);
337
- onChange?.(val);
338
- },
339
- children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_src.SelectTrigger, {
340
- id: name,
341
- className: require_src.cn("w-full", error && "ring-destructive ring-1"),
342
- children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_src.SelectValue, { placeholder })
343
- }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_src.SelectContent, { children: options?.map((opt) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_src.SelectItem, {
344
- value: opt.value.toString(),
345
- children: opt.name
346
- }, `${opt.name}-${opt.value}`)) })]
347
- }),
348
- error && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
349
- className: "text-destructive text-sm",
350
- children: error.message
351
- })
352
- ]
353
- });
354
- }
355
- //#endregion
356
- //#region ../../profile/ui/src/components/user-info-dialog.tsx
357
- function UserInfoDialog({ control, isOpen, onSubmit, handleClose, languageOptions, errorMsg, isSubmitting, email, onChangeEmail, isChangingEmail, pendingEmail }) {
358
- const { t } = useProfileTranslation();
359
- const [isEditingEmail, setIsEditingEmail] = (0, react.useState)(false);
360
- const [newEmail, setNewEmail] = (0, react.useState)("");
361
- const [emailError, setEmailError] = (0, react.useState)(void 0);
362
- const handleEmailSubmit = async () => {
363
- setEmailError(void 0);
364
- const trimmed = newEmail.trim();
365
- if (!trimmed) {
366
- setEmailError("Please enter a new email address");
367
- return;
368
- }
369
- if (!/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(trimmed)) {
370
- setEmailError("Please enter a valid email address");
371
- return;
372
- }
373
- if (email && trimmed.toLowerCase() === email.toLowerCase()) {
374
- setEmailError("New email must be different from your current email");
375
- return;
376
- }
377
- try {
378
- await onChangeEmail?.(trimmed);
379
- setIsEditingEmail(false);
380
- setNewEmail("");
381
- } catch (err) {
382
- setEmailError(err instanceof Error ? err.message : "Failed to initiate email change");
383
- }
384
- };
385
- const handleCancelEmailEdit = () => {
386
- setIsEditingEmail(false);
387
- setNewEmail("");
388
- setEmailError(void 0);
389
- };
390
- const handleDialogClose = () => {
391
- handleCancelEmailEdit();
392
- handleClose();
393
- };
394
- return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_src.Dialog, {
395
- open: isOpen,
396
- onOpenChange: (open) => !open && handleDialogClose(),
397
- children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(require_src.DialogContent, {
398
- className: "max-w-sm md:max-w-lg",
399
- children: [
400
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_src.DialogHeader, { children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_src.DialogTitle, { children: t("edit_profile") }) }),
401
- /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
402
- className: "space-y-4",
403
- children: [
404
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)(FormTextField$1, {
405
- control,
406
- name: "first_name",
407
- label: t("first_name")
408
- }),
409
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)(FormTextField$1, {
410
- control,
411
- name: "last_name",
412
- label: t("last_name")
413
- }),
414
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)(FormTextField$1, {
415
- control,
416
- name: "phone_number",
417
- label: t("phone_number"),
418
- type: "tel"
419
- }),
420
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)(FormTextareaField, {
421
- control,
422
- name: "bio",
423
- label: t("bio"),
424
- rows: 3,
425
- placeholder: t("add_a_short_bio")
426
- }),
427
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)(FormSelectField$1, {
428
- control,
429
- name: "language",
430
- label: t("language"),
431
- options: languageOptions,
432
- placeholder: t("select_an_option")
433
- })
434
- ]
435
- }),
436
- email && /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
437
- className: "space-y-2",
438
- children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("label", {
439
- className: "text-foreground text-sm font-medium",
440
- children: t("email") || "Email"
441
- }), isEditingEmail ? /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
442
- className: "space-y-2",
443
- children: [
444
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_src.Input, {
445
- type: "email",
446
- placeholder: "Enter your new email...",
447
- value: newEmail,
448
- onChange: (e) => {
449
- setNewEmail(e.target.value);
450
- setEmailError(void 0);
451
- },
452
- onKeyDown: (e) => {
453
- if (e.key === "Enter") {
454
- e.preventDefault();
455
- handleEmailSubmit();
456
- }
457
- if (e.key === "Escape") handleCancelEmailEdit();
458
- },
459
- "aria-invalid": !!emailError || void 0,
460
- autoFocus: true
461
- }),
462
- emailError && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
463
- className: "text-destructive text-xs",
464
- children: emailError
465
- }),
466
- /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
467
- className: "bg-muted flex items-start gap-2.5 rounded-md px-3 py-2.5",
468
- children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(lucide_react.Info, { className: "text-primary mt-0.5 h-4 w-4 shrink-0" }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
469
- className: "text-muted-foreground text-xs",
470
- children: "We'll send a verification link to your new email. Click it to complete the change."
471
- })]
472
- }),
473
- /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
474
- className: "flex gap-2",
475
- children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_src.Button, {
476
- type: "button",
477
- variant: "outline",
478
- size: "sm",
479
- onClick: handleCancelEmailEdit,
480
- children: "Cancel"
481
- }), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(require_src.Button, {
482
- type: "button",
483
- size: "sm",
484
- onClick: handleEmailSubmit,
485
- disabled: !newEmail.trim() || isChangingEmail,
486
- children: [isChangingEmail && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", { className: "mr-2 h-3.5 w-3.5 animate-spin rounded-full border-2 border-current/30 border-t-current" }), isChangingEmail ? "Sending..." : "Send verification"]
487
- })]
488
- })
489
- ]
490
- }) : pendingEmail ? /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
491
- className: "space-y-2",
492
- children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
493
- className: "bg-muted text-muted-foreground min-w-0 rounded-md px-3 py-2 text-sm",
494
- children: email
495
- }), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
496
- className: "bg-muted flex items-start gap-2.5 rounded-md px-3 py-2.5",
497
- children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(lucide_react.Info, { className: "text-primary mt-0.5 h-4 w-4 shrink-0" }), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("p", {
498
- className: "text-muted-foreground text-xs",
499
- children: [
500
- "Changing to",
501
- " ",
502
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
503
- className: "text-foreground font-medium",
504
- children: pendingEmail
505
- }),
506
- ". Check your new email inbox and click the verification link to complete the change."
507
- ]
508
- })]
509
- })]
510
- }) : /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
511
- className: "flex items-center gap-2",
512
- children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
513
- className: "bg-muted text-muted-foreground min-w-0 flex-1 rounded-md px-3 py-2 text-sm",
514
- children: email
515
- }), onChangeEmail && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_src.Button, {
516
- type: "button",
517
- variant: "outline",
518
- size: "sm",
519
- onClick: () => setIsEditingEmail(true),
520
- className: "shrink-0",
521
- children: "Change"
522
- })]
523
- })]
524
- }),
525
- errorMsg && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
526
- className: "text-destructive text-sm",
527
- children: errorMsg
528
- }),
529
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_src.DialogFooter, {
530
- className: "flex flex-row items-center justify-end",
531
- children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
532
- className: "flex-1 text-right",
533
- children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(require_src.Button, {
534
- type: "button",
535
- onClick: onSubmit,
536
- children: [isSubmitting && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", { className: "mr-2 h-4 w-4 animate-spin rounded-full border-2 border-current/30 border-t-current" }), isSubmitting ? t("saving") : t("save_changes")]
537
- })
538
- })
539
- })
540
- ]
541
- })
542
- });
543
- }
544
- //#endregion
545
- //#region ../../profile/ui/src/components/payment-method-card-internals.tsx
546
- const PAYMENT_ICON_BASE = "https://assets.fluid.app/images/payment_icons";
547
- const GENERIC_PAYMENT_ICON = `${PAYMENT_ICON_BASE}/generic.svg`;
548
- function brandIconUrl(brand) {
549
- if (!brand) return GENERIC_PAYMENT_ICON;
550
- return `${PAYMENT_ICON_BASE}/${brand.toLowerCase().replace(/\s+/g, "_")}.svg`;
551
- }
552
- function PaymentIcon({ logoUrl, brand, alt }) {
553
- const computedSrc = logoUrl || brandIconUrl(brand);
554
- const [hasError, setHasError] = (0, react.useState)(false);
555
- return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("img", {
556
- src: hasError ? GENERIC_PAYMENT_ICON : computedSrc,
557
- alt,
558
- width: 40,
559
- height: 24,
560
- className: "object-contain",
561
- onError: () => setHasError(true)
562
- });
563
- }
564
- function getCardDisplayName(paymentMethod) {
565
- const lastFour = paymentMethod.details.last_four;
566
- if (lastFour != null || paymentMethod.payment_type === "Credit Card") return `${paymentMethod.details.card_type || "Card"} •••• ${lastFour || "••••"}`;
567
- return paymentMethod.payment_type;
568
- }
569
- function getCardExpiry(paymentMethod) {
570
- const { exp_month, exp_year } = paymentMethod.details;
571
- if (exp_month != null && exp_year != null) return `Expires ${exp_month}/${exp_year}`;
572
- return "";
573
- }
574
- //#endregion
575
- //#region ../../profile/core/src/context.ts
576
- const ProfileUIContext = (0, react.createContext)(null);
577
- //#endregion
578
- //#region ../../profile/core/src/provider.tsx
579
- function ProfileUIProvider({ t, children }) {
580
- const value = (0, react.useMemo)(() => ({ t }), [t]);
581
- return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(ProfileUIContext.Provider, {
582
- value,
583
- children
584
- });
585
- }
586
- //#endregion
587
- //#region ../../fluid-pay/core/src/context.ts
588
- const FluidPayApiContext = (0, react.createContext)(null);
589
- const FluidPayApiProvider = FluidPayApiContext.Provider;
590
- function useFluidPayApi() {
591
- const api = (0, react.useContext)(FluidPayApiContext);
592
- if (!api) throw new Error("useFluidPayApi must be used within a FluidPayCoreProvider");
593
- return api;
594
- }
595
- //#endregion
596
- //#region ../../fluid-pay/core/src/provider.tsx
597
- function FluidPayCoreProvider({ api, children }) {
598
- return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(FluidPayApiProvider, {
599
- value: api,
600
- children
601
- });
602
- }
603
- //#endregion
604
- //#region ../../fluid-pay/core/src/utils/country-config.ts
605
- const US_STATES = [
606
- {
607
- name: "Alabama",
608
- isoCode: "AL"
609
- },
610
- {
611
- name: "Alaska",
612
- isoCode: "AK"
613
- },
614
- {
615
- name: "Arizona",
616
- isoCode: "AZ"
617
- },
618
- {
619
- name: "Arkansas",
620
- isoCode: "AR"
621
- },
622
- {
623
- name: "California",
624
- isoCode: "CA"
625
- },
626
- {
627
- name: "Colorado",
628
- isoCode: "CO"
629
- },
630
- {
631
- name: "Connecticut",
632
- isoCode: "CT"
633
- },
634
- {
635
- name: "Delaware",
636
- isoCode: "DE"
637
- },
638
- {
639
- name: "Florida",
640
- isoCode: "FL"
641
- },
642
- {
643
- name: "Georgia",
644
- isoCode: "GA"
645
- },
646
- {
647
- name: "Hawaii",
648
- isoCode: "HI"
649
- },
650
- {
651
- name: "Idaho",
652
- isoCode: "ID"
653
- },
654
- {
655
- name: "Illinois",
656
- isoCode: "IL"
657
- },
658
- {
659
- name: "Indiana",
660
- isoCode: "IN"
661
- },
662
- {
663
- name: "Iowa",
664
- isoCode: "IA"
665
- },
666
- {
667
- name: "Kansas",
668
- isoCode: "KS"
669
- },
670
- {
671
- name: "Kentucky",
672
- isoCode: "KY"
673
- },
674
- {
675
- name: "Louisiana",
676
- isoCode: "LA"
677
- },
678
- {
679
- name: "Maine",
680
- isoCode: "ME"
681
- },
682
- {
683
- name: "Maryland",
684
- isoCode: "MD"
685
- },
686
- {
687
- name: "Massachusetts",
688
- isoCode: "MA"
689
- },
690
- {
691
- name: "Michigan",
692
- isoCode: "MI"
693
- },
694
- {
695
- name: "Minnesota",
696
- isoCode: "MN"
697
- },
698
- {
699
- name: "Mississippi",
700
- isoCode: "MS"
701
- },
702
- {
703
- name: "Missouri",
704
- isoCode: "MO"
705
- },
706
- {
707
- name: "Montana",
708
- isoCode: "MT"
709
- },
710
- {
711
- name: "Nebraska",
712
- isoCode: "NE"
713
- },
714
- {
715
- name: "Nevada",
716
- isoCode: "NV"
717
- },
718
- {
719
- name: "New Hampshire",
720
- isoCode: "NH"
721
- },
722
- {
723
- name: "New Jersey",
724
- isoCode: "NJ"
725
- },
726
- {
727
- name: "New Mexico",
728
- isoCode: "NM"
729
- },
730
- {
731
- name: "New York",
732
- isoCode: "NY"
733
- },
734
- {
735
- name: "North Carolina",
736
- isoCode: "NC"
737
- },
738
- {
739
- name: "North Dakota",
740
- isoCode: "ND"
741
- },
742
- {
743
- name: "Ohio",
744
- isoCode: "OH"
745
- },
746
- {
747
- name: "Oklahoma",
748
- isoCode: "OK"
749
- },
750
- {
751
- name: "Oregon",
752
- isoCode: "OR"
753
- },
754
- {
755
- name: "Pennsylvania",
756
- isoCode: "PA"
757
- },
758
- {
759
- name: "Rhode Island",
760
- isoCode: "RI"
761
- },
762
- {
763
- name: "South Carolina",
764
- isoCode: "SC"
765
- },
766
- {
767
- name: "South Dakota",
768
- isoCode: "SD"
769
- },
770
- {
771
- name: "Tennessee",
772
- isoCode: "TN"
773
- },
774
- {
775
- name: "Texas",
776
- isoCode: "TX"
777
- },
778
- {
779
- name: "Utah",
780
- isoCode: "UT"
781
- },
782
- {
783
- name: "Vermont",
784
- isoCode: "VT"
785
- },
786
- {
787
- name: "Virginia",
788
- isoCode: "VA"
789
- },
790
- {
791
- name: "Washington",
792
- isoCode: "WA"
793
- },
794
- {
795
- name: "West Virginia",
796
- isoCode: "WV"
797
- },
798
- {
799
- name: "Wisconsin",
800
- isoCode: "WI"
801
- },
802
- {
803
- name: "Wyoming",
804
- isoCode: "WY"
805
- },
806
- {
807
- name: "District of Columbia",
808
- isoCode: "DC"
809
- }
810
- ];
811
- const COUNTRY_CONFIGS = {
812
- US: {
813
- regionLabel: "State",
814
- postalLabel: "ZIP Code"
815
- },
816
- JP: {
817
- regionLabel: "Prefecture",
818
- postalLabel: "Postal Code"
819
- }
820
- };
821
- const DEFAULT_REGION_CONFIG = {
822
- regionLabel: "Province",
823
- postalLabel: "Postal Code"
824
- };
825
- function getRegionConfig(countryCode) {
826
- return COUNTRY_CONFIGS[countryCode] ?? DEFAULT_REGION_CONFIG;
827
- }
828
- //#endregion
829
- //#region ../../fluid-pay/core/src/hooks/use-country-states.ts
830
- function useCountryStates() {
831
- const [selectedCountry, setSelectedCountry] = (0, react.useState)("US");
832
- const [stateOptions, setStateOptions] = (0, react.useState)(US_STATES);
833
- return {
834
- handleCountryChange: (0, react.useCallback)((selectedCountryCode, fetchStates) => {
835
- setSelectedCountry(selectedCountryCode);
836
- if (selectedCountryCode === "US") setStateOptions(US_STATES);
837
- else if (fetchStates) fetchStates(selectedCountryCode).then((states) => setStateOptions(states)).catch((error) => {
838
- console.error("Failed to fetch states:", error);
839
- setStateOptions([]);
840
- });
841
- else setStateOptions([]);
842
- }, []),
843
- stateOptions,
844
- config: getRegionConfig(selectedCountry),
845
- selectedCountry
846
- };
847
- }
848
- //#endregion
849
- //#region ../../profile/ui/src/components/edit-payment-method-dialog.tsx
850
- const editPaymentMethodFormSchema = zod.z.object({
851
- billing_address: zod.z.object({
852
- name: zod.z.string().min(1, "Name is required"),
853
- address1: zod.z.string().min(1, "Address line 1 is required"),
854
- address2: zod.z.string().optional().nullable(),
855
- city: zod.z.string().min(1, "City is required"),
856
- state: zod.z.string().min(1, "State is required"),
857
- zip: zod.z.string().min(1, "Zip code is required"),
858
- country_code: zod.z.string().min(1, "Country is required")
859
- }),
860
- set_as_default: zod.z.boolean()
861
- });
862
- function EditPaymentMethodDialog({ isOpen, paymentMethod, billingAddress, onClose, onSubmit, isSubmitting, error, countries = [], onDelete, isDeleting = false }) {
863
- const { t } = useProfileTranslation();
864
- const [confirmDelete, setConfirmDelete] = (0, react.useState)(false);
865
- (0, react.useEffect)(() => {
866
- if (!isOpen) setConfirmDelete(false);
867
- }, [isOpen]);
868
- (0, react.useEffect)(() => {
869
- if (!confirmDelete) return;
870
- const timeoutId = setTimeout(() => setConfirmDelete(false), 3e3);
871
- return () => clearTimeout(timeoutId);
872
- }, [confirmDelete]);
873
- const { control, handleSubmit, reset, setValue } = require_src.useZodForm(editPaymentMethodFormSchema, { defaultValues: {
874
- billing_address: {
875
- name: "",
876
- address1: "",
877
- address2: "",
878
- city: "",
879
- state: "",
880
- zip: "",
881
- country_code: "US"
882
- },
883
- set_as_default: false
884
- } });
885
- const billingCountry = (0, react_hook_form.useWatch)({
886
- control,
887
- name: "billing_address.country_code"
888
- });
889
- const setAsDefault = (0, react_hook_form.useWatch)({
890
- control,
891
- name: "set_as_default"
892
- });
893
- const { stateOptions, config, handleCountryChange } = useCountryStates();
894
- const countryOptions = [...countries].map((country) => ({
895
- name: country.name,
896
- value: country.iso
897
- })).sort((a, b) => {
898
- if (a.value === billingCountry) return -1;
899
- if (b.value === billingCountry) return 1;
900
- return a.name.localeCompare(b.name);
901
- });
902
- const stateSelectOptions = stateOptions.map((state) => ({
903
- name: state.name,
904
- value: state.isoCode
905
- }));
906
- (0, react.useEffect)(() => {
907
- if (paymentMethod && isOpen) reset({
908
- billing_address: {
909
- name: billingAddress?.name ?? "",
910
- address1: billingAddress?.address1 ?? "",
911
- address2: billingAddress?.address2 ?? "",
912
- city: billingAddress?.city ?? "",
913
- state: billingAddress?.state ?? "",
914
- zip: billingAddress?.zip ?? "",
915
- country_code: billingAddress?.country_code ?? "US"
916
- },
917
- set_as_default: paymentMethod.default
918
- });
919
- }, [
920
- paymentMethod,
921
- billingAddress,
922
- isOpen,
923
- reset
924
- ]);
925
- const handleCountrySelect = (countryCode) => {
926
- handleCountryChange(countryCode);
927
- setValue("billing_address.country_code", countryCode, { shouldValidate: true });
928
- };
929
- const handleFormSubmit = handleSubmit((data) => {
930
- onSubmit(data);
931
- });
932
- const deleteButtonLabel = (0, react.useMemo)(() => {
933
- if (isDeleting) return t("deleting");
934
- if (confirmDelete) return t("tap_to_confirm");
935
- return t("delete_card");
936
- }, [
937
- isDeleting,
938
- confirmDelete,
939
- t
940
- ]);
941
- if (!paymentMethod) return null;
942
- const { details } = paymentMethod;
943
- const cardBrand = details.card_type ?? "Card";
944
- const lastFour = details.last_four ?? "****";
945
- const expMonth = details.exp_month;
946
- const expYear = details.exp_year;
947
- return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_src.Dialog, {
948
- open: isOpen,
949
- onOpenChange: (open) => !open && onClose(),
950
- children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(require_src.DialogContent, {
951
- className: "max-h-[90vh] max-w-sm overflow-y-auto md:max-w-lg",
952
- children: [
953
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_src.DialogHeader, { children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_src.DialogTitle, { children: t("edit_card") }) }),
954
- /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
955
- className: "space-y-4",
956
- children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
957
- className: "bg-muted rounded-lg p-4",
958
- children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
959
- className: "flex items-center space-x-3",
960
- children: [details.logo_url && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
961
- className: "h-6 w-10 flex-shrink-0",
962
- children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("img", {
963
- src: details.logo_url,
964
- alt: cardBrand,
965
- width: 40,
966
- height: 24,
967
- className: "object-contain"
968
- })
969
- }), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
970
- className: "flex flex-col",
971
- children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("span", {
972
- className: "text-foreground text-sm font-medium",
973
- children: [
974
- cardBrand,
975
- " •••• ",
976
- lastFour
977
- ]
978
- }), expMonth != null && expYear != null && /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("span", {
979
- className: "text-muted-foreground text-sm",
980
- children: [
981
- t("card_expires"),
982
- " ",
983
- expMonth,
984
- "/",
985
- expYear
986
- ]
987
- })]
988
- })]
989
- })
990
- }), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", { children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("h3", {
991
- className: "text-foreground mb-3 text-sm font-medium",
992
- children: t("billing_address")
993
- }), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
994
- className: "space-y-3",
995
- children: [
996
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)(FormSelectField$1, {
997
- control,
998
- name: "billing_address.country_code",
999
- label: t("country"),
1000
- options: countryOptions,
1001
- placeholder: t("select_an_option"),
1002
- onChange: (val) => {
1003
- handleCountrySelect(val);
1004
- }
1005
- }),
1006
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)(FormTextField$1, {
1007
- control,
1008
- name: "billing_address.name",
1009
- label: t("name")
1010
- }),
1011
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)(FormTextField$1, {
1012
- control,
1013
- name: "billing_address.address1",
1014
- label: t("address_line_1")
1015
- }),
1016
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)(FormTextField$1, {
1017
- control,
1018
- name: "billing_address.address2",
1019
- label: t("address_line_2")
1020
- }),
1021
- /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
1022
- className: "grid grid-cols-1 gap-3 sm:grid-cols-3",
1023
- children: [
1024
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)(FormTextField$1, {
1025
- control,
1026
- name: "billing_address.city",
1027
- label: t("city")
1028
- }),
1029
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)(FormSelectField$1, {
1030
- control,
1031
- name: "billing_address.state",
1032
- label: config?.regionLabel ? t(config.regionLabel) : t("state"),
1033
- options: stateSelectOptions,
1034
- placeholder: t("select_state")
1035
- }),
1036
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)(FormTextField$1, {
1037
- control,
1038
- name: "billing_address.zip",
1039
- label: config?.postalLabel ? t(config.postalLabel) : t("zip_code")
1040
- })
1041
- ]
1042
- })
1043
- ]
1044
- })] })]
1045
- }),
1046
- /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
1047
- className: "mt-2 flex items-center space-x-2",
1048
- children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("input", {
1049
- type: "checkbox",
1050
- id: "set_as_default",
1051
- checked: setAsDefault,
1052
- onChange: () => setValue("set_as_default", !setAsDefault),
1053
- className: "h-4 w-4"
1054
- }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("label", {
1055
- htmlFor: "set_as_default",
1056
- className: "text-sm",
1057
- children: t("set_as_default_payment_method")
1058
- })]
1059
- }),
1060
- error && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
1061
- className: "text-destructive text-sm",
1062
- children: error
1063
- }),
1064
- /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(require_src.DialogFooter, {
1065
- className: "flex flex-row items-center justify-between gap-2",
1066
- children: [onDelete ? /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(require_src.Button, {
1067
- type: "button",
1068
- variant: "ghost",
1069
- onClick: () => {
1070
- if (confirmDelete) onDelete();
1071
- else setConfirmDelete(true);
1072
- },
1073
- disabled: isSubmitting || isDeleting,
1074
- className: "text-destructive hover:bg-destructive/10 hover:text-destructive",
1075
- children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(lucide_react.Trash2, { className: "size-4" }), deleteButtonLabel]
1076
- }) : /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {}), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
1077
- className: "flex items-center gap-2",
1078
- children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_src.Button, {
1079
- type: "button",
1080
- variant: "secondary",
1081
- onClick: onClose,
1082
- disabled: isSubmitting || isDeleting,
1083
- children: t("cancel")
1084
- }), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(require_src.Button, {
1085
- type: "button",
1086
- onClick: handleFormSubmit,
1087
- disabled: isSubmitting || isDeleting,
1088
- children: [isSubmitting && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", { className: "mr-2 h-4 w-4 animate-spin rounded-full border-2 border-current/30 border-t-current" }), isSubmitting ? t("saving") : t("save_changes")]
1089
- })]
1090
- })]
1091
- })
1092
- ]
1093
- })
1094
- });
1095
- }
1096
- //#endregion
1097
- //#region ../../profile/ui/src/components/my-site-profile-section.tsx
1098
- function normalizeUrl(value) {
1099
- const trimmed = value.trim();
1100
- if (!trimmed) return "";
1101
- if (/^https?:\/\//i.test(trimmed)) return trimmed;
1102
- return `https://${trimmed}`;
1103
- }
1104
- const urlField = zod.z.string().transform(normalizeUrl).pipe(zod.z.string().url().or(zod.z.literal("")));
1105
- zod.z.object({
1106
- bio: zod.z.string().optional(),
1107
- linkedin: urlField,
1108
- facebook: urlField,
1109
- twitter: urlField,
1110
- instagram: urlField,
1111
- youtube: urlField,
1112
- pinterest: urlField,
1113
- tiktok: urlField,
1114
- whatsapp: zod.z.string().optional(),
1115
- wechat: zod.z.string().optional()
1116
- });
1117
- //#endregion
1118
- //#region ../../fluid-pay/ui/src/components/form-fields/FormTextField.tsx
1119
- function FormTextField({ control, name, label, placeholder, containerClassName, type, disabled, inputMode }) {
1120
- const { field, fieldState: { error } } = (0, react_hook_form.useController)({
1121
- name,
1122
- control
1123
- });
1124
- return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
1125
- className: require_src.cn("space-y-1", containerClassName),
1126
- children: [
1127
- label && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_src.Label, {
1128
- htmlFor: name,
1129
- className: "mb-1.5 block text-sm font-medium",
1130
- children: label
1131
- }),
1132
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_src.Input, {
1133
- ...field,
1134
- value: field.value ?? "",
1135
- id: name,
1136
- type,
1137
- disabled,
1138
- inputMode,
1139
- placeholder,
1140
- "aria-invalid": !!error
1141
- }),
1142
- error?.message && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
1143
- className: "text-destructive text-sm",
1144
- children: error.message
1145
- })
1146
- ]
1147
- });
1148
- }
1149
- //#endregion
1150
- //#region ../../fluid-pay/ui/src/components/form-fields/FormSelectField.tsx
1151
- function FormSelectField({ control, name, label, placeholder = "Select", options, containerClassName, disabled }) {
1152
- return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
1153
- className: require_src.cn("space-y-1", containerClassName),
1154
- children: [label && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_src.Label, {
1155
- htmlFor: name,
1156
- className: "mb-1.5 block text-sm font-medium",
1157
- children: label
1158
- }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(react_hook_form.Controller, {
1159
- control,
1160
- name,
1161
- render: ({ field: { onChange, value }, fieldState: { error } }) => /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)(require_src.Select, {
1162
- value: value?.toString() ?? "",
1163
- onValueChange: onChange,
1164
- disabled,
1165
- children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_src.SelectTrigger, {
1166
- id: name,
1167
- "aria-invalid": !!error,
1168
- className: "w-full",
1169
- children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_src.SelectValue, { placeholder })
1170
- }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_src.SelectContent, { children: options && options.length > 0 ? options.map((opt) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_src.SelectItem, {
1171
- value: opt.value.toString(),
1172
- children: opt.name
1173
- }, opt.value.toString())) : /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_src.SelectItem, {
1174
- value: "__empty",
1175
- disabled: true,
1176
- children: "No available options"
1177
- }) })]
1178
- }), error?.message && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
1179
- className: "text-destructive text-sm",
1180
- children: error.message
1181
- })] })
1182
- })]
1183
- });
1184
- }
1185
- //#endregion
1186
- //#region ../../fluid-pay/ui/src/components/AddressFormDialog.tsx
1187
- const addressFormSchema = zod.z.object({
1188
- first_name: zod.z.string().min(1, "First name is required"),
1189
- last_name: zod.z.string().min(1, "Last name is required"),
1190
- address1: zod.z.string().min(1, "Address line 1 is required"),
1191
- address2: zod.z.string().optional().nullable(),
1192
- city: zod.z.string().min(1, "City is required"),
1193
- state: zod.z.string().min(1, "State is required"),
1194
- postal_code: zod.z.string().min(1, "Postal code is required"),
1195
- country_code: zod.z.string().min(1, "Country is required"),
1196
- default: zod.z.boolean()
1197
- });
1198
- function AddressFormDialog({ isOpen, onClose, selectedAddress, onSubmit, isSubmitting, countries = [], error, renderAddressAutocomplete, fetchStates, t, onDelete, isDeleting = false }) {
1199
- const [confirmDelete, setConfirmDelete] = (0, react.useState)(false);
1200
- (0, react.useEffect)(() => {
1201
- if (!isOpen) setConfirmDelete(false);
1202
- }, [isOpen]);
1203
- (0, react.useEffect)(() => {
1204
- if (!confirmDelete) return;
1205
- const timeoutId = setTimeout(() => setConfirmDelete(false), 3e3);
1206
- return () => clearTimeout(timeoutId);
1207
- }, [confirmDelete]);
1208
- const deleteButtonLabel = (0, react.useMemo)(() => {
1209
- if (isDeleting) return t("deleting");
1210
- if (confirmDelete) return t("tap_to_confirm");
1211
- return t("delete_address");
1212
- }, [
1213
- isDeleting,
1214
- confirmDelete,
1215
- t
1216
- ]);
1217
- const { control, handleSubmit, reset, setValue } = require_src.useZodForm(addressFormSchema, { defaultValues: {
1218
- first_name: "",
1219
- last_name: "",
1220
- address1: "",
1221
- address2: "",
1222
- city: "",
1223
- state: "",
1224
- postal_code: "",
1225
- country_code: "US",
1226
- default: false
1227
- } });
1228
- const selectedCountryCode = (0, react_hook_form.useWatch)({
1229
- control,
1230
- name: "country_code"
1231
- });
1232
- const isDefault = (0, react_hook_form.useWatch)({
1233
- control,
1234
- name: "default"
1235
- });
1236
- const { stateOptions, config, handleCountryChange } = useCountryStates();
1237
- const countrySelectOptions = [...countries].map((country) => ({
1238
- name: country.name,
1239
- value: country.iso
1240
- })).sort((a, b) => {
1241
- if (a.value === selectedCountryCode) return -1;
1242
- if (b.value === selectedCountryCode) return 1;
1243
- return a.name.localeCompare(b.name);
1244
- });
1245
- const stateSelectOptions = stateOptions.map((state) => ({
1246
- name: state.name,
1247
- value: state.isoCode
1248
- }));
1249
- (0, react.useEffect)(() => {
1250
- if (isOpen) if (selectedAddress) {
1251
- const nameParts = (selectedAddress.name ?? "").split(" ");
1252
- reset({
1253
- first_name: nameParts[0] ?? "",
1254
- last_name: nameParts.slice(1).join(" "),
1255
- address1: selectedAddress.address1,
1256
- address2: selectedAddress.address2 ?? "",
1257
- city: selectedAddress.city,
1258
- state: selectedAddress.state,
1259
- postal_code: selectedAddress.postal_code,
1260
- country_code: selectedAddress.country_code ?? "US",
1261
- default: selectedAddress.default
1262
- });
1263
- handleCountryChange(selectedAddress.country_code ?? "US", fetchStates);
1264
- } else {
1265
- reset({
1266
- first_name: "",
1267
- last_name: "",
1268
- address1: "",
1269
- address2: "",
1270
- city: "",
1271
- state: "",
1272
- postal_code: "",
1273
- country_code: "US",
1274
- default: false
1275
- });
1276
- handleCountryChange("US", fetchStates);
1277
- }
1278
- }, [
1279
- selectedAddress,
1280
- isOpen,
1281
- reset,
1282
- handleCountryChange,
1283
- fetchStates
1284
- ]);
1285
- (0, react.useEffect)(() => {
1286
- handleCountryChange(selectedCountryCode, fetchStates);
1287
- }, [
1288
- selectedCountryCode,
1289
- handleCountryChange,
1290
- fetchStates
1291
- ]);
1292
- const handleFormSubmit = handleSubmit((data) => {
1293
- onSubmit({ address: {
1294
- first_name: data.first_name,
1295
- last_name: data.last_name,
1296
- address1: data.address1,
1297
- address2: data.address2 ?? null,
1298
- city: data.city,
1299
- state: data.state,
1300
- postal_code: data.postal_code,
1301
- country_code: data.country_code,
1302
- default: data.default
1303
- } });
1304
- });
1305
- return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_src.Dialog, {
1306
- open: isOpen,
1307
- onOpenChange: (open) => !open && onClose(),
1308
- children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(require_src.DialogContent, {
1309
- className: "max-h-[90vh] max-w-md overflow-y-auto rounded md:max-w-xl",
1310
- children: [
1311
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_src.DialogHeader, { children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_src.DialogTitle, {
1312
- className: "text-lg font-medium",
1313
- children: selectedAddress !== null ? t("edit_address") : t("add_an_address")
1314
- }) }),
1315
- /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
1316
- className: "space-y-3 pt-2",
1317
- children: [
1318
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)(FormSelectField, {
1319
- control,
1320
- name: "country_code",
1321
- label: t("country"),
1322
- placeholder: t("select_an_option"),
1323
- options: countrySelectOptions,
1324
- disabled: isSubmitting
1325
- }),
1326
- /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
1327
- className: "flex gap-3",
1328
- children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(FormTextField, {
1329
- control,
1330
- name: "first_name",
1331
- label: t("first_name"),
1332
- containerClassName: "flex-1",
1333
- disabled: isSubmitting
1334
- }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(FormTextField, {
1335
- control,
1336
- name: "last_name",
1337
- label: t("last_name"),
1338
- containerClassName: "flex-1",
1339
- disabled: isSubmitting
1340
- })]
1341
- }),
1342
- renderAddressAutocomplete ? renderAddressAutocomplete({
1343
- control,
1344
- setValue,
1345
- countryCode: selectedCountryCode
1346
- }) : /* @__PURE__ */ (0, react_jsx_runtime.jsx)(FormTextField, {
1347
- control,
1348
- name: "address1",
1349
- label: t("address_line_1"),
1350
- disabled: isSubmitting
1351
- }),
1352
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)(FormTextField, {
1353
- control,
1354
- name: "address2",
1355
- label: t("address_line_2"),
1356
- disabled: isSubmitting
1357
- }),
1358
- /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
1359
- className: "flex gap-3",
1360
- children: [
1361
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)(FormTextField, {
1362
- control,
1363
- name: "city",
1364
- label: t("city"),
1365
- containerClassName: "flex-1",
1366
- disabled: isSubmitting
1367
- }),
1368
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)(FormSelectField, {
1369
- control,
1370
- name: "state",
1371
- label: config?.regionLabel ? t(config.regionLabel) : t("state"),
1372
- placeholder: t("select_state"),
1373
- options: stateSelectOptions,
1374
- containerClassName: "flex-1",
1375
- disabled: isSubmitting
1376
- }),
1377
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)(FormTextField, {
1378
- control,
1379
- name: "postal_code",
1380
- label: config?.postalLabel ? t(config.postalLabel) : t("zip_code"),
1381
- containerClassName: "flex-1",
1382
- disabled: isSubmitting
1383
- })
1384
- ]
1385
- })
1386
- ]
1387
- }),
1388
- /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
1389
- className: "mt-4 flex flex-wrap items-center justify-between gap-3",
1390
- children: [onDelete ? /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(require_src.Button, {
1391
- type: "button",
1392
- variant: "ghost",
1393
- onClick: () => {
1394
- if (confirmDelete) onDelete();
1395
- else setConfirmDelete(true);
1396
- },
1397
- disabled: isSubmitting || isDeleting,
1398
- className: "text-destructive hover:bg-destructive/10 hover:text-destructive",
1399
- children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(lucide_react.Trash2, { className: "size-4" }), deleteButtonLabel]
1400
- }) : /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {}), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
1401
- className: "flex items-center gap-3",
1402
- children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
1403
- className: "flex items-center space-x-2",
1404
- children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("input", {
1405
- type: "checkbox",
1406
- id: "set_as_default_address",
1407
- checked: isDefault,
1408
- onChange: () => setValue("default", !isDefault),
1409
- disabled: isSubmitting || isDeleting,
1410
- className: "h-4 w-4"
1411
- }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("label", {
1412
- htmlFor: "set_as_default_address",
1413
- className: "text-sm",
1414
- children: t("set_as_default_address")
1415
- })]
1416
- }), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(require_src.Button, {
1417
- type: "submit",
1418
- onClick: handleFormSubmit,
1419
- disabled: isSubmitting || isDeleting,
1420
- children: [isSubmitting && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", { className: "mr-2 h-4 w-4 animate-spin rounded-full border-2 border-current/30 border-t-current" }), isSubmitting ? t("saving") : t("save_address")]
1421
- })]
1422
- })]
1423
- }),
1424
- error && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
1425
- className: "text-destructive mt-2 text-sm",
1426
- children: error
1427
- })
1428
- ]
1429
- })
1430
- });
1431
- }
1432
- //#endregion
1433
- //#region ../../fluid-pay/ui/src/hooks/use-vgs-collect.ts
1434
- const getVGSCollect = () => {
1435
- if (typeof window !== "undefined") return window.VGSCollect || null;
1436
- return null;
1437
- };
1438
- const DEFAULT_FIELD_STATE = {
1439
- card_number: {
1440
- isFocused: false,
1441
- isValid: false,
1442
- isEmpty: true
1443
- },
1444
- card_exp: {
1445
- isFocused: false,
1446
- isValid: false,
1447
- isEmpty: true
1448
- },
1449
- card_cvc: {
1450
- isFocused: false,
1451
- isValid: false,
1452
- isEmpty: true
1453
- },
1454
- card_holder: {
1455
- isFocused: false,
1456
- isValid: false,
1457
- isEmpty: true
1458
- }
1459
- };
1460
- function useVgsCollect() {
1461
- const [isFormReady, setIsFormReady] = (0, react.useState)(false);
1462
- const [isLoading, setIsLoading] = (0, react.useState)(false);
1463
- const [isScriptLoaded, setIsScriptLoaded] = (0, react.useState)(false);
1464
- const [scriptLoadError, setScriptLoadError] = (0, react.useState)(void 0);
1465
- const [vgsFieldState, setVgsFieldState] = (0, react.useState)(DEFAULT_FIELD_STATE);
1466
- const formRef = (0, react.useRef)(null);
1467
- const onSuccessRef = (0, react.useRef)(null);
1468
- const onErrorRef = (0, react.useRef)(null);
1469
- (0, react.useEffect)(() => {
1470
- if (typeof window === "undefined") return;
1471
- if (getVGSCollect()) {
1472
- const timeoutId = window.setTimeout(() => {
1473
- setIsScriptLoaded(true);
1474
- }, 0);
1475
- return () => window.clearTimeout(timeoutId);
1476
- }
1477
- if (isScriptLoaded) return;
1478
- const script = document.createElement("script");
1479
- script.src = "https://js.verygoodvault.com/vgs-collect/3.3.0/vgs-collect.js";
1480
- script.async = true;
1481
- script.onload = () => setIsScriptLoaded(true);
1482
- script.onerror = () => {
1483
- const message = "Failed to load payment form";
1484
- setScriptLoadError(message);
1485
- onErrorRef.current?.(message);
1486
- };
1487
- document.head.appendChild(script);
1488
- }, [isScriptLoaded]);
1489
- const updateFieldState = (0, react.useCallback)((state) => {
1490
- if (!state) return;
1491
- setVgsFieldState((prev) => {
1492
- const newState = { ...prev };
1493
- let hasChanges = false;
1494
- Object.keys(state).forEach((key) => {
1495
- const field = state[key];
1496
- if (!field) return;
1497
- const next = {
1498
- isFocused: !!field.isFocused,
1499
- isValid: !!field.isValid,
1500
- isEmpty: !!field.isEmpty
1501
- };
1502
- if (!newState[key] || JSON.stringify(newState[key]) !== JSON.stringify(next)) {
1503
- newState[key] = next;
1504
- hasChanges = true;
1505
- }
1506
- });
1507
- return hasChanges ? newState : prev;
1508
- });
1509
- }, []);
1510
- const resetVgs = (0, react.useCallback)(() => {
1511
- if (formRef.current) {
1512
- try {
1513
- formRef.current.unmount();
1514
- } catch (e) {
1515
- console.warn("VGS unmount error", e);
1516
- }
1517
- formRef.current = null;
1518
- }
1519
- setIsFormReady(false);
1520
- setVgsFieldState({ ...DEFAULT_FIELD_STATE });
1521
- }, []);
1522
- const initializeForm = (0, react.useCallback)(async (credentials) => {
1523
- if (!isScriptLoaded) return;
1524
- const VGSCollect = getVGSCollect();
1525
- if (!VGSCollect) {
1526
- onErrorRef.current?.("Payment script not loaded");
1527
- return;
1528
- }
1529
- try {
1530
- setIsLoading(true);
1531
- const vgsEnvironment = credentials.vault.environment === "sandbox" ? "sandbox" : "live-eu-1";
1532
- const form = VGSCollect.create(credentials.vault.vault_id, vgsEnvironment, (state) => updateFieldState(state));
1533
- if (credentials.vault.route_id) form.setRouteId(credentials.vault.route_id);
1534
- formRef.current = form;
1535
- let retries = 0;
1536
- const maxRetries = 20;
1537
- const retryDelay = 200;
1538
- const waitForDom = async () => {
1539
- if ([
1540
- "vgs-card-number",
1541
- "vgs-expiration-date",
1542
- "vgs-cvc",
1543
- "vgs-card-holder"
1544
- ].every((id) => {
1545
- const el = document.getElementById(id);
1546
- return el && el.isConnected;
1547
- })) return true;
1548
- if (retries >= maxRetries) return false;
1549
- retries++;
1550
- await new Promise((resolve) => setTimeout(resolve, retryDelay));
1551
- return waitForDom();
1552
- };
1553
- if (!await waitForDom()) throw new Error("Payment form elements not ready");
1554
- const themedNode = document.getElementById("vgs-card-number");
1555
- const probeStyle = themedNode ? getComputedStyle(themedNode) : null;
1556
- const foregroundColor = probeStyle?.getPropertyValue("--color-foreground").trim() || "#0a0a0a";
1557
- const mutedForegroundColor = probeStyle?.getPropertyValue("--color-muted-foreground").trim() || "#737373";
1558
- const css = {
1559
- fontSize: "14px",
1560
- fontFamily: "-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif",
1561
- color: foregroundColor,
1562
- background: "transparent",
1563
- paddingTop: "0px",
1564
- paddingBottom: "0px",
1565
- paddingLeft: "0px",
1566
- paddingRight: "0px",
1567
- boxSizing: "border-box",
1568
- lineHeight: "26px",
1569
- height: "100%",
1570
- width: "100%",
1571
- "&::placeholder": {
1572
- color: mutedForegroundColor,
1573
- opacity: 1
1574
- },
1575
- "&:focus": { outline: "none" }
1576
- };
1577
- form.field("#vgs-card-number", {
1578
- type: "card-number",
1579
- name: "card_number",
1580
- placeholder: "0000 0000 0000 0000",
1581
- showCardIcon: true,
1582
- css: {
1583
- ...css,
1584
- paddingRight: "40px"
1585
- },
1586
- autoComplete: "cc-number",
1587
- validations: ["required", "validCardNumber"]
1588
- });
1589
- form.field("#vgs-expiration-date", {
1590
- type: "card-expiration-date",
1591
- name: "card_exp",
1592
- yearLength: 2,
1593
- placeholder: "MM / YY",
1594
- css,
1595
- autoComplete: "cc-exp",
1596
- validations: ["required", "validCardExpirationDate"]
1597
- });
1598
- form.field("#vgs-cvc", {
1599
- type: "card-security-code",
1600
- name: "card_cvc",
1601
- placeholder: "123",
1602
- css,
1603
- autoComplete: "cc-csc",
1604
- validations: ["required", "validCardSecurityCode"]
1605
- });
1606
- form.field("#vgs-card-holder", {
1607
- type: "text",
1608
- name: "card_holder",
1609
- placeholder: "Full Name",
1610
- css,
1611
- autoComplete: "cc-name",
1612
- validations: ["required"]
1613
- });
1614
- setIsFormReady(true);
1615
- } catch (error) {
1616
- console.error("Failed to initialize VGS:", error);
1617
- onErrorRef.current?.("Failed to initialize payment form");
1618
- } finally {
1619
- setIsLoading(false);
1620
- }
1621
- }, [isScriptLoaded, updateFieldState]);
1622
- const submitCard = (0, react.useCallback)(() => {
1623
- if (!formRef.current) {
1624
- onErrorRef.current?.("Form not initialized");
1625
- return;
1626
- }
1627
- formRef.current.submit(`/post`, {}, (status, response) => {
1628
- if (status >= 200 && status < 400) onSuccessRef.current?.(response);
1629
- else onErrorRef.current?.("Payment failed");
1630
- }, (errors) => {
1631
- const allErrors = Object.values(errors).flat().filter((msg) => typeof msg === "string" && msg.trim().length > 0 && msg !== "Required");
1632
- const uniqueErrors = Array.from(new Set(allErrors));
1633
- let errorMsg = "Please verify your payment details.";
1634
- if (uniqueErrors.length > 0) errorMsg = uniqueErrors.join(", ");
1635
- else if (Object.values(errors).flat().length > 0) errorMsg = "Please fill in all required fields.";
1636
- onErrorRef.current?.(errorMsg);
1637
- });
1638
- }, []);
1639
- (0, react.useEffect)(() => {
1640
- return () => {
1641
- if (formRef.current) {
1642
- try {
1643
- formRef.current.unmount();
1644
- } catch (e) {
1645
- console.warn("VGS unmount error", e);
1646
- }
1647
- formRef.current = null;
1648
- }
1649
- };
1650
- }, []);
1651
- return {
1652
- isFormReady,
1653
- isLoading,
1654
- isScriptLoaded,
1655
- scriptLoadError,
1656
- initializeForm,
1657
- submitCard,
1658
- vgsFieldState,
1659
- resetVgs,
1660
- onSuccessRef,
1661
- onErrorRef
1662
- };
1663
- }
1664
- //#endregion
1665
- //#region ../../fluid-pay/ui/src/components/CreditCardFormDialog.tsx
1666
- const billingAddressSchema = zod.z.object({
1667
- name: zod.z.string().min(1, "Name is required"),
1668
- address1: zod.z.string().min(1, "Address line 1 is required"),
1669
- address2: zod.z.string().optional().nullable(),
1670
- city: zod.z.string().min(1, "City is required"),
1671
- state: zod.z.string().min(1, "State is required"),
1672
- zip: zod.z.string().min(1, "Zip code is required"),
1673
- country_code: zod.z.string().min(1, "Country is required"),
1674
- set_as_default: zod.z.boolean()
1675
- });
1676
- function VgsInputWrapper({ id, label, fieldState, className }) {
1677
- const isInvalid = fieldState?.isValid === false && !fieldState?.isFocused && !fieldState?.isEmpty;
1678
- const isFocused = !!fieldState?.isFocused;
1679
- return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
1680
- id,
1681
- role: "group",
1682
- "aria-label": label,
1683
- "data-invalid": isInvalid ? "" : void 0,
1684
- className: require_src.cn("border-input selection:bg-primary selection:text-primary-foreground file:text-foreground placeholder:text-muted-foreground h-9 w-full min-w-0 rounded-md border bg-transparent px-3 py-1 text-base shadow-xs transition-[color,box-shadow] outline-none file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm", "focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]", "data-[invalid]:border-destructive data-[invalid]:ring-destructive/20", "[&_iframe]:block! [&_iframe]:h-full! [&_iframe]:w-full! [&_iframe]:border-0!", isFocused && "border-ring ring-ring/50 ring-[3px]", isFocused && isInvalid && "border-destructive ring-destructive/20", className)
1685
- });
1686
- }
1687
- function VgsCardForm({ vgsFieldState, networkError }) {
1688
- return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
1689
- className: "space-y-4",
1690
- "aria-label": "Credit card form",
1691
- children: [
1692
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)(VgsInputWrapper, {
1693
- id: "vgs-card-number",
1694
- label: "Card number",
1695
- fieldState: vgsFieldState["card_number"]
1696
- }),
1697
- /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
1698
- className: "flex gap-3",
1699
- children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
1700
- className: "flex-1",
1701
- children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(VgsInputWrapper, {
1702
- id: "vgs-expiration-date",
1703
- label: "Expiration date",
1704
- fieldState: vgsFieldState["card_exp"]
1705
- })
1706
- }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
1707
- className: "flex-1",
1708
- children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(VgsInputWrapper, {
1709
- id: "vgs-cvc",
1710
- label: "CVC",
1711
- fieldState: vgsFieldState["card_cvc"]
1712
- })
1713
- })]
1714
- }),
1715
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)(VgsInputWrapper, {
1716
- id: "vgs-card-holder",
1717
- label: "Cardholder name",
1718
- fieldState: vgsFieldState["card_holder"]
1719
- }),
1720
- networkError && networkError.trim().length > 0 && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
1721
- className: "bg-destructive/10 text-destructive rounded-md p-3 text-sm",
1722
- children: networkError
1723
- })
1724
- ]
1725
- });
1726
- }
1727
- function CreditCardFormDialog({ isOpen, onClose, onSubmit, isSubmitting, countries = [], error, jwt, renderAddressAutocomplete, t }) {
1728
- const api = useFluidPayApi();
1729
- const [cardError, setCardError] = (0, react.useState)(void 0);
1730
- const [isVgsSubmitting, setIsVgsSubmitting] = (0, react.useState)(false);
1731
- const { isFormReady, isLoading: isVgsLoading, isScriptLoaded, scriptLoadError, initializeForm, submitCard, vgsFieldState, resetVgs, onSuccessRef, onErrorRef } = useVgsCollect();
1732
- const { control, handleSubmit, reset, setValue } = require_src.useZodForm(billingAddressSchema, { defaultValues: {
1733
- name: "",
1734
- address1: "",
1735
- address2: "",
1736
- city: "",
1737
- state: "",
1738
- zip: "",
1739
- country_code: "US",
1740
- set_as_default: false
1741
- } });
1742
- const billingCountry = (0, react_hook_form.useWatch)({
1743
- control,
1744
- name: "country_code"
1745
- });
1746
- const setAsDefault = (0, react_hook_form.useWatch)({
1747
- control,
1748
- name: "set_as_default"
1749
- });
1750
- const { stateOptions, config, handleCountryChange } = useCountryStates();
1751
- const countrySelectOptions = [...countries].map((country) => ({
1752
- name: country.name,
1753
- value: country.iso
1754
- })).sort((a, b) => {
1755
- if (a.value === billingCountry) return -1;
1756
- if (b.value === billingCountry) return 1;
1757
- return a.name.localeCompare(b.name);
1758
- });
1759
- const stateSelectOptions = stateOptions.map((state) => ({
1760
- name: state.name,
1761
- value: state.isoCode
1762
- }));
1763
- (0, react.useEffect)(() => {
1764
- handleCountryChange(billingCountry);
1765
- }, [billingCountry, handleCountryChange]);
1766
- (0, react.useEffect)(() => {
1767
- if (!isOpen || !isScriptLoaded) return;
1768
- let cancelled = false;
1769
- const init = async () => {
1770
- try {
1771
- const credentials = await api.vault.fetchCredentials(jwt);
1772
- if (!cancelled) await initializeForm(credentials);
1773
- } catch (err) {
1774
- console.error("Failed to fetch vault credentials:", err);
1775
- if (!cancelled) setCardError("Failed to initialize payment form");
1776
- }
1777
- };
1778
- init();
1779
- return () => {
1780
- cancelled = true;
1781
- };
1782
- }, [
1783
- isOpen,
1784
- isScriptLoaded,
1785
- jwt,
1786
- api,
1787
- initializeForm
1788
- ]);
1789
- const handleVgsSuccess = (0, react.useCallback)((response) => {
1790
- const expValue = response?.card_exp;
1791
- if (!expValue) {
1792
- setCardError("Missing expiration date from payment form");
1793
- setIsVgsSubmitting(false);
1794
- return;
1795
- }
1796
- const [expMonth, expYearShort] = expValue.replace(/\s+/g, "").split("/");
1797
- if (!expMonth || !expYearShort) {
1798
- setCardError("Invalid expiration date format");
1799
- setIsVgsSubmitting(false);
1800
- return;
1801
- }
1802
- const expYear = expYearShort.length === 2 ? `20${expYearShort}` : expYearShort;
1803
- const cardholderName = response?.card_holder?.trim();
1804
- if (!cardholderName) {
1805
- setCardError("Cardholder name is required");
1806
- setIsVgsSubmitting(false);
1807
- return;
1808
- }
1809
- handleSubmit((formData) => {
1810
- onSubmit({
1811
- type: "credit_card",
1812
- country_code: formData.country_code,
1813
- default_payment_method: formData.set_as_default,
1814
- payment_method: {
1815
- token: response.card_number,
1816
- cvv_token: response.card_cvc,
1817
- exp_month: expMonth,
1818
- exp_year: expYear,
1819
- card_holder: cardholderName,
1820
- billing_zip: formData.zip
1821
- },
1822
- billing_address: {
1823
- name: formData.name,
1824
- address1: formData.address1,
1825
- address2: formData.address2 ?? void 0,
1826
- city: formData.city,
1827
- state: formData.state,
1828
- zip: formData.zip,
1829
- country_code: formData.country_code
1830
- }
1831
- });
1832
- setIsVgsSubmitting(false);
1833
- }, () => {
1834
- setCardError("Please fix the errors in the billing address.");
1835
- setIsVgsSubmitting(false);
1836
- })();
1837
- }, [handleSubmit, onSubmit]);
1838
- const handleVgsError = (0, react.useCallback)((err) => {
1839
- setCardError(err);
1840
- setIsVgsSubmitting(false);
1841
- }, []);
1842
- (0, react.useEffect)(() => {
1843
- onSuccessRef.current = handleVgsSuccess;
1844
- onErrorRef.current = handleVgsError;
1845
- }, [
1846
- handleVgsSuccess,
1847
- handleVgsError,
1848
- onSuccessRef,
1849
- onErrorRef
1850
- ]);
1851
- const handleClose = () => {
1852
- resetVgs();
1853
- reset();
1854
- setCardError(void 0);
1855
- setIsVgsSubmitting(false);
1856
- onClose();
1857
- };
1858
- const handleFormSubmit = handleSubmit(() => {
1859
- setIsVgsSubmitting(true);
1860
- setCardError(void 0);
1861
- submitCard();
1862
- });
1863
- const isBusy = isSubmitting || isVgsSubmitting;
1864
- return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_src.Dialog, {
1865
- open: isOpen,
1866
- onOpenChange: (open) => !open && handleClose(),
1867
- children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_src.DialogContent, {
1868
- className: "max-h-[90vh] max-w-md overflow-y-auto p-0 md:max-w-xl",
1869
- children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
1870
- className: "relative p-6",
1871
- children: [
1872
- (isVgsLoading || !isFormReady) && !scriptLoadError && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
1873
- className: "bg-background/80 absolute inset-0 z-10 flex items-center justify-center rounded backdrop-blur-[1px]",
1874
- children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
1875
- className: "flex items-center justify-center",
1876
- children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", { className: "border-primary mr-3 h-5 w-5 animate-spin rounded-full border-2 border-t-2 border-t-transparent" }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
1877
- className: "text-muted-foreground text-sm font-medium",
1878
- children: t("securing")
1879
- })]
1880
- })
1881
- }),
1882
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_src.DialogHeader, { children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_src.DialogTitle, { children: t("add_credit_card") }) }),
1883
- /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
1884
- className: "space-y-4 pt-6",
1885
- children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(VgsCardForm, {
1886
- vgsFieldState,
1887
- networkError: cardError ?? scriptLoadError ?? error
1888
- }), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
1889
- className: "space-y-3 pt-2",
1890
- children: [
1891
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)("h3", {
1892
- className: "text-muted-foreground text-sm font-medium",
1893
- children: t("billing_address")
1894
- }),
1895
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)(FormSelectField, {
1896
- control,
1897
- name: "country_code",
1898
- label: t("country"),
1899
- placeholder: t("select_an_option"),
1900
- options: countrySelectOptions,
1901
- disabled: isBusy
1902
- }),
1903
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)(FormTextField, {
1904
- control,
1905
- name: "name",
1906
- label: t("name"),
1907
- disabled: isBusy
1908
- }),
1909
- renderAddressAutocomplete ? renderAddressAutocomplete({
1910
- control,
1911
- setValue,
1912
- countryCode: billingCountry
1913
- }) : /* @__PURE__ */ (0, react_jsx_runtime.jsx)(FormTextField, {
1914
- control,
1915
- name: "address1",
1916
- label: t("address_line_1"),
1917
- disabled: isBusy
1918
- }),
1919
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)(FormTextField, {
1920
- control,
1921
- name: "address2",
1922
- label: t("address_line_2"),
1923
- disabled: isBusy
1924
- }),
1925
- /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
1926
- className: "flex gap-3",
1927
- children: [
1928
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)(FormTextField, {
1929
- control,
1930
- name: "city",
1931
- label: t("city"),
1932
- containerClassName: "flex-1",
1933
- disabled: isBusy
1934
- }),
1935
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)(FormSelectField, {
1936
- control,
1937
- name: "state",
1938
- label: config?.regionLabel ? t(config.regionLabel) : t("state"),
1939
- placeholder: t("select_state"),
1940
- options: stateSelectOptions,
1941
- containerClassName: "flex-1",
1942
- disabled: isBusy
1943
- }),
1944
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)(FormTextField, {
1945
- control,
1946
- name: "zip",
1947
- label: config?.postalLabel ? t(config.postalLabel) : t("zip_code"),
1948
- containerClassName: "flex-1",
1949
- disabled: isBusy
1950
- })
1951
- ]
1952
- })
1953
- ]
1954
- })]
1955
- }),
1956
- /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
1957
- className: "mt-4 flex items-center justify-between",
1958
- children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
1959
- className: "flex items-center space-x-2",
1960
- children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("input", {
1961
- type: "checkbox",
1962
- id: "set_as_default_cc",
1963
- checked: setAsDefault,
1964
- onChange: () => setValue("set_as_default", !setAsDefault),
1965
- disabled: isBusy,
1966
- className: "h-4 w-4"
1967
- }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("label", {
1968
- htmlFor: "set_as_default_cc",
1969
- className: "text-sm",
1970
- children: t("set_as_default_payment_method")
1971
- })]
1972
- }), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(require_src.Button, {
1973
- type: "button",
1974
- onClick: handleFormSubmit,
1975
- disabled: isBusy,
1976
- children: [isBusy && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", { className: "mr-2 h-4 w-4 animate-spin rounded-full border-2 border-current/30 border-t-current" }), isBusy ? t("saving") : t("save_card")]
1977
- })]
1978
- })
1979
- ]
1980
- })
1981
- })
1982
- });
1983
- }
1984
- //#endregion
1985
- //#region src/adapters/fluid-pay-api-adapter.ts
1986
- /**
1987
- * Maps a portal-tenant PayPaymentMethod to the fluidPay shape consumed by
1988
- * profile-ui components (PaymentMethodDropdown, CreditCardFormDialog, etc.).
1989
- * Co-located with the adapter because both speak the portal-tenant ↔ fluid-pay
1990
- * boundary.
1991
- */
1992
- function mapToFluidPayPaymentMethod(raw) {
1993
- return {
1994
- id: raw.id,
1995
- created_at: raw.created_at ?? "",
1996
- default: raw.default,
1997
- details: {
1998
- card_type: raw.brand,
1999
- card_brand: raw.brand,
2000
- last_four: raw.last_four,
2001
- exp_month: raw.exp_month ?? void 0,
2002
- exp_year: raw.exp_year ?? void 0
2003
- },
2004
- billing_address: raw.billing_address ? {
2005
- name: raw.billing_address.name,
2006
- address1: raw.billing_address.street1,
2007
- address2: raw.billing_address.street2,
2008
- city: raw.billing_address.city,
2009
- state: raw.billing_address.state,
2010
- zip: raw.billing_address.zip,
2011
- country_code: raw.billing_address.country
2012
- } : null,
2013
- payment_type: raw.type,
2014
- source: "",
2015
- updated_at: raw.updated_at ?? ""
2016
- };
2017
- }
2018
- const notImplemented = () => {
2019
- throw new Error("Not available in portal-tenant context");
2020
- };
2021
- /**
2022
- * Adapts the portal-tenant PayApi to the FluidPayApi shape required by
2023
- * FluidPayCoreProvider. Only `vault.fetchCredentials` is implemented —
2024
- * the rest of the FluidPayApi surface is not used by the profile-ui
2025
- * components that consume this provider in the portal context.
2026
- */
2027
- function createFluidPayApiAdapter(payApi) {
2028
- return {
2029
- customers: {
2030
- fetchAccount: notImplemented,
2031
- update: notImplemented
2032
- },
2033
- addresses: {
2034
- fetchAll: notImplemented,
2035
- create: notImplemented,
2036
- update: notImplemented,
2037
- delete: notImplemented
2038
- },
2039
- paymentMethods: {
2040
- fetchAll: notImplemented,
2041
- addCreditCard: notImplemented,
2042
- delete: notImplemented,
2043
- updateDefault: notImplemented,
2044
- update: notImplemented
2045
- },
2046
- vault: { fetchCredentials: async () => {
2047
- const response = await payApi.fetchVaultCredentials();
2048
- return {
2049
- vault: {
2050
- vault_id: response.vault.vault_id,
2051
- environment: response.vault.environment,
2052
- route_id: response.vault.route_id ?? "",
2053
- requires_3ds: false
2054
- },
2055
- meta: {
2056
- request_id: response.meta?.request_id ?? "",
2057
- timestamp: response.meta?.timestamp ?? ""
2058
- }
2059
- };
2060
- } }
2061
- };
2062
- }
2063
- //#endregion
2064
- //#region ../../platform/address-autocomplete/src/components/AddressAutocompleteInput.tsx
2065
- const SET_OPTS = {
2066
- shouldValidate: true,
2067
- shouldDirty: true,
2068
- shouldTouch: true
2069
- };
2070
- const DEBOUNCE_MS = 250;
2071
- function AddressAutocompleteInput({ control, setValue, countryIso, addressLineField, cityField, stateField, postalCodeField, placeholder = "Start typing your address...", disabled }) {
2072
- const api = require_api_context.useAddressAutocompleteApi();
2073
- const { field } = (0, react_hook_form.useController)({
2074
- name: addressLineField,
2075
- control
2076
- });
2077
- const [suggestions, setSuggestions] = (0, react.useState)([]);
2078
- const [isOpen, setIsOpen] = (0, react.useState)(false);
2079
- const [needsCountry, setNeedsCountry] = (0, react.useState)(false);
2080
- const containerRef = (0, react.useRef)(null);
2081
- const requestIdRef = (0, react.useRef)(0);
2082
- const debounceTimerRef = (0, react.useRef)(null);
2083
- const isCountrySelected = (0, react.useMemo)(() => Boolean(countryIso && countryIso.trim() !== ""), [countryIso]);
2084
- (0, react.useEffect)(() => {
2085
- function onClickOutside(e) {
2086
- if (containerRef.current && !containerRef.current.contains(e.target)) {
2087
- setIsOpen(false);
2088
- setNeedsCountry(false);
2089
- }
2090
- }
2091
- document.addEventListener("mousedown", onClickOutside);
2092
- return () => document.removeEventListener("mousedown", onClickOutside);
2093
- }, []);
2094
- (0, react.useEffect)(() => () => {
2095
- if (debounceTimerRef.current !== null) clearTimeout(debounceTimerRef.current);
2096
- }, []);
2097
- const populate = (0, react.useCallback)((s) => {
2098
- setValue(addressLineField, s.streetLine, SET_OPTS);
2099
- setValue(cityField, s.city, SET_OPTS);
2100
- setValue(stateField, s.state, SET_OPTS);
2101
- setValue(postalCodeField, s.postalCode, SET_OPTS);
2102
- }, [
2103
- addressLineField,
2104
- cityField,
2105
- postalCodeField,
2106
- setValue,
2107
- stateField
2108
- ]);
2109
- const handleChange = (0, react.useCallback)((e) => {
2110
- const value = e.target.value;
2111
- field.onChange(value);
2112
- if (debounceTimerRef.current !== null) {
2113
- clearTimeout(debounceTimerRef.current);
2114
- debounceTimerRef.current = null;
2115
- }
2116
- if (value.length < 1) {
2117
- setIsOpen(false);
2118
- setNeedsCountry(false);
2119
- setSuggestions([]);
2120
- return;
2121
- }
2122
- if (!isCountrySelected) {
2123
- setNeedsCountry(true);
2124
- setIsOpen(true);
2125
- return;
2126
- }
2127
- setNeedsCountry(false);
2128
- const requestId = ++requestIdRef.current;
2129
- debounceTimerRef.current = setTimeout(() => {
2130
- debounceTimerRef.current = null;
2131
- api.fetchSuggestions({
2132
- query: value,
2133
- countryIso
2134
- }).then((next) => {
2135
- if (requestId !== requestIdRef.current) return;
2136
- setSuggestions(next);
2137
- setIsOpen(true);
2138
- });
2139
- }, DEBOUNCE_MS);
2140
- }, [
2141
- api,
2142
- countryIso,
2143
- field,
2144
- isCountrySelected
2145
- ]);
2146
- const handleClick = (0, react.useCallback)(async (suggestion) => {
2147
- if (debounceTimerRef.current !== null) {
2148
- clearTimeout(debounceTimerRef.current);
2149
- debounceTimerRef.current = null;
2150
- }
2151
- const clickId = ++requestIdRef.current;
2152
- if (!suggestion.needsDetailLookup) {
2153
- populate({
2154
- streetLine: suggestion.streetLine ?? suggestion.text,
2155
- city: suggestion.city ?? "",
2156
- state: suggestion.state ?? "",
2157
- postalCode: suggestion.postalCode ?? ""
2158
- });
2159
- setIsOpen(false);
2160
- return;
2161
- }
2162
- const { details, drilldownSuggestions } = await api.fetchDetails({
2163
- suggestion,
2164
- countryIso
2165
- });
2166
- if (clickId !== requestIdRef.current) return;
2167
- if (details) {
2168
- populate(details);
2169
- setIsOpen(false);
2170
- return;
2171
- }
2172
- setSuggestions(drilldownSuggestions);
2173
- setIsOpen(true);
2174
- }, [
2175
- api,
2176
- countryIso,
2177
- populate
2178
- ]);
2179
- return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
2180
- ref: containerRef,
2181
- className: "relative",
2182
- children: [
2183
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_src.Input, {
2184
- type: "text",
2185
- ref: field.ref,
2186
- value: field.value ?? "",
2187
- onChange: handleChange,
2188
- onBlur: field.onBlur,
2189
- placeholder,
2190
- disabled
2191
- }),
2192
- isOpen && needsCountry && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
2193
- className: "bg-muted text-foreground absolute z-50 mt-1 w-full rounded-md px-3 py-2 text-sm shadow-lg",
2194
- children: "Please select a country first to enable address suggestions"
2195
- }),
2196
- isOpen && !needsCountry && suggestions.length > 0 && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
2197
- className: "bg-background text-foreground border-border absolute z-50 mt-1 max-h-60 w-full overflow-y-auto rounded-md border shadow-lg",
2198
- children: suggestions.map((s) => /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("button", {
2199
- type: "button",
2200
- onClick: () => {
2201
- handleClick(s).catch((err) => {
2202
- console.error("Address autocomplete click failed:", err);
2203
- });
2204
- },
2205
- className: "hover:bg-accent block w-full cursor-pointer px-3 py-2 text-left text-sm",
2206
- children: [s.text, s.needsDetailLookup ? " →" : ""]
2207
- }, s.id))
2208
- })
2209
- ]
2210
- });
2211
- }
2212
- //#endregion
2213
- Object.defineProperty(exports, "AddressAutocompleteInput", {
2214
- enumerable: true,
2215
- get: function() {
2216
- return AddressAutocompleteInput;
2217
- }
2218
- });
2219
- Object.defineProperty(exports, "AddressFormDialog", {
2220
- enumerable: true,
2221
- get: function() {
2222
- return AddressFormDialog;
2223
- }
2224
- });
2225
- Object.defineProperty(exports, "ConfirmActionDialog", {
2226
- enumerable: true,
2227
- get: function() {
2228
- return ConfirmActionDialog;
2229
- }
2230
- });
2231
- Object.defineProperty(exports, "CreditCardFormDialog", {
2232
- enumerable: true,
2233
- get: function() {
2234
- return CreditCardFormDialog;
2235
- }
2236
- });
2237
- Object.defineProperty(exports, "EditPaymentMethodDialog", {
2238
- enumerable: true,
2239
- get: function() {
2240
- return EditPaymentMethodDialog;
2241
- }
2242
- });
2243
- Object.defineProperty(exports, "EllipsesDropdown", {
2244
- enumerable: true,
2245
- get: function() {
2246
- return EllipsesDropdown;
2247
- }
2248
- });
2249
- Object.defineProperty(exports, "FluidPayCoreProvider", {
2250
- enumerable: true,
2251
- get: function() {
2252
- return FluidPayCoreProvider;
2253
- }
2254
- });
2255
- Object.defineProperty(exports, "PaymentIcon", {
2256
- enumerable: true,
2257
- get: function() {
2258
- return PaymentIcon;
2259
- }
2260
- });
2261
- Object.defineProperty(exports, "ProfileTranslationBridge", {
2262
- enumerable: true,
2263
- get: function() {
2264
- return ProfileTranslationBridge;
2265
- }
2266
- });
2267
- Object.defineProperty(exports, "ProfileUIProvider", {
2268
- enumerable: true,
2269
- get: function() {
2270
- return ProfileUIProvider;
2271
- }
2272
- });
2273
- Object.defineProperty(exports, "UserInfoDialog", {
2274
- enumerable: true,
2275
- get: function() {
2276
- return UserInfoDialog;
2277
- }
2278
- });
2279
- Object.defineProperty(exports, "createFluidPayApiAdapter", {
2280
- enumerable: true,
2281
- get: function() {
2282
- return createFluidPayApiAdapter;
2283
- }
2284
- });
2285
- Object.defineProperty(exports, "getCardDisplayName", {
2286
- enumerable: true,
2287
- get: function() {
2288
- return getCardDisplayName;
2289
- }
2290
- });
2291
- Object.defineProperty(exports, "getCardExpiry", {
2292
- enumerable: true,
2293
- get: function() {
2294
- return getCardExpiry;
2295
- }
2296
- });
2297
- Object.defineProperty(exports, "mapToFluidPayPaymentMethod", {
2298
- enumerable: true,
2299
- get: function() {
2300
- return mapToFluidPayPaymentMethod;
2301
- }
2302
- });
2303
- Object.defineProperty(exports, "useProfileTranslation", {
2304
- enumerable: true,
2305
- get: function() {
2306
- return useProfileTranslation;
2307
- }
2308
- });
2309
-
2310
- //# sourceMappingURL=AddressAutocompleteInput-DmsSlPVz.cjs.map