@oxyhq/services 5.18.2 → 5.18.3

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 (148) hide show
  1. package/lib/commonjs/core/mixins/index.js +36 -13
  2. package/lib/commonjs/core/mixins/index.js.map +1 -1
  3. package/lib/commonjs/index.js +8 -0
  4. package/lib/commonjs/index.js.map +1 -1
  5. package/lib/commonjs/ui/client.js +170 -0
  6. package/lib/commonjs/ui/client.js.map +1 -0
  7. package/lib/commonjs/ui/components/profile/EditFieldModal.js +412 -0
  8. package/lib/commonjs/ui/components/profile/EditFieldModal.js.map +1 -0
  9. package/lib/commonjs/ui/context/OxyContext.js +63 -1
  10. package/lib/commonjs/ui/context/OxyContext.js.map +1 -1
  11. package/lib/commonjs/ui/hooks/useAuth.js +115 -0
  12. package/lib/commonjs/ui/hooks/useAuth.js.map +1 -0
  13. package/lib/commonjs/ui/hooks/useSettingToggle.js +7 -1
  14. package/lib/commonjs/ui/hooks/useSettingToggle.js.map +1 -1
  15. package/lib/commonjs/ui/hooks/useWebSSO.js +75 -0
  16. package/lib/commonjs/ui/hooks/useWebSSO.js.map +1 -0
  17. package/lib/commonjs/ui/index.js +17 -2
  18. package/lib/commonjs/ui/index.js.map +1 -1
  19. package/lib/commonjs/ui/screens/PrivacySettingsScreen.js +59 -65
  20. package/lib/commonjs/ui/screens/PrivacySettingsScreen.js.map +1 -1
  21. package/lib/commonjs/ui/screens/SearchSettingsScreen.js +38 -58
  22. package/lib/commonjs/ui/screens/SearchSettingsScreen.js.map +1 -1
  23. package/lib/commonjs/ui/server.js +105 -0
  24. package/lib/commonjs/ui/server.js.map +1 -0
  25. package/lib/commonjs/ui/utils/iconNames.js +133 -0
  26. package/lib/commonjs/ui/utils/iconNames.js.map +1 -0
  27. package/lib/commonjs/ui/utils/sessionHelpers.js +7 -0
  28. package/lib/commonjs/ui/utils/sessionHelpers.js.map +1 -1
  29. package/lib/commonjs/utils/requestUtils.js +4 -3
  30. package/lib/commonjs/utils/requestUtils.js.map +1 -1
  31. package/lib/module/core/mixins/index.js +36 -13
  32. package/lib/module/core/mixins/index.js.map +1 -1
  33. package/lib/module/index.js +2 -2
  34. package/lib/module/index.js.map +1 -1
  35. package/lib/module/ui/client.js +47 -0
  36. package/lib/module/ui/client.js.map +1 -0
  37. package/lib/module/ui/components/profile/EditFieldModal.js +406 -0
  38. package/lib/module/ui/components/profile/EditFieldModal.js.map +1 -0
  39. package/lib/module/ui/context/OxyContext.js +63 -1
  40. package/lib/module/ui/context/OxyContext.js.map +1 -1
  41. package/lib/module/ui/hooks/useAuth.js +106 -0
  42. package/lib/module/ui/hooks/useAuth.js.map +1 -0
  43. package/lib/module/ui/hooks/useSettingToggle.js +7 -1
  44. package/lib/module/ui/hooks/useSettingToggle.js.map +1 -1
  45. package/lib/module/ui/hooks/useWebSSO.js +71 -0
  46. package/lib/module/ui/hooks/useWebSSO.js.map +1 -0
  47. package/lib/module/ui/index.js +17 -3
  48. package/lib/module/ui/index.js.map +1 -1
  49. package/lib/module/ui/screens/PrivacySettingsScreen.js +59 -65
  50. package/lib/module/ui/screens/PrivacySettingsScreen.js.map +1 -1
  51. package/lib/module/ui/screens/SearchSettingsScreen.js +39 -59
  52. package/lib/module/ui/screens/SearchSettingsScreen.js.map +1 -1
  53. package/lib/module/ui/server.js +65 -0
  54. package/lib/module/ui/server.js.map +1 -0
  55. package/lib/module/ui/utils/iconNames.js +124 -0
  56. package/lib/module/ui/utils/iconNames.js.map +1 -0
  57. package/lib/module/ui/utils/sessionHelpers.js +7 -0
  58. package/lib/module/ui/utils/sessionHelpers.js.map +1 -1
  59. package/lib/module/utils/requestUtils.js +4 -2
  60. package/lib/module/utils/requestUtils.js.map +1 -1
  61. package/lib/typescript/commonjs/core/mixins/index.d.ts +18 -1115
  62. package/lib/typescript/commonjs/core/mixins/index.d.ts.map +1 -1
  63. package/lib/typescript/commonjs/index.d.ts +2 -0
  64. package/lib/typescript/commonjs/index.d.ts.map +1 -1
  65. package/lib/typescript/commonjs/ui/client.d.ts +33 -0
  66. package/lib/typescript/commonjs/ui/client.d.ts.map +1 -0
  67. package/lib/typescript/commonjs/ui/components/profile/EditFieldModal.d.ts +110 -0
  68. package/lib/typescript/commonjs/ui/components/profile/EditFieldModal.d.ts.map +1 -0
  69. package/lib/typescript/commonjs/ui/context/OxyContext.d.ts +3 -0
  70. package/lib/typescript/commonjs/ui/context/OxyContext.d.ts.map +1 -1
  71. package/lib/typescript/commonjs/ui/hooks/mutations/useAccountMutations.d.ts +3 -3
  72. package/lib/typescript/commonjs/ui/hooks/queries/useAccountQueries.d.ts +6 -10
  73. package/lib/typescript/commonjs/ui/hooks/queries/useAccountQueries.d.ts.map +1 -1
  74. package/lib/typescript/commonjs/ui/hooks/queries/useSecurityQueries.d.ts +1 -1
  75. package/lib/typescript/commonjs/ui/hooks/queries/useSecurityQueries.d.ts.map +1 -1
  76. package/lib/typescript/commonjs/ui/hooks/queries/useServicesQueries.d.ts +3 -5
  77. package/lib/typescript/commonjs/ui/hooks/queries/useServicesQueries.d.ts.map +1 -1
  78. package/lib/typescript/commonjs/ui/hooks/useAssets.d.ts +1 -1
  79. package/lib/typescript/commonjs/ui/hooks/useAuth.d.ts +69 -0
  80. package/lib/typescript/commonjs/ui/hooks/useAuth.d.ts.map +1 -0
  81. package/lib/typescript/commonjs/ui/hooks/useSettingToggle.d.ts +4 -2
  82. package/lib/typescript/commonjs/ui/hooks/useSettingToggle.d.ts.map +1 -1
  83. package/lib/typescript/commonjs/ui/hooks/useWebSSO.d.ts +34 -0
  84. package/lib/typescript/commonjs/ui/hooks/useWebSSO.d.ts.map +1 -0
  85. package/lib/typescript/commonjs/ui/index.d.ts +2 -2
  86. package/lib/typescript/commonjs/ui/index.d.ts.map +1 -1
  87. package/lib/typescript/commonjs/ui/screens/PrivacySettingsScreen.d.ts.map +1 -1
  88. package/lib/typescript/commonjs/ui/screens/SearchSettingsScreen.d.ts.map +1 -1
  89. package/lib/typescript/commonjs/ui/server.d.ts +43 -0
  90. package/lib/typescript/commonjs/ui/server.d.ts.map +1 -0
  91. package/lib/typescript/commonjs/ui/utils/iconNames.d.ts +112 -0
  92. package/lib/typescript/commonjs/ui/utils/iconNames.d.ts.map +1 -0
  93. package/lib/typescript/commonjs/ui/utils/sessionHelpers.d.ts +8 -3
  94. package/lib/typescript/commonjs/ui/utils/sessionHelpers.d.ts.map +1 -1
  95. package/lib/typescript/commonjs/utils/requestUtils.d.ts +3 -1
  96. package/lib/typescript/commonjs/utils/requestUtils.d.ts.map +1 -1
  97. package/lib/typescript/module/core/mixins/index.d.ts +18 -1115
  98. package/lib/typescript/module/core/mixins/index.d.ts.map +1 -1
  99. package/lib/typescript/module/index.d.ts +2 -0
  100. package/lib/typescript/module/index.d.ts.map +1 -1
  101. package/lib/typescript/module/ui/client.d.ts +33 -0
  102. package/lib/typescript/module/ui/client.d.ts.map +1 -0
  103. package/lib/typescript/module/ui/components/profile/EditFieldModal.d.ts +110 -0
  104. package/lib/typescript/module/ui/components/profile/EditFieldModal.d.ts.map +1 -0
  105. package/lib/typescript/module/ui/context/OxyContext.d.ts +3 -0
  106. package/lib/typescript/module/ui/context/OxyContext.d.ts.map +1 -1
  107. package/lib/typescript/module/ui/hooks/mutations/useAccountMutations.d.ts +3 -3
  108. package/lib/typescript/module/ui/hooks/queries/useAccountQueries.d.ts +6 -10
  109. package/lib/typescript/module/ui/hooks/queries/useAccountQueries.d.ts.map +1 -1
  110. package/lib/typescript/module/ui/hooks/queries/useSecurityQueries.d.ts +1 -1
  111. package/lib/typescript/module/ui/hooks/queries/useSecurityQueries.d.ts.map +1 -1
  112. package/lib/typescript/module/ui/hooks/queries/useServicesQueries.d.ts +3 -5
  113. package/lib/typescript/module/ui/hooks/queries/useServicesQueries.d.ts.map +1 -1
  114. package/lib/typescript/module/ui/hooks/useAssets.d.ts +1 -1
  115. package/lib/typescript/module/ui/hooks/useAuth.d.ts +69 -0
  116. package/lib/typescript/module/ui/hooks/useAuth.d.ts.map +1 -0
  117. package/lib/typescript/module/ui/hooks/useSettingToggle.d.ts +4 -2
  118. package/lib/typescript/module/ui/hooks/useSettingToggle.d.ts.map +1 -1
  119. package/lib/typescript/module/ui/hooks/useWebSSO.d.ts +34 -0
  120. package/lib/typescript/module/ui/hooks/useWebSSO.d.ts.map +1 -0
  121. package/lib/typescript/module/ui/index.d.ts +2 -2
  122. package/lib/typescript/module/ui/index.d.ts.map +1 -1
  123. package/lib/typescript/module/ui/screens/PrivacySettingsScreen.d.ts.map +1 -1
  124. package/lib/typescript/module/ui/screens/SearchSettingsScreen.d.ts.map +1 -1
  125. package/lib/typescript/module/ui/server.d.ts +43 -0
  126. package/lib/typescript/module/ui/server.d.ts.map +1 -0
  127. package/lib/typescript/module/ui/utils/iconNames.d.ts +112 -0
  128. package/lib/typescript/module/ui/utils/iconNames.d.ts.map +1 -0
  129. package/lib/typescript/module/ui/utils/sessionHelpers.d.ts +8 -3
  130. package/lib/typescript/module/ui/utils/sessionHelpers.d.ts.map +1 -1
  131. package/lib/typescript/module/utils/requestUtils.d.ts +3 -1
  132. package/lib/typescript/module/utils/requestUtils.d.ts.map +1 -1
  133. package/package.json +1 -1
  134. package/src/core/mixins/index.ts +57 -43
  135. package/src/index.ts +3 -1
  136. package/src/ui/client.ts +55 -0
  137. package/src/ui/components/profile/EditFieldModal.tsx +465 -0
  138. package/src/ui/context/OxyContext.tsx +69 -0
  139. package/src/ui/hooks/useAuth.ts +159 -0
  140. package/src/ui/hooks/useSettingToggle.ts +7 -3
  141. package/src/ui/hooks/useWebSSO.ts +93 -0
  142. package/src/ui/index.ts +17 -2
  143. package/src/ui/screens/PrivacySettingsScreen.tsx +54 -63
  144. package/src/ui/screens/SearchSettingsScreen.tsx +42 -64
  145. package/src/ui/server.ts +70 -0
  146. package/src/ui/utils/iconNames.ts +136 -0
  147. package/src/ui/utils/sessionHelpers.ts +10 -3
  148. package/src/utils/requestUtils.ts +10 -7
@@ -2,7 +2,7 @@
2
2
 
3
3
  /**
4
4
  * Centralized mixin exports and composition helper
5
- *
5
+ *
6
6
  * This module provides a clean way to compose all mixins
7
7
  * and ensures consistent ordering for better maintainability
8
8
  */
@@ -26,24 +26,47 @@ import { OxyServicesSecurityMixin } from "./OxyServices.security.js";
26
26
  import { OxyServicesUtilityMixin } from "./OxyServices.utility.js";
27
27
  import { OxyServicesFeaturesMixin } from "./OxyServices.features.js";
28
28
 
29
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
30
+
29
31
  /**
30
- * Composes all OxyServices mixins in the correct order
32
+ * Mixin pipeline - applied in order from first to last.
31
33
  *
32
- * Order matters for mixins - dependencies should be applied first.
33
- * This function ensures consistent composition across the codebase.
34
+ * Order matters for dependencies:
35
+ * 1. Base auth mixin first (required by all others)
36
+ * 2. Cross-domain auth mixins (FedCM, Popup, Redirect)
37
+ * 3. User mixin (requires auth)
38
+ * 4. Feature mixins (can depend on user)
39
+ * 5. Utility mixin last (augments all)
34
40
  *
35
- * New cross-domain auth mixins added:
36
- * - FedCM: Modern browser-native identity federation (Google-style)
37
- * - Popup: OAuth2-style popup authentication
38
- * - Redirect: Traditional redirect-based authentication
41
+ * To add a new mixin: insert it at the appropriate position in this array.
42
+ */
43
+ const MIXIN_PIPELINE = [
44
+ // Base authentication
45
+ OxyServicesAuthMixin,
46
+ // Cross-domain authentication (web-only)
47
+ // - FedCM: Modern browser-native identity federation (Google-style)
48
+ // - Popup: OAuth2-style popup authentication
49
+ // - Redirect: Traditional redirect-based authentication
50
+ OxyServicesFedCMMixin, OxyServicesPopupAuthMixin, OxyServicesRedirectAuthMixin,
51
+ // User management (requires auth)
52
+ OxyServicesUserMixin, OxyServicesPrivacyMixin,
53
+ // Feature mixins
54
+ OxyServicesLanguageMixin, OxyServicesPaymentMixin, OxyServicesKarmaMixin, OxyServicesAssetsMixin, OxyServicesDeveloperMixin, OxyServicesLocationMixin, OxyServicesAnalyticsMixin, OxyServicesDevicesMixin, OxyServicesSecurityMixin, OxyServicesFeaturesMixin,
55
+ // Utility (last, can use all above)
56
+ OxyServicesUtilityMixin];
57
+
58
+ /**
59
+ * Composes all OxyServices mixins using a pipeline pattern.
60
+ *
61
+ * This is equivalent to the nested calls but more readable and maintainable.
62
+ * Adding a new mixin: just add it to MIXIN_PIPELINE at the appropriate position.
39
63
  *
40
64
  * @returns The fully composed OxyServices class with all mixins applied
41
65
  */
42
66
  export function composeOxyServices() {
43
- return OxyServicesUtilityMixin(OxyServicesFeaturesMixin(OxyServicesSecurityMixin(OxyServicesDevicesMixin(OxyServicesAnalyticsMixin(OxyServicesLocationMixin(OxyServicesDeveloperMixin(OxyServicesAssetsMixin(OxyServicesKarmaMixin(OxyServicesPaymentMixin(OxyServicesLanguageMixin(OxyServicesPrivacyMixin(OxyServicesUserMixin(
44
- // Cross-domain authentication mixins (web-only)
45
- OxyServicesRedirectAuthMixin(OxyServicesPopupAuthMixin(OxyServicesFedCMMixin(
46
- // Base authentication mixin
47
- OxyServicesAuthMixin(OxyServicesBase)))))))))))))))));
67
+ return MIXIN_PIPELINE.reduce((Base, mixin) => mixin(Base), OxyServicesBase);
48
68
  }
69
+
70
+ // Export the pipeline for testing/debugging
71
+ export { MIXIN_PIPELINE };
49
72
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["OxyServicesBase","OxyServicesAuthMixin","OxyServicesFedCMMixin","OxyServicesPopupAuthMixin","OxyServicesRedirectAuthMixin","OxyServicesUserMixin","OxyServicesPrivacyMixin","OxyServicesLanguageMixin","OxyServicesPaymentMixin","OxyServicesKarmaMixin","OxyServicesAssetsMixin","OxyServicesDeveloperMixin","OxyServicesLocationMixin","OxyServicesAnalyticsMixin","OxyServicesDevicesMixin","OxyServicesSecurityMixin","OxyServicesUtilityMixin","OxyServicesFeaturesMixin","composeOxyServices"],"sourceRoot":"../../../../src","sources":["core/mixins/index.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASA,eAAe,QAAQ,wBAAqB;AACrD,SAASC,oBAAoB,QAAQ,uBAAoB;AACzD,SAASC,qBAAqB,QAAQ,wBAAqB;AAC3D,SAASC,yBAAyB,QAAQ,wBAAqB;AAC/D,SAASC,4BAA4B,QAAQ,2BAAwB;AACrE,SAASC,oBAAoB,QAAQ,uBAAoB;AACzD,SAASC,uBAAuB,QAAQ,0BAAuB;AAC/D,SAASC,wBAAwB,QAAQ,2BAAwB;AACjE,SAASC,uBAAuB,QAAQ,0BAAuB;AAC/D,SAASC,qBAAqB,QAAQ,wBAAqB;AAC3D,SAASC,sBAAsB,QAAQ,yBAAsB;AAC7D,SAASC,yBAAyB,QAAQ,4BAAyB;AACnE,SAASC,wBAAwB,QAAQ,2BAAwB;AACjE,SAASC,yBAAyB,QAAQ,4BAAyB;AACnE,SAASC,uBAAuB,QAAQ,0BAAuB;AAC/D,SAASC,wBAAwB,QAAQ,2BAAwB;AACjE,SAASC,uBAAuB,QAAQ,0BAAuB;AAC/D,SAASC,wBAAwB,QAAQ,2BAAwB;;AAEjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,kBAAkBA,CAAA,EAAG;EACnC,OAAOF,uBAAuB,CAC5BC,wBAAwB,CACtBF,wBAAwB,CACtBD,uBAAuB,CACrBD,yBAAyB,CACvBD,wBAAwB,CACtBD,yBAAyB,CACvBD,sBAAsB,CACpBD,qBAAqB,CACnBD,uBAAuB,CACrBD,wBAAwB,CACtBD,uBAAuB,CACrBD,oBAAoB;EAClB;EACAD,4BAA4B,CAC1BD,yBAAyB,CACvBD,qBAAqB;EACnB;EACAD,oBAAoB,CAACD,eAAe,CACtC,CACF,CACF,CACF,CACF,CACF,CACF,CACF,CACF,CACF,CACF,CACF,CACF,CACF,CACF,CACF,CAAC;AACH","ignoreList":[]}
1
+ {"version":3,"names":["OxyServicesBase","OxyServicesAuthMixin","OxyServicesFedCMMixin","OxyServicesPopupAuthMixin","OxyServicesRedirectAuthMixin","OxyServicesUserMixin","OxyServicesPrivacyMixin","OxyServicesLanguageMixin","OxyServicesPaymentMixin","OxyServicesKarmaMixin","OxyServicesAssetsMixin","OxyServicesDeveloperMixin","OxyServicesLocationMixin","OxyServicesAnalyticsMixin","OxyServicesDevicesMixin","OxyServicesSecurityMixin","OxyServicesUtilityMixin","OxyServicesFeaturesMixin","MIXIN_PIPELINE","composeOxyServices","reduce","Base","mixin"],"sourceRoot":"../../../../src","sources":["core/mixins/index.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASA,eAAe,QAAQ,wBAAqB;AACrD,SAASC,oBAAoB,QAAQ,uBAAoB;AACzD,SAASC,qBAAqB,QAAQ,wBAAqB;AAC3D,SAASC,yBAAyB,QAAQ,wBAAqB;AAC/D,SAASC,4BAA4B,QAAQ,2BAAwB;AACrE,SAASC,oBAAoB,QAAQ,uBAAoB;AACzD,SAASC,uBAAuB,QAAQ,0BAAuB;AAC/D,SAASC,wBAAwB,QAAQ,2BAAwB;AACjE,SAASC,uBAAuB,QAAQ,0BAAuB;AAC/D,SAASC,qBAAqB,QAAQ,wBAAqB;AAC3D,SAASC,sBAAsB,QAAQ,yBAAsB;AAC7D,SAASC,yBAAyB,QAAQ,4BAAyB;AACnE,SAASC,wBAAwB,QAAQ,2BAAwB;AACjE,SAASC,yBAAyB,QAAQ,4BAAyB;AACnE,SAASC,uBAAuB,QAAQ,0BAAuB;AAC/D,SAASC,wBAAwB,QAAQ,2BAAwB;AACjE,SAASC,uBAAuB,QAAQ,0BAAuB;AAC/D,SAASC,wBAAwB,QAAQ,2BAAwB;;AAEjE;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMC,cAA+B,GAAG;AACpC;AACAjB,oBAAoB;AAEpB;AACA;AACA;AACA;AACAC,qBAAqB,EACrBC,yBAAyB,EACzBC,4BAA4B;AAE5B;AACAC,oBAAoB,EACpBC,uBAAuB;AAEvB;AACAC,wBAAwB,EACxBC,uBAAuB,EACvBC,qBAAqB,EACrBC,sBAAsB,EACtBC,yBAAyB,EACzBC,wBAAwB,EACxBC,yBAAyB,EACzBC,uBAAuB,EACvBC,wBAAwB,EACxBE,wBAAwB;AAExB;AACAD,uBAAuB,CAC1B;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASG,kBAAkBA,CAAA,EAAG;EACjC,OAAOD,cAAc,CAACE,MAAM,CACxB,CAACC,IAAI,EAAEC,KAAK,KAAKA,KAAK,CAACD,IAAI,CAAC,EAC5BrB,eACJ,CAAC;AACL;;AAEA;AACA,SAASkB,cAAc","ignoreList":[]}
@@ -21,9 +21,9 @@ export { OXY_CLOUD_URL, oxyClient } from "./core/index.js";
21
21
 
22
22
  // Cross-domain authentication (Web SSO via FedCM/popup/redirect)
23
23
  export { CrossDomainAuth, createCrossDomainAuth } from "./core/index.js";
24
- // React context
24
+ // React context and auth hooks
25
25
  export { useOxy } from "./ui/context/OxyContext.js";
26
-
26
+ export { useAuth } from "./ui/hooks/useAuth.js";
27
27
  // Streamlined provider with built-in bottom sheet
28
28
  export { default as OxyProvider } from "./ui/components/OxyProvider.js";
29
29
 
@@ -1 +1 @@
1
- {"version":3,"names":["KeyManager","SignatureService","RecoveryPhraseService","OxyServices","OxyAuthenticationError","OxyAuthenticationTimeoutError","OXY_CLOUD_URL","oxyClient","CrossDomainAuth","createCrossDomainAuth","useOxy","default","OxyProvider","DeviceManager","SUPPORTED_LANGUAGES","getLanguageMetadata","getLanguageName","getNativeLanguageName","normalizeLanguageCode","SECURITY_EVENT_SEVERITY_MAP","useAuthStore","useAssetStore","useAssets","useAssetsStore","useAsset","useUploadProgress","useAssetLoading","useAssetErrors","useAssetsByApp","useAssetsByEntity","useAssetUsageCount","useIsAssetLinked","useSessionSocket","setOxyAssetInstance","useFileDownloadUrl","setOxyFileUrlInstance","useUserProfile","useUserProfiles","useCurrentUser","useUserById","useUserByUsername","useUsersBySessions","usePrivacySettings","useSessions","useSession","useDeviceSessions","useUserDevices","useSecurityInfo","useSecurityActivity","useRecentSecurityActivity","useUpdateProfile","useUploadAvatar","useUpdateAccountSettings","useUpdatePrivacySettings","useUploadFile","useSwitchSession","useLogoutSession","useLogoutAll","useUpdateDeviceName","useRemoveDevice","OxySignInButton","OxyLogo","FollowButton","ErrorCodes","createApiError","handleHttpError","validateRequiredFields","retryWithBackoff","logger","LogLevel","LogContext","logAuth","logApi","logSession","logUser","logDevice","logPayment","logPerformance"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,OAAO,sBAAmB;;AAE1B;AACA,SACEA,UAAU,EACVC,gBAAgB,EAChBC,qBAAqB,QAChB,mBAAU;;AAEjB;AACA,SAASC,WAAW,EAAEC,sBAAsB,EAAEC,6BAA6B,QAAQ,iBAAQ;AAC3F,SAASC,aAAa,EAAEC,SAAS,QAAQ,iBAAQ;;AAEjD;AACA,SAASC,eAAe,EAAEC,qBAAqB,QAAQ,iBAAQ;AAS/D;AACA,SAASC,MAAM,QAAQ,4BAAyB;;AAEhD;AACA,SAASC,OAAO,IAAIC,WAAW,QAAQ,gCAA6B;;AAEpE;AACA,SAASC,aAAa,QAAQ,0BAAuB;AAGrD;AACA,SACEC,mBAAmB,EACnBC,mBAAmB,EACnBC,eAAe,EACfC,qBAAqB,EACrBC,qBAAqB,QAChB,0BAAuB;;AAG9B;;AA6DA;AACA,SAASC,2BAA2B,QAAQ,wBAAqB;AAQjE;AACA,SAASC,YAAY,QAAQ,0BAAuB;AACpD,SACEC,aAAa,EACbC,SAAS,IAAIC,cAAc,EAC3BC,QAAQ,EACRC,iBAAiB,EACjBC,eAAe,EACfC,cAAc,EACdC,cAAc,EACdC,iBAAiB,EACjBC,kBAAkB,EAClBC,gBAAgB,QACX,2BAAwB;;AAE/B;AACA,SAASC,gBAAgB,QAAQ,gCAA6B;AAC9D,SAASV,SAAS,EAAEW,mBAAmB,QAAQ,yBAAsB;AACrE,SAASC,kBAAkB,EAAEC,qBAAqB,QAAQ,kCAA+B;;AAEzF;AACA;AACE;AACAC,cAAc,EACdC,eAAe,EACfC,cAAc,EACdC,WAAW,EACXC,iBAAiB,EACjBC,kBAAkB,EAClBC,kBAAkB;AAClB;AACAC,WAAW,EACXC,UAAU,EACVC,iBAAiB,EACjBC,cAAc,EACdC,eAAe;AACf;AACAC,mBAAmB,EACnBC,yBAAyB,QACpB,6BAAoB;;AAE3B;AACA;AACE;AACAC,gBAAgB,EAChBC,eAAe,EACfC,wBAAwB,EACxBC,wBAAwB,EACxBC,aAAa;AACb;AACAC,gBAAgB,EAChBC,gBAAgB,EAChBC,YAAY,EACZC,mBAAmB,EACnBC,eAAe,QACV,+BAAsB;;AAE7B;AACA,SAASC,eAAe,QAAQ,oCAAiC;AACjE,SAASC,OAAO,EAAEC,YAAY,QAAQ,eAAM;;AAE5C;AACA,cAAc,qBAAkB;AAChC,SACEC,UAAU,EACVC,cAAc,EACdC,eAAe,EACfC,sBAAsB,EACtBC,gBAAgB,QACX,uBAAoB;AAC3B,cAAc,4BAAyB;AACvC,SACEC,MAAM,EACNC,QAAQ,EACRC,UAAU,EACVC,OAAO,EACPC,MAAM,EACNC,UAAU,EACVC,OAAO,EACPC,SAAS,EACTC,UAAU,EACVC,cAAc,QACT,wBAAqB;AAC5B,cAAc,uBAAoB;AAClC,cAAc,sBAAmB","ignoreList":[]}
1
+ {"version":3,"names":["KeyManager","SignatureService","RecoveryPhraseService","OxyServices","OxyAuthenticationError","OxyAuthenticationTimeoutError","OXY_CLOUD_URL","oxyClient","CrossDomainAuth","createCrossDomainAuth","useOxy","useAuth","default","OxyProvider","DeviceManager","SUPPORTED_LANGUAGES","getLanguageMetadata","getLanguageName","getNativeLanguageName","normalizeLanguageCode","SECURITY_EVENT_SEVERITY_MAP","useAuthStore","useAssetStore","useAssets","useAssetsStore","useAsset","useUploadProgress","useAssetLoading","useAssetErrors","useAssetsByApp","useAssetsByEntity","useAssetUsageCount","useIsAssetLinked","useSessionSocket","setOxyAssetInstance","useFileDownloadUrl","setOxyFileUrlInstance","useUserProfile","useUserProfiles","useCurrentUser","useUserById","useUserByUsername","useUsersBySessions","usePrivacySettings","useSessions","useSession","useDeviceSessions","useUserDevices","useSecurityInfo","useSecurityActivity","useRecentSecurityActivity","useUpdateProfile","useUploadAvatar","useUpdateAccountSettings","useUpdatePrivacySettings","useUploadFile","useSwitchSession","useLogoutSession","useLogoutAll","useUpdateDeviceName","useRemoveDevice","OxySignInButton","OxyLogo","FollowButton","ErrorCodes","createApiError","handleHttpError","validateRequiredFields","retryWithBackoff","logger","LogLevel","LogContext","logAuth","logApi","logSession","logUser","logDevice","logPayment","logPerformance"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,OAAO,sBAAmB;;AAE1B;AACA,SACEA,UAAU,EACVC,gBAAgB,EAChBC,qBAAqB,QAChB,mBAAU;;AAEjB;AACA,SAASC,WAAW,EAAEC,sBAAsB,EAAEC,6BAA6B,QAAQ,iBAAQ;AAC3F,SAASC,aAAa,EAAEC,SAAS,QAAQ,iBAAQ;;AAEjD;AACA,SAASC,eAAe,EAAEC,qBAAqB,QAAQ,iBAAQ;AAS/D;AACA,SAASC,MAAM,QAAQ,4BAAyB;AAChD,SAASC,OAAO,QAAQ,uBAAoB;AAG5C;AACA,SAASC,OAAO,IAAIC,WAAW,QAAQ,gCAA6B;;AAEpE;AACA,SAASC,aAAa,QAAQ,0BAAuB;AAGrD;AACA,SACEC,mBAAmB,EACnBC,mBAAmB,EACnBC,eAAe,EACfC,qBAAqB,EACrBC,qBAAqB,QAChB,0BAAuB;;AAG9B;;AA6DA;AACA,SAASC,2BAA2B,QAAQ,wBAAqB;AAQjE;AACA,SAASC,YAAY,QAAQ,0BAAuB;AACpD,SACEC,aAAa,EACbC,SAAS,IAAIC,cAAc,EAC3BC,QAAQ,EACRC,iBAAiB,EACjBC,eAAe,EACfC,cAAc,EACdC,cAAc,EACdC,iBAAiB,EACjBC,kBAAkB,EAClBC,gBAAgB,QACX,2BAAwB;;AAE/B;AACA,SAASC,gBAAgB,QAAQ,gCAA6B;AAC9D,SAASV,SAAS,EAAEW,mBAAmB,QAAQ,yBAAsB;AACrE,SAASC,kBAAkB,EAAEC,qBAAqB,QAAQ,kCAA+B;;AAEzF;AACA;AACE;AACAC,cAAc,EACdC,eAAe,EACfC,cAAc,EACdC,WAAW,EACXC,iBAAiB,EACjBC,kBAAkB,EAClBC,kBAAkB;AAClB;AACAC,WAAW,EACXC,UAAU,EACVC,iBAAiB,EACjBC,cAAc,EACdC,eAAe;AACf;AACAC,mBAAmB,EACnBC,yBAAyB,QACpB,6BAAoB;;AAE3B;AACA;AACE;AACAC,gBAAgB,EAChBC,eAAe,EACfC,wBAAwB,EACxBC,wBAAwB,EACxBC,aAAa;AACb;AACAC,gBAAgB,EAChBC,gBAAgB,EAChBC,YAAY,EACZC,mBAAmB,EACnBC,eAAe,QACV,+BAAsB;;AAE7B;AACA,SAASC,eAAe,QAAQ,oCAAiC;AACjE,SAASC,OAAO,EAAEC,YAAY,QAAQ,eAAM;;AAE5C;AACA,cAAc,qBAAkB;AAChC,SACEC,UAAU,EACVC,cAAc,EACdC,eAAe,EACfC,sBAAsB,EACtBC,gBAAgB,QACX,uBAAoB;AAC3B,cAAc,4BAAyB;AACvC,SACEC,MAAM,EACNC,QAAQ,EACRC,UAAU,EACVC,OAAO,EACPC,MAAM,EACNC,UAAU,EACVC,OAAO,EACPC,SAAS,EACTC,UAAU,EACVC,cAAc,QACT,wBAAqB;AAC5B,cAAc,uBAAoB;AAClC,cAAc,sBAAmB","ignoreList":[]}
@@ -0,0 +1,47 @@
1
+ "use strict";
2
+
3
+ /**
4
+ * Client-only UI exports (tree-shakeable)
5
+ *
6
+ * Import from this module for client-side bundles where tree-shaking is important.
7
+ * These are direct exports without runtime detection overhead.
8
+ *
9
+ * @example
10
+ * import { OxyProvider, useOxy, Avatar } from '@oxyhq/services/ui/client';
11
+ */
12
+
13
+ // Components
14
+ export { default as OxyProvider } from "./components/OxyProvider.js";
15
+ export { default as OxySignInButton } from "./components/OxySignInButton.js";
16
+ export { default as OxyLogo } from "./components/OxyLogo.js";
17
+ export { default as Avatar } from "./components/Avatar.js";
18
+ export { default as FollowButton } from "./components/FollowButton.js";
19
+ export { default as OxyPayButton } from "./components/OxyPayButton.js";
20
+ export { FontLoader, setupFonts } from "./components/FontLoader.js";
21
+ export { OxyIcon } from "./components/icon/index.js";
22
+
23
+ // Context
24
+ export { useOxy } from "./context/OxyContext.js";
25
+
26
+ // Hooks
27
+ export { useAuth } from "./hooks/useAuth.js";
28
+ export { useFollow } from "./hooks/index.js";
29
+ export { useStorage } from "./hooks/useStorage.js";
30
+ // Screens
31
+ export { default as ProfileScreen } from "./screens/ProfileScreen.js";
32
+
33
+ // Stores
34
+ export { useAuthStore } from "./stores/authStore.js";
35
+ export { useAccountStore } from "./stores/accountStore.js";
36
+
37
+ // Styles
38
+ export { fontFamilies, fontStyles } from "./styles/fonts.js";
39
+
40
+ // Toast
41
+ export { toast } from "../lib/sonner.js";
42
+
43
+ // Core re-exports for convenience
44
+ export { OxyServices } from "../core/index.js";
45
+ // Error handler utilities
46
+ export { handleAuthError, isInvalidSessionError, isTimeoutOrNetworkError, extractErrorMessage } from "./utils/errorHandlers.js";
47
+ //# sourceMappingURL=client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["default","OxyProvider","OxySignInButton","OxyLogo","Avatar","FollowButton","OxyPayButton","FontLoader","setupFonts","OxyIcon","useOxy","useAuth","useFollow","useStorage","ProfileScreen","useAuthStore","useAccountStore","fontFamilies","fontStyles","toast","OxyServices","handleAuthError","isInvalidSessionError","isTimeoutOrNetworkError","extractErrorMessage"],"sourceRoot":"../../../src","sources":["ui/client.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,SAASA,OAAO,IAAIC,WAAW,QAAQ,6BAA0B;AACjE,SAASD,OAAO,IAAIE,eAAe,QAAQ,iCAA8B;AACzE,SAASF,OAAO,IAAIG,OAAO,QAAQ,yBAAsB;AACzD,SAASH,OAAO,IAAII,MAAM,QAAQ,wBAAqB;AACvD,SAASJ,OAAO,IAAIK,YAAY,QAAQ,8BAA2B;AACnE,SAASL,OAAO,IAAIM,YAAY,QAAQ,8BAA2B;AACnE,SAASC,UAAU,EAAEC,UAAU,QAAQ,4BAAyB;AAChE,SAASC,OAAO,QAAQ,4BAAmB;;AAE3C;AACA,SAASC,MAAM,QAAQ,yBAAsB;;AAE7C;AACA,SAASC,OAAO,QAAQ,oBAAiB;AAEzC,SAASC,SAAS,QAAQ,kBAAS;AACnC,SAASC,UAAU,QAAQ,uBAAoB;AAG/C;AACA,SAASb,OAAO,IAAIc,aAAa,QAAQ,4BAAyB;;AAElE;AACA,SAASC,YAAY,QAAQ,uBAAoB;AACjD,SAASC,eAAe,QAAQ,0BAAuB;;AAEvD;AACA,SAASC,YAAY,EAAEC,UAAU,QAAQ,mBAAgB;;AAEzD;AACA,SAASC,KAAK,QAAQ,kBAAe;;AAErC;AACA,SAASC,WAAW,QAAQ,kBAAS;AAGrC;AACA,SACIC,eAAe,EACfC,qBAAqB,EACrBC,uBAAuB,EACvBC,mBAAmB,QAChB,0BAAuB","ignoreList":[]}
@@ -0,0 +1,406 @@
1
+ "use strict";
2
+
3
+ import React, { useState, useEffect, useCallback } from 'react';
4
+ import { View, Text, TextInput, TouchableOpacity, StyleSheet, Modal, Platform, ScrollView } from 'react-native';
5
+ import { Ionicons } from '@expo/vector-icons';
6
+ import { useThemeStyles } from "../../hooks/useThemeStyles.js";
7
+ import { useColorScheme } from "../../hooks/use-color-scheme.js";
8
+ import { useI18n } from "../../hooks/useI18n.js";
9
+ import { fontFamilies } from "../../styles/fonts.js";
10
+ import { useProfileEditing } from "../../hooks/useProfileEditing.js";
11
+
12
+ /**
13
+ * Field configuration for single/multi field variants
14
+ */
15
+
16
+ /**
17
+ * List item for list variant
18
+ */
19
+
20
+ /**
21
+ * Configuration for list variant
22
+ */
23
+
24
+ /**
25
+ * Props for EditFieldModal
26
+ */
27
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
28
+ /**
29
+ * Generic modal component for editing profile fields.
30
+ *
31
+ * Supports three variants:
32
+ * - single: Single text input (username, email, bio)
33
+ * - multi: Multiple text inputs (display name with first/last)
34
+ * - list: Add/remove list items (links, locations)
35
+ *
36
+ * @example
37
+ * // Single field (bio)
38
+ * <EditFieldModal
39
+ * visible={showBioModal}
40
+ * onClose={() => setShowBioModal(false)}
41
+ * title="Bio"
42
+ * variant="single"
43
+ * fields={[{
44
+ * key: 'bio',
45
+ * label: 'Bio',
46
+ * initialValue: user.bio,
47
+ * placeholder: 'Tell people about yourself...',
48
+ * inputProps: { multiline: true, numberOfLines: 6 }
49
+ * }]}
50
+ * onSubmit={async (data) => updateField('bio', data.bio)}
51
+ * />
52
+ *
53
+ * @example
54
+ * // Multi field (display name)
55
+ * <EditFieldModal
56
+ * visible={showNameModal}
57
+ * onClose={() => setShowNameModal(false)}
58
+ * title="Display Name"
59
+ * variant="multi"
60
+ * fields={[
61
+ * { key: 'firstName', label: 'First Name', initialValue: user.name?.first },
62
+ * { key: 'lastName', label: 'Last Name', initialValue: user.name?.last }
63
+ * ]}
64
+ * onSubmit={async (data) => saveProfile({ displayName: data.firstName, lastName: data.lastName })}
65
+ * />
66
+ */
67
+ export function EditFieldModal({
68
+ visible,
69
+ onClose,
70
+ title,
71
+ theme = 'light',
72
+ onSave,
73
+ variant,
74
+ fields = [],
75
+ listConfig,
76
+ onSubmit,
77
+ saveDisabled = false
78
+ }) {
79
+ const {
80
+ t
81
+ } = useI18n();
82
+ const colorScheme = useColorScheme();
83
+ const themeStyles = useThemeStyles(theme || 'light', colorScheme);
84
+ const colors = themeStyles.colors;
85
+ const {
86
+ isSaving
87
+ } = useProfileEditing();
88
+
89
+ // State for field values (single/multi variants)
90
+ const [fieldValues, setFieldValues] = useState({});
91
+ const [fieldErrors, setFieldErrors] = useState({});
92
+
93
+ // State for list items (list variant)
94
+ const [listItems, setListItems] = useState([]);
95
+ const [newItemValue, setNewItemValue] = useState('');
96
+
97
+ // Initialize field values when modal opens
98
+ useEffect(() => {
99
+ if (visible) {
100
+ if (variant === 'list' && listConfig) {
101
+ setListItems(listConfig.items);
102
+ setNewItemValue('');
103
+ } else if (fields.length > 0) {
104
+ const initialValues = {};
105
+ fields.forEach(field => {
106
+ initialValues[field.key] = field.initialValue || '';
107
+ });
108
+ setFieldValues(initialValues);
109
+ setFieldErrors({});
110
+ }
111
+ }
112
+ }, [visible, variant, fields, listConfig]);
113
+
114
+ // Field change handler with validation
115
+ const handleFieldChange = useCallback((key, value) => {
116
+ setFieldValues(prev => ({
117
+ ...prev,
118
+ [key]: value
119
+ }));
120
+
121
+ // Clear error on change
122
+ if (fieldErrors[key]) {
123
+ setFieldErrors(prev => ({
124
+ ...prev,
125
+ [key]: undefined
126
+ }));
127
+ }
128
+ }, [fieldErrors]);
129
+
130
+ // Validate all fields
131
+ const validateFields = useCallback(() => {
132
+ const errors = {};
133
+ let isValid = true;
134
+ fields.forEach(field => {
135
+ if (field.validation) {
136
+ const error = field.validation(fieldValues[field.key] || '');
137
+ if (error) {
138
+ errors[field.key] = error;
139
+ isValid = false;
140
+ }
141
+ }
142
+ });
143
+ setFieldErrors(errors);
144
+ return isValid;
145
+ }, [fields, fieldValues]);
146
+
147
+ // Add item to list
148
+ const handleAddItem = useCallback(() => {
149
+ if (!newItemValue.trim() || !listConfig) return;
150
+ const newItem = listConfig.createItem(newItemValue.trim());
151
+ setListItems(prev => [...prev, newItem]);
152
+ setNewItemValue('');
153
+ }, [newItemValue, listConfig]);
154
+
155
+ // Remove item from list
156
+ const handleRemoveItem = useCallback(id => {
157
+ setListItems(prev => prev.filter(item => item.id !== id));
158
+ }, []);
159
+
160
+ // Save handler
161
+ const handleSave = async () => {
162
+ if (variant === 'list') {
163
+ const success = await onSubmit({
164
+ items: listItems
165
+ });
166
+ if (success) {
167
+ onSave?.();
168
+ onClose();
169
+ }
170
+ } else {
171
+ if (!validateFields()) return;
172
+ const success = await onSubmit(fieldValues);
173
+ if (success) {
174
+ onSave?.();
175
+ onClose();
176
+ }
177
+ }
178
+ };
179
+
180
+ // Render field inputs for single/multi variants
181
+ const renderFields = () => /*#__PURE__*/_jsx(View, {
182
+ style: styles.modalBody,
183
+ children: fields.map((field, index) => /*#__PURE__*/_jsxs(View, {
184
+ style: styles.inputGroup,
185
+ children: [/*#__PURE__*/_jsx(Text, {
186
+ style: [styles.label, {
187
+ color: colors.text
188
+ }],
189
+ children: field.label
190
+ }), /*#__PURE__*/_jsx(TextInput, {
191
+ style: [field.inputProps?.multiline ? styles.textArea : styles.input, {
192
+ backgroundColor: colors.card,
193
+ color: colors.text,
194
+ borderColor: fieldErrors[field.key] ? '#FF3B30' : colors.border
195
+ }],
196
+ value: fieldValues[field.key] || '',
197
+ onChangeText: value => handleFieldChange(field.key, value),
198
+ placeholder: field.placeholder,
199
+ placeholderTextColor: colors.secondaryText,
200
+ autoFocus: index === 0,
201
+ selectionColor: colors.tint,
202
+ textAlignVertical: field.inputProps?.multiline ? 'top' : 'center',
203
+ ...field.inputProps
204
+ }), fieldErrors[field.key] && /*#__PURE__*/_jsx(Text, {
205
+ style: styles.errorText,
206
+ children: fieldErrors[field.key]
207
+ })]
208
+ }, field.key))
209
+ });
210
+
211
+ // Render list for list variant
212
+ const renderList = () => {
213
+ if (!listConfig) return null;
214
+ return /*#__PURE__*/_jsxs(ScrollView, {
215
+ style: styles.modalBody,
216
+ children: [/*#__PURE__*/_jsxs(View, {
217
+ style: styles.inputGroup,
218
+ children: [/*#__PURE__*/_jsx(Text, {
219
+ style: [styles.label, {
220
+ color: colors.text
221
+ }],
222
+ children: listConfig.addItemLabel || t('common.add') || 'Add'
223
+ }), /*#__PURE__*/_jsxs(View, {
224
+ style: styles.addItemRow,
225
+ children: [/*#__PURE__*/_jsx(TextInput, {
226
+ style: [styles.input, {
227
+ backgroundColor: colors.card,
228
+ color: colors.text,
229
+ borderColor: colors.border,
230
+ flex: 1
231
+ }],
232
+ value: newItemValue,
233
+ onChangeText: setNewItemValue,
234
+ placeholder: listConfig.addItemPlaceholder,
235
+ placeholderTextColor: colors.secondaryText,
236
+ selectionColor: colors.tint,
237
+ autoCapitalize: "none",
238
+ autoCorrect: false
239
+ }), /*#__PURE__*/_jsx(TouchableOpacity, {
240
+ style: [styles.addButton, {
241
+ backgroundColor: colors.tint
242
+ }],
243
+ onPress: handleAddItem,
244
+ disabled: !newItemValue.trim(),
245
+ children: /*#__PURE__*/_jsx(Ionicons, {
246
+ name: "add",
247
+ size: 20,
248
+ color: "#fff"
249
+ })
250
+ })]
251
+ })]
252
+ }), listItems.length > 0 && /*#__PURE__*/_jsxs(View, {
253
+ style: styles.listSection,
254
+ children: [listConfig.listTitle && /*#__PURE__*/_jsxs(Text, {
255
+ style: [styles.listTitle, {
256
+ color: colors.text
257
+ }],
258
+ children: [listConfig.listTitle, " (", listItems.length, ")"]
259
+ }), listItems.map(item => /*#__PURE__*/_jsx(View, {
260
+ children: listConfig.renderItem(item, () => handleRemoveItem(item.id), colors)
261
+ }, item.id))]
262
+ })]
263
+ });
264
+ };
265
+ return /*#__PURE__*/_jsx(Modal, {
266
+ visible: visible,
267
+ animationType: "slide",
268
+ transparent: true,
269
+ onRequestClose: onClose,
270
+ children: /*#__PURE__*/_jsx(View, {
271
+ style: styles.modalOverlay,
272
+ children: /*#__PURE__*/_jsxs(View, {
273
+ style: [styles.modalContent, {
274
+ backgroundColor: colors.background
275
+ }],
276
+ children: [/*#__PURE__*/_jsxs(View, {
277
+ style: styles.modalHeader,
278
+ children: [/*#__PURE__*/_jsx(TouchableOpacity, {
279
+ onPress: onClose,
280
+ style: styles.closeButton,
281
+ children: /*#__PURE__*/_jsx(Ionicons, {
282
+ name: "close",
283
+ size: 24,
284
+ color: colors.text
285
+ })
286
+ }), /*#__PURE__*/_jsx(Text, {
287
+ style: [styles.modalTitle, {
288
+ color: colors.text
289
+ }],
290
+ children: title
291
+ }), /*#__PURE__*/_jsx(TouchableOpacity, {
292
+ onPress: handleSave,
293
+ disabled: isSaving || saveDisabled,
294
+ style: [styles.saveButton, {
295
+ opacity: isSaving || saveDisabled ? 0.5 : 1
296
+ }],
297
+ children: /*#__PURE__*/_jsx(Text, {
298
+ style: [styles.saveButtonText, {
299
+ color: colors.tint
300
+ }],
301
+ children: isSaving ? t('common.saving') || 'Saving...' : t('common.save') || 'Save'
302
+ })
303
+ })]
304
+ }), variant === 'list' ? renderList() : renderFields()]
305
+ })
306
+ })
307
+ });
308
+ }
309
+ const styles = StyleSheet.create({
310
+ modalOverlay: {
311
+ flex: 1,
312
+ backgroundColor: 'rgba(0, 0, 0, 0.5)',
313
+ justifyContent: 'flex-end'
314
+ },
315
+ modalContent: {
316
+ borderTopLeftRadius: 20,
317
+ borderTopRightRadius: 20,
318
+ paddingTop: Platform.OS === 'ios' ? 20 : 16,
319
+ maxHeight: '80%'
320
+ },
321
+ modalHeader: {
322
+ flexDirection: 'row',
323
+ alignItems: 'center',
324
+ justifyContent: 'space-between',
325
+ paddingHorizontal: 16,
326
+ paddingBottom: 16,
327
+ borderBottomWidth: StyleSheet.hairlineWidth,
328
+ borderBottomColor: '#E5E5EA'
329
+ },
330
+ closeButton: {
331
+ width: 40,
332
+ height: 40,
333
+ alignItems: 'center',
334
+ justifyContent: 'center'
335
+ },
336
+ modalTitle: {
337
+ fontSize: 18,
338
+ fontWeight: '600',
339
+ fontFamily: fontFamilies.phuduSemiBold,
340
+ flex: 1,
341
+ textAlign: 'center'
342
+ },
343
+ saveButton: {
344
+ paddingHorizontal: 16,
345
+ paddingVertical: 8
346
+ },
347
+ saveButtonText: {
348
+ fontSize: 16,
349
+ fontWeight: '600',
350
+ fontFamily: fontFamilies.phuduSemiBold
351
+ },
352
+ modalBody: {
353
+ padding: 16,
354
+ gap: 16
355
+ },
356
+ inputGroup: {
357
+ gap: 8
358
+ },
359
+ label: {
360
+ fontSize: 14,
361
+ fontWeight: '600',
362
+ fontFamily: fontFamilies.phuduSemiBold
363
+ },
364
+ input: {
365
+ borderWidth: StyleSheet.hairlineWidth,
366
+ borderRadius: 12,
367
+ padding: 16,
368
+ fontSize: 16,
369
+ minHeight: 52
370
+ },
371
+ textArea: {
372
+ borderWidth: StyleSheet.hairlineWidth,
373
+ borderRadius: 12,
374
+ padding: 16,
375
+ fontSize: 16,
376
+ minHeight: 120
377
+ },
378
+ errorText: {
379
+ fontSize: 12,
380
+ color: '#FF3B30'
381
+ },
382
+ addItemRow: {
383
+ flexDirection: 'row',
384
+ gap: 8,
385
+ alignItems: 'center'
386
+ },
387
+ addButton: {
388
+ width: 52,
389
+ height: 52,
390
+ borderRadius: 12,
391
+ alignItems: 'center',
392
+ justifyContent: 'center'
393
+ },
394
+ listSection: {
395
+ gap: 8,
396
+ marginTop: 16
397
+ },
398
+ listTitle: {
399
+ fontSize: 16,
400
+ fontWeight: '600',
401
+ fontFamily: fontFamilies.phuduSemiBold,
402
+ marginBottom: 8
403
+ }
404
+ });
405
+ export default EditFieldModal;
406
+ //# sourceMappingURL=EditFieldModal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","useState","useEffect","useCallback","View","Text","TextInput","TouchableOpacity","StyleSheet","Modal","Platform","ScrollView","Ionicons","useThemeStyles","useColorScheme","useI18n","fontFamilies","useProfileEditing","jsx","_jsx","jsxs","_jsxs","EditFieldModal","visible","onClose","title","theme","onSave","variant","fields","listConfig","onSubmit","saveDisabled","t","colorScheme","themeStyles","colors","isSaving","fieldValues","setFieldValues","fieldErrors","setFieldErrors","listItems","setListItems","newItemValue","setNewItemValue","items","length","initialValues","forEach","field","key","initialValue","handleFieldChange","value","prev","undefined","validateFields","errors","isValid","validation","error","handleAddItem","trim","newItem","createItem","handleRemoveItem","id","filter","item","handleSave","success","renderFields","style","styles","modalBody","children","map","index","inputGroup","label","color","text","inputProps","multiline","textArea","input","backgroundColor","card","borderColor","border","onChangeText","placeholder","placeholderTextColor","secondaryText","autoFocus","selectionColor","tint","textAlignVertical","errorText","renderList","addItemLabel","addItemRow","flex","addItemPlaceholder","autoCapitalize","autoCorrect","addButton","onPress","disabled","name","size","listSection","listTitle","renderItem","animationType","transparent","onRequestClose","modalOverlay","modalContent","background","modalHeader","closeButton","modalTitle","saveButton","opacity","saveButtonText","create","justifyContent","borderTopLeftRadius","borderTopRightRadius","paddingTop","OS","maxHeight","flexDirection","alignItems","paddingHorizontal","paddingBottom","borderBottomWidth","hairlineWidth","borderBottomColor","width","height","fontSize","fontWeight","fontFamily","phuduSemiBold","textAlign","paddingVertical","padding","gap","borderWidth","borderRadius","minHeight","marginTop","marginBottom"],"sourceRoot":"../../../../../src","sources":["ui/components/profile/EditFieldModal.tsx"],"mappings":"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","ignoreList":[]}