@teamvortexsoftware/vortex-react-native 0.0.13 → 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (228) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +1227 -11
  3. package/dist/InviteFormCore-D4HkMMo0.d.mts +721 -0
  4. package/dist/InviteFormCore-D9oUCbu7.d.ts +721 -0
  5. package/dist/VortexClient.js +192 -0
  6. package/dist/VortexClient.js.map +1 -0
  7. package/dist/VortexDeferredLinks.js +127 -0
  8. package/dist/VortexDeferredLinks.js.map +1 -0
  9. package/dist/clientInfo.js +45 -0
  10. package/dist/clientInfo.js.map +1 -0
  11. package/dist/components/ContactsPickerModal.js +182 -0
  12. package/dist/components/ContactsPickerModal.js.map +1 -0
  13. package/dist/components/InviteFormCore.js +2141 -0
  14. package/dist/components/InviteFormCore.js.map +1 -0
  15. package/dist/components/InviteFormMobile.js +463 -0
  16. package/dist/components/InviteFormMobile.js.map +1 -0
  17. package/dist/components/InviteFormWeb.js +295 -0
  18. package/dist/components/InviteFormWeb.js.map +1 -0
  19. package/dist/components/PlacedItemToolbar.js +147 -0
  20. package/dist/components/PlacedItemToolbar.js.map +1 -0
  21. package/dist/components/ShareButtons.js +1 -0
  22. package/dist/components/ShareButtons.js.map +1 -0
  23. package/dist/components/VrtxContactsImport.js +234 -0
  24. package/dist/components/VrtxContactsImport.js.map +1 -0
  25. package/dist/components/VrtxEmailInvitations.js +341 -0
  26. package/dist/components/VrtxEmailInvitations.js.map +1 -0
  27. package/dist/components/VrtxFindFriends.js +400 -0
  28. package/dist/components/VrtxFindFriends.js.map +1 -0
  29. package/dist/components/VrtxHeading.js +58 -0
  30. package/dist/components/VrtxHeading.js.map +1 -0
  31. package/dist/components/VrtxIncomingInvitations.js +657 -0
  32. package/dist/components/VrtxIncomingInvitations.js.map +1 -0
  33. package/dist/components/VrtxInvitationSuggestions.js +506 -0
  34. package/dist/components/VrtxInvitationSuggestions.js.map +1 -0
  35. package/dist/components/VrtxInviteContacts.js +512 -0
  36. package/dist/components/VrtxInviteContacts.js.map +1 -0
  37. package/dist/components/VrtxOutgoingInvitations.js +572 -0
  38. package/dist/components/VrtxOutgoingInvitations.js.map +1 -0
  39. package/dist/components/VrtxSearchBox.js +487 -0
  40. package/dist/components/VrtxSearchBox.js.map +1 -0
  41. package/dist/components/VrtxSelect.js +27 -0
  42. package/dist/components/VrtxSelect.js.map +1 -0
  43. package/dist/components/VrtxShareOptions.js +435 -0
  44. package/dist/components/VrtxShareOptions.js.map +1 -0
  45. package/dist/components/VrtxSubmit.js +132 -0
  46. package/dist/components/VrtxSubmit.js.map +1 -0
  47. package/dist/components/VrtxText.js +146 -0
  48. package/dist/components/VrtxText.js.map +1 -0
  49. package/dist/constants/mockData.d.mts +7 -0
  50. package/dist/constants/mockData.d.ts +7 -0
  51. package/dist/constants/mockData.js +48 -0
  52. package/dist/constants/mockData.js.map +1 -0
  53. package/dist/constants/mockData.mjs +22 -0
  54. package/dist/constants/mockData.mjs.map +1 -0
  55. package/dist/context/VortexModulesContext.js +135 -0
  56. package/dist/context/VortexModulesContext.js.map +1 -0
  57. package/dist/hooks/useInvitationFormLogic.d.mts +2 -0
  58. package/dist/hooks/useInvitationFormLogic.d.ts +2 -0
  59. package/dist/hooks/useInvitationFormLogic.js +300 -0
  60. package/dist/hooks/useInvitationFormLogic.js.map +1 -0
  61. package/dist/hooks/useInvitationFormLogic.mjs +276 -0
  62. package/dist/hooks/useInvitationFormLogic.mjs.map +1 -0
  63. package/dist/hooks/usePrefetchWidgetConfiguration.js +117 -0
  64. package/dist/hooks/usePrefetchWidgetConfiguration.js.map +1 -0
  65. package/dist/hooks/useThemeStyles.js +2 -0
  66. package/dist/hooks/useThemeStyles.js.map +1 -0
  67. package/dist/hooks/useVortexInvite.js +467 -56
  68. package/dist/hooks/useVortexInvite.js.map +1 -0
  69. package/dist/index-web.d.mts +93 -0
  70. package/dist/index-web.d.ts +93 -0
  71. package/dist/index-web.js +7397 -0
  72. package/dist/index-web.js.map +1 -0
  73. package/dist/index-web.mjs +7445 -0
  74. package/dist/index-web.mjs.map +1 -0
  75. package/dist/index.d.mts +656 -0
  76. package/dist/index.d.ts +656 -0
  77. package/dist/index.js +10205 -4
  78. package/dist/index.js.map +1 -0
  79. package/dist/index.mjs +10244 -0
  80. package/dist/index.mjs.map +1 -0
  81. package/dist/types/VortexClient.d.ts +106 -0
  82. package/dist/types/VortexClient.d.ts.map +1 -0
  83. package/dist/types/VortexDeferredLinks.d.ts +73 -0
  84. package/dist/types/VortexDeferredLinks.d.ts.map +1 -0
  85. package/dist/types/clientInfo.d.ts +5 -0
  86. package/dist/types/clientInfo.d.ts.map +1 -0
  87. package/dist/types/components/ContactsPickerModal.d.ts +18 -0
  88. package/dist/types/components/ContactsPickerModal.d.ts.map +1 -0
  89. package/dist/types/components/InviteFormCore.d.ts +166 -0
  90. package/dist/types/components/InviteFormCore.d.ts.map +1 -0
  91. package/dist/types/components/InviteFormMobile.d.ts +42 -0
  92. package/dist/types/components/InviteFormMobile.d.ts.map +1 -0
  93. package/dist/types/components/InviteFormWeb.d.ts +87 -0
  94. package/dist/types/components/InviteFormWeb.d.ts.map +1 -0
  95. package/dist/types/components/PlacedItemToolbar.d.ts +16 -0
  96. package/dist/types/components/PlacedItemToolbar.d.ts.map +1 -0
  97. package/dist/types/components/VrtxContactsImport.d.ts +14 -0
  98. package/dist/types/components/VrtxContactsImport.d.ts.map +1 -0
  99. package/dist/types/components/VrtxEmailInvitations.d.ts +31 -0
  100. package/dist/types/components/VrtxEmailInvitations.d.ts.map +1 -0
  101. package/dist/types/components/VrtxFindFriends.d.ts +25 -0
  102. package/dist/types/components/VrtxFindFriends.d.ts.map +1 -0
  103. package/dist/types/components/VrtxHeading.d.ts +6 -0
  104. package/dist/types/components/VrtxHeading.d.ts.map +1 -0
  105. package/dist/types/components/VrtxIncomingInvitations.d.ts +27 -0
  106. package/dist/types/components/VrtxIncomingInvitations.d.ts.map +1 -0
  107. package/dist/types/components/VrtxInvitationSuggestions.d.ts +25 -0
  108. package/dist/types/components/VrtxInvitationSuggestions.d.ts.map +1 -0
  109. package/dist/types/components/VrtxInviteContacts.d.ts +24 -0
  110. package/dist/types/components/VrtxInviteContacts.d.ts.map +1 -0
  111. package/dist/types/components/VrtxOutgoingInvitations.d.ts +27 -0
  112. package/dist/types/components/VrtxOutgoingInvitations.d.ts.map +1 -0
  113. package/dist/types/components/VrtxSearchBox.d.ts +28 -0
  114. package/dist/types/components/VrtxSearchBox.d.ts.map +1 -0
  115. package/dist/types/components/VrtxSelect.d.ts +6 -0
  116. package/dist/types/components/VrtxSelect.d.ts.map +1 -0
  117. package/dist/types/components/VrtxShareOptions.d.ts +41 -0
  118. package/dist/types/components/VrtxShareOptions.d.ts.map +1 -0
  119. package/dist/types/components/VrtxSubmit.d.ts +18 -0
  120. package/dist/types/components/VrtxSubmit.d.ts.map +1 -0
  121. package/dist/types/components/VrtxText.d.ts +8 -0
  122. package/dist/types/components/VrtxText.d.ts.map +1 -0
  123. package/dist/types/constants/mockData.d.ts +4 -0
  124. package/dist/types/constants/mockData.d.ts.map +1 -0
  125. package/dist/types/context/VortexModulesContext.d.ts +238 -0
  126. package/dist/types/context/VortexModulesContext.d.ts.map +1 -0
  127. package/dist/types/findFriends.js +10 -0
  128. package/dist/types/findFriends.js.map +1 -0
  129. package/dist/types/hooks/useInvitationFormLogic.d.ts +55 -0
  130. package/dist/types/hooks/useInvitationFormLogic.d.ts.map +1 -0
  131. package/dist/types/hooks/usePrefetchWidgetConfiguration.d.ts +39 -0
  132. package/dist/types/hooks/usePrefetchWidgetConfiguration.d.ts.map +1 -0
  133. package/dist/types/hooks/useThemeStyles.d.ts +1 -0
  134. package/dist/types/hooks/useThemeStyles.d.ts.map +1 -1
  135. package/dist/types/hooks/useVortexInvite.d.ts +48 -6
  136. package/dist/types/hooks/useVortexInvite.d.ts.map +1 -1
  137. package/dist/types/index-web.d.ts +23 -0
  138. package/dist/types/index-web.d.ts.map +1 -0
  139. package/dist/types/index.d.ts +21 -0
  140. package/dist/types/index.d.ts.map +1 -1
  141. package/dist/types/invitations.js +13 -0
  142. package/dist/types/invitations.js.map +1 -0
  143. package/dist/types/inviteContacts.js +14 -0
  144. package/dist/types/inviteContacts.js.map +1 -0
  145. package/dist/{shared/InvitationResult.js → types/platformOperations.js} +1 -0
  146. package/dist/types/platformOperations.js.map +1 -0
  147. package/dist/types/searchBox.js +11 -0
  148. package/dist/types/searchBox.js.map +1 -0
  149. package/dist/types/types/findFriends.d.ts +101 -0
  150. package/dist/types/types/findFriends.d.ts.map +1 -0
  151. package/dist/types/types/invitations.d.ts +301 -0
  152. package/dist/types/types/invitations.d.ts.map +1 -0
  153. package/dist/types/types/inviteContacts.d.ts +86 -0
  154. package/dist/types/types/inviteContacts.d.ts.map +1 -0
  155. package/dist/types/types/platformOperations.d.ts +185 -0
  156. package/dist/types/types/platformOperations.d.ts.map +1 -0
  157. package/dist/types/types/searchBox.d.ts +69 -0
  158. package/dist/types/types/searchBox.d.ts.map +1 -0
  159. package/dist/types/types/unfurlConfig.d.ts +34 -0
  160. package/dist/types/types/unfurlConfig.d.ts.map +1 -0
  161. package/dist/types/unfurlConfig.js +21 -0
  162. package/dist/types/unfurlConfig.js.map +1 -0
  163. package/dist/types/utils/analytics.d.ts +54 -0
  164. package/dist/types/utils/analytics.d.ts.map +1 -0
  165. package/dist/types/utils/configCache.d.ts +34 -0
  166. package/dist/types/utils/configCache.d.ts.map +1 -0
  167. package/dist/types/utils/contactUtils.d.ts +9 -0
  168. package/dist/types/utils/contactUtils.d.ts.map +1 -0
  169. package/dist/types/utils/featureWarnings.d.ts +56 -0
  170. package/dist/types/utils/featureWarnings.d.ts.map +1 -0
  171. package/dist/types/utils/formUtils.d.ts +11 -3
  172. package/dist/types/utils/formUtils.d.ts.map +1 -1
  173. package/dist/types/utils/gradientUtils.d.ts +67 -0
  174. package/dist/types/utils/gradientUtils.d.ts.map +1 -0
  175. package/dist/types/utils/invitationEvents.d.ts +21 -0
  176. package/dist/types/utils/invitationEvents.d.ts.map +1 -0
  177. package/dist/types/utils/moduleLoaders.d.ts +115 -0
  178. package/dist/types/utils/moduleLoaders.d.ts.map +1 -0
  179. package/dist/types/utils/moduleLoaders.web.d.ts +73 -0
  180. package/dist/types/utils/moduleLoaders.web.d.ts.map +1 -0
  181. package/dist/types/utils/nameUtils.d.ts +15 -0
  182. package/dist/types/utils/nameUtils.d.ts.map +1 -0
  183. package/dist/types/utils/themeUtils.d.ts +3 -1
  184. package/dist/types/utils/themeUtils.d.ts.map +1 -1
  185. package/dist/types/vortexInvite.d.ts +145 -5
  186. package/dist/types/vortexInvite.d.ts.map +1 -1
  187. package/dist/useInvitationFormLogic-Ct73M19B.d.mts +242 -0
  188. package/dist/useInvitationFormLogic-Ct73M19B.d.ts +242 -0
  189. package/dist/utils/analytics.js +92 -0
  190. package/dist/utils/analytics.js.map +1 -0
  191. package/dist/utils/configCache.js +68 -0
  192. package/dist/utils/configCache.js.map +1 -0
  193. package/dist/utils/contactUtils.d.mts +12 -0
  194. package/dist/utils/contactUtils.d.ts +12 -0
  195. package/dist/utils/contactUtils.js +37 -0
  196. package/dist/utils/contactUtils.js.map +1 -0
  197. package/dist/utils/contactUtils.mjs +12 -0
  198. package/dist/utils/contactUtils.mjs.map +1 -0
  199. package/dist/utils/featureWarnings.js +214 -0
  200. package/dist/utils/featureWarnings.js.map +1 -0
  201. package/dist/utils/formUtils.js +161 -51
  202. package/dist/utils/formUtils.js.map +1 -0
  203. package/dist/utils/gradientUtils.js +120 -0
  204. package/dist/utils/gradientUtils.js.map +1 -0
  205. package/dist/utils/invitationEvents.js +45 -0
  206. package/dist/utils/invitationEvents.js.map +1 -0
  207. package/dist/utils/moduleLoaders.js +275 -0
  208. package/dist/utils/moduleLoaders.js.map +1 -0
  209. package/dist/utils/moduleLoaders.web.js +72 -0
  210. package/dist/utils/moduleLoaders.web.js.map +1 -0
  211. package/dist/utils/nameUtils.js +51 -0
  212. package/dist/utils/nameUtils.js.map +1 -0
  213. package/dist/utils/themeUtils.js +117 -32
  214. package/dist/utils/themeUtils.js.map +1 -0
  215. package/dist/vortexInvite.js +78 -167
  216. package/dist/vortexInvite.js.map +1 -0
  217. package/package.json +69 -31
  218. package/dist/components/Clipboard.js +0 -64
  219. package/dist/shared/api.js +0 -90
  220. package/dist/tests/TestVortexInvite.js +0 -134
  221. package/dist/types/components/Clipboard.d.ts +0 -16
  222. package/dist/types/components/Clipboard.d.ts.map +0 -1
  223. package/dist/types/shared/InvitationResult.d.ts +0 -24
  224. package/dist/types/shared/InvitationResult.d.ts.map +0 -1
  225. package/dist/types/shared/api.d.ts +0 -14
  226. package/dist/types/shared/api.d.ts.map +0 -1
  227. package/dist/types/tests/TestVortexInvite.d.ts +0 -4
  228. package/dist/types/tests/TestVortexInvite.d.ts.map +0 -1
@@ -0,0 +1,6 @@
1
+ import React from 'react';
2
+ export interface VrtxHeadingProps {
3
+ block: any;
4
+ }
5
+ export declare function VrtxHeading({ block }: VrtxHeadingProps): React.JSX.Element;
6
+ //# sourceMappingURL=VrtxHeading.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VrtxHeading.d.ts","sourceRoot":"","sources":["../../../src/components/VrtxHeading.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAK1B,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,GAAG,CAAC;CACZ;AA4BD,wBAAgB,WAAW,CAAC,EAAE,KAAK,EAAE,EAAE,gBAAgB,qBAwBtD"}
@@ -0,0 +1,27 @@
1
+ import React from 'react';
2
+ import { IncomingInvitationsConfig } from '../types/invitations';
3
+ import type { SimpleAnalyticsEvent } from '../utils/analytics';
4
+ export interface VrtxIncomingInvitationsProps {
5
+ block: any;
6
+ /** Incoming Invitations configuration with callbacks */
7
+ incomingInvitationsConfig?: IncomingInvitationsConfig;
8
+ /** API URL for making invitation API calls (required for automatic API integration) */
9
+ apiUrl?: string;
10
+ /** JWT token for authentication (required for automatic API integration) */
11
+ jwt?: string;
12
+ /** Trigger haptic feedback */
13
+ triggerHaptic?: (style: 'light' | 'medium' | 'heavy') => Promise<void>;
14
+ /** Theme colors from widget configuration */
15
+ theme?: {
16
+ primaryBackground?: string;
17
+ primaryForeground?: string;
18
+ secondaryBackground?: string;
19
+ secondaryForeground?: string;
20
+ foreground?: string;
21
+ border?: string;
22
+ };
23
+ /** Callback to emit analytics events */
24
+ onAnalyticsEvent?: (event: SimpleAnalyticsEvent) => void;
25
+ }
26
+ export declare function VrtxIncomingInvitations({ block, incomingInvitationsConfig, apiUrl, jwt, triggerHaptic, theme, onAnalyticsEvent, }: VrtxIncomingInvitationsProps): React.JSX.Element | null;
27
+ //# sourceMappingURL=VrtxIncomingInvitations.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VrtxIncomingInvitations.d.ts","sourceRoot":"","sources":["../../../src/components/VrtxIncomingInvitations.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmD,MAAM,OAAO,CAAC;AAaxE,OAAO,EAAE,yBAAyB,EAA0B,MAAM,sBAAsB,CAAC;AAGzF,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAmG/D,MAAM,WAAW,4BAA4B;IAC3C,KAAK,EAAE,GAAG,CAAC;IACX,wDAAwD;IACxD,yBAAyB,CAAC,EAAE,yBAAyB,CAAC;IACtD,uFAAuF;IACvF,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,4EAA4E;IAC5E,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,8BAA8B;IAC9B,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,GAAG,QAAQ,GAAG,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACvE,6CAA6C;IAC7C,KAAK,CAAC,EAAE;QACN,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAC3B,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAC3B,mBAAmB,CAAC,EAAE,MAAM,CAAC;QAC7B,mBAAmB,CAAC,EAAE,MAAM,CAAC;QAC7B,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,wCAAwC;IACxC,gBAAgB,CAAC,EAAE,CAAC,KAAK,EAAE,oBAAoB,KAAK,IAAI,CAAC;CAC1D;AA4CD,wBAAgB,uBAAuB,CAAC,EACtC,KAAK,EACL,yBAAyB,EACzB,MAAM,EACN,GAAG,EACH,aAAa,EACb,KAAK,EACL,gBAAgB,GACjB,EAAE,4BAA4B,4BAglB9B"}
@@ -0,0 +1,25 @@
1
+ import React from 'react';
2
+ import { InvitationSuggestionsConfig } from '../types/invitations';
3
+ import type { SimpleAnalyticsEvent } from '../utils/analytics';
4
+ export interface VrtxInvitationSuggestionsProps {
5
+ block: any;
6
+ /** Invitation Suggestions configuration with callbacks */
7
+ invitationSuggestionsConfig?: InvitationSuggestionsConfig;
8
+ /** Create an invitation via the Vortex API */
9
+ createUserIdInvitation?: (userId: string, name?: string, avatarUrl?: string, metadata?: Record<string, unknown>) => Promise<void>;
10
+ /** Trigger haptic feedback */
11
+ triggerHaptic?: (style: 'light' | 'medium' | 'heavy') => Promise<void>;
12
+ /** Callback to emit analytics events */
13
+ onAnalyticsEvent?: (event: SimpleAnalyticsEvent) => void;
14
+ /** Theme colors from widget configuration */
15
+ theme?: {
16
+ primaryBackground?: string;
17
+ primaryForeground?: string;
18
+ secondaryBackground?: string;
19
+ secondaryForeground?: string;
20
+ foreground?: string;
21
+ border?: string;
22
+ };
23
+ }
24
+ export declare function VrtxInvitationSuggestions({ block, invitationSuggestionsConfig, createUserIdInvitation, triggerHaptic, onAnalyticsEvent, theme, }: VrtxInvitationSuggestionsProps): React.JSX.Element;
25
+ //# sourceMappingURL=VrtxInvitationSuggestions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VrtxInvitationSuggestions.d.ts","sourceRoot":"","sources":["../../../src/components/VrtxInvitationSuggestions.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmD,MAAM,OAAO,CAAC;AAaxE,OAAO,EAAE,2BAA2B,EAAkB,MAAM,sBAAsB,CAAC;AACnF,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAmG/D,MAAM,WAAW,8BAA8B;IAC7C,KAAK,EAAE,GAAG,CAAC;IACX,0DAA0D;IAC1D,2BAA2B,CAAC,EAAE,2BAA2B,CAAC;IAC1D,8CAA8C;IAC9C,sBAAsB,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAClI,8BAA8B;IAC9B,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,GAAG,QAAQ,GAAG,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACvE,wCAAwC;IACxC,gBAAgB,CAAC,EAAE,CAAC,KAAK,EAAE,oBAAoB,KAAK,IAAI,CAAC;IACzD,6CAA6C;IAC7C,KAAK,CAAC,EAAE;QACN,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAC3B,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAC3B,mBAAmB,CAAC,EAAE,MAAM,CAAC;QAC7B,mBAAmB,CAAC,EAAE,MAAM,CAAC;QAC7B,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC;CACH;AA4CD,wBAAgB,yBAAyB,CAAC,EACxC,KAAK,EACL,2BAA2B,EAC3B,sBAAsB,EACtB,aAAa,EACb,gBAAgB,EAChB,KAAK,GACN,EAAE,8BAA8B,qBAsZhC"}
@@ -0,0 +1,24 @@
1
+ import React from 'react';
2
+ import { InviteContactsConfig } from '../types/inviteContacts';
3
+ export interface VrtxInviteContactsProps {
4
+ block: any;
5
+ /** Invite Contacts configuration with contacts list */
6
+ inviteContactsConfig?: InviteContactsConfig;
7
+ /** Function to create SMS invitation and get short link */
8
+ createSmsInvitation?: (phoneNumber: string, contactName?: string) => Promise<string | null>;
9
+ /** Trigger haptic feedback */
10
+ triggerHaptic?: (style: 'light' | 'medium' | 'heavy') => Promise<void>;
11
+ /** Theme colors from widget configuration */
12
+ theme?: {
13
+ primaryBackground?: string;
14
+ primaryForeground?: string;
15
+ secondaryBackground?: string;
16
+ secondaryForeground?: string;
17
+ foreground?: string;
18
+ border?: string;
19
+ };
20
+ /** SMS message template with {{link}} placeholder */
21
+ smsMessageTemplate?: string;
22
+ }
23
+ export declare function VrtxInviteContacts({ block, inviteContactsConfig, createSmsInvitation, triggerHaptic, theme, smsMessageTemplate, }: VrtxInviteContactsProps): React.JSX.Element | null;
24
+ //# sourceMappingURL=VrtxInviteContacts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VrtxInviteContacts.d.ts","sourceRoot":"","sources":["../../../src/components/VrtxInviteContacts.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAyC,MAAM,OAAO,CAAC;AAa9D,OAAO,EAAE,oBAAoB,EAAyB,MAAM,yBAAyB,CAAC;AAkGtF,MAAM,WAAW,uBAAuB;IACtC,KAAK,EAAE,GAAG,CAAC;IACX,uDAAuD;IACvD,oBAAoB,CAAC,EAAE,oBAAoB,CAAC;IAC5C,2DAA2D;IAC3D,mBAAmB,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAC5F,8BAA8B;IAC9B,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,GAAG,QAAQ,GAAG,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACvE,6CAA6C;IAC7C,KAAK,CAAC,EAAE;QACN,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAC3B,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAC3B,mBAAmB,CAAC,EAAE,MAAM,CAAC;QAC7B,mBAAmB,CAAC,EAAE,MAAM,CAAC;QAC7B,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,qDAAqD;IACrD,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAOD,wBAAgB,kBAAkB,CAAC,EACjC,KAAK,EACL,oBAAoB,EACpB,mBAAmB,EACnB,aAAa,EACb,KAAK,EACL,kBAAkB,GACnB,EAAE,uBAAuB,4BAiZzB"}
@@ -0,0 +1,27 @@
1
+ import React from 'react';
2
+ import { OutgoingInvitationsConfig } from '../types/invitations';
3
+ import type { SimpleAnalyticsEvent } from '../utils/analytics';
4
+ export interface VrtxOutgoingInvitationsProps {
5
+ block: any;
6
+ /** Outgoing Invitations configuration with optional onCancel callback */
7
+ outgoingInvitationsConfig?: OutgoingInvitationsConfig;
8
+ /** API URL for fetching invitations (required - passed from parent InviteFormCore) */
9
+ apiUrl: string;
10
+ /** JWT token for authentication (required - passed from parent InviteFormCore) */
11
+ jwt: string;
12
+ /** Trigger haptic feedback */
13
+ triggerHaptic?: (style: 'light' | 'medium' | 'heavy') => Promise<void>;
14
+ /** Theme colors from widget configuration */
15
+ theme?: {
16
+ primaryBackground?: string;
17
+ primaryForeground?: string;
18
+ secondaryBackground?: string;
19
+ secondaryForeground?: string;
20
+ foreground?: string;
21
+ border?: string;
22
+ };
23
+ /** Callback to emit analytics events */
24
+ onAnalyticsEvent?: (event: SimpleAnalyticsEvent) => void;
25
+ }
26
+ export declare function VrtxOutgoingInvitations({ block, outgoingInvitationsConfig, apiUrl, jwt, triggerHaptic, theme, onAnalyticsEvent, }: VrtxOutgoingInvitationsProps): React.JSX.Element | null;
27
+ //# sourceMappingURL=VrtxOutgoingInvitations.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VrtxOutgoingInvitations.d.ts","sourceRoot":"","sources":["../../../src/components/VrtxOutgoingInvitations.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmD,MAAM,OAAO,CAAC;AAYxE,OAAO,EAAE,yBAAyB,EAA0B,MAAM,sBAAsB,CAAC;AAEzF,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAqB/D,MAAM,WAAW,4BAA4B;IAC3C,KAAK,EAAE,GAAG,CAAC;IACX,yEAAyE;IACzE,yBAAyB,CAAC,EAAE,yBAAyB,CAAC;IACtD,sFAAsF;IACtF,MAAM,EAAE,MAAM,CAAC;IACf,kFAAkF;IAClF,GAAG,EAAE,MAAM,CAAC;IACZ,8BAA8B;IAC9B,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,GAAG,QAAQ,GAAG,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACvE,6CAA6C;IAC7C,KAAK,CAAC,EAAE;QACN,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAC3B,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAC3B,mBAAmB,CAAC,EAAE,MAAM,CAAC;QAC7B,mBAAmB,CAAC,EAAE,MAAM,CAAC;QAC7B,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,wCAAwC;IACxC,gBAAgB,CAAC,EAAE,CAAC,KAAK,EAAE,oBAAoB,KAAK,IAAI,CAAC;CAC1D;AAqCD,wBAAgB,uBAAuB,CAAC,EACtC,KAAK,EACL,yBAAyB,EACzB,MAAM,EACN,GAAG,EACH,aAAa,EACb,KAAK,EACL,gBAAgB,GACjB,EAAE,4BAA4B,4BA+gB9B"}
@@ -0,0 +1,28 @@
1
+ import React from 'react';
2
+ import { SearchBoxConfig } from '../types/searchBox';
3
+ import type { SimpleAnalyticsEvent } from '../utils/analytics';
4
+ import type { IconRendererProps } from './InviteFormCore';
5
+ export interface VrtxSearchBoxProps {
6
+ block: any;
7
+ /** Search Box configuration with callbacks */
8
+ searchBoxConfig?: SearchBoxConfig;
9
+ /** Function to create an invitation with internal ID target type */
10
+ createUserIdInvitation?: (userId: string, name?: string, avatarUrl?: string, metadata?: Record<string, unknown>) => Promise<void>;
11
+ /** Trigger haptic feedback */
12
+ triggerHaptic?: (style: 'light' | 'medium' | 'heavy') => Promise<void>;
13
+ /** Callback to emit analytics events */
14
+ onAnalyticsEvent?: (event: SimpleAnalyticsEvent) => void;
15
+ /** Function to render icons (from InviteFormCore) */
16
+ renderIcon?: (props: IconRendererProps) => React.ReactNode;
17
+ /** Theme colors from widget configuration */
18
+ theme?: {
19
+ primaryBackground?: string;
20
+ primaryForeground?: string;
21
+ secondaryBackground?: string;
22
+ secondaryForeground?: string;
23
+ foreground?: string;
24
+ border?: string;
25
+ };
26
+ }
27
+ export declare function VrtxSearchBox({ block, searchBoxConfig, createUserIdInvitation, triggerHaptic, onAnalyticsEvent, renderIcon, theme, }: VrtxSearchBoxProps): React.JSX.Element;
28
+ //# sourceMappingURL=VrtxSearchBox.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VrtxSearchBox.d.ts","sourceRoot":"","sources":["../../../src/components/VrtxSearchBox.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAgC,MAAM,OAAO,CAAC;AAarD,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC/D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAoB1D,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,GAAG,CAAC;IACX,8CAA8C;IAC9C,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,oEAAoE;IACpE,sBAAsB,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAClI,8BAA8B;IAC9B,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,GAAG,QAAQ,GAAG,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACvE,wCAAwC;IACxC,gBAAgB,CAAC,EAAE,CAAC,KAAK,EAAE,oBAAoB,KAAK,IAAI,CAAC;IACzD,qDAAqD;IACrD,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,iBAAiB,KAAK,KAAK,CAAC,SAAS,CAAC;IAC3D,6CAA6C;IAC7C,KAAK,CAAC,EAAE;QACN,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAC3B,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAC3B,mBAAmB,CAAC,EAAE,MAAM,CAAC;QAC7B,mBAAmB,CAAC,EAAE,MAAM,CAAC;QAC7B,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC;CACH;AAED,wBAAgB,aAAa,CAAC,EAC5B,KAAK,EACL,eAAe,EACf,sBAAsB,EACtB,aAAa,EACb,gBAAgB,EAChB,UAAU,EACV,KAAK,GACN,EAAE,kBAAkB,qBAkapB"}
@@ -0,0 +1,6 @@
1
+ import React from 'react';
2
+ export interface VrtxSelectProps {
3
+ block: any;
4
+ }
5
+ export declare function VrtxSelect({ block }: VrtxSelectProps): React.JSX.Element;
6
+ //# sourceMappingURL=VrtxSelect.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VrtxSelect.d.ts","sourceRoot":"","sources":["../../../src/components/VrtxSelect.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,GAAG,CAAC;CACZ;AAED,wBAAgB,UAAU,CAAC,EAAE,KAAK,EAAE,EAAE,eAAe,qBAQpD"}
@@ -0,0 +1,41 @@
1
+ import React from 'react';
2
+ import { IconRendererProps } from './InviteFormCore';
3
+ export interface VrtxShareOptionsProps {
4
+ block: any;
5
+ renderIcon: (props: IconRendererProps) => React.ReactNode;
6
+ isCopyLinkEnabled: () => boolean;
7
+ isShareEnabled: () => boolean;
8
+ isEmailShareEnabled: () => boolean;
9
+ isSmsEnabled: () => boolean;
10
+ isTwitterDmsEnabled: () => boolean;
11
+ isInstagramDmsEnabled: () => boolean;
12
+ isWhatsAppEnabled: () => boolean;
13
+ isLineEnabled: () => boolean;
14
+ isLineLiffEnabled: () => boolean;
15
+ isQrCodeEnabled: () => boolean;
16
+ isFacebookMessengerEnabled: () => boolean;
17
+ isTelegramEnabled: () => boolean;
18
+ isDiscordEnabled: () => boolean;
19
+ handleCopyLink: () => Promise<void>;
20
+ handleShare: () => Promise<void>;
21
+ handleEmailShare: () => Promise<void>;
22
+ handleSmsShare: () => Promise<void>;
23
+ handleTwitterShare: () => Promise<void>;
24
+ handleInstagramShare: () => Promise<void>;
25
+ handleWhatsAppShare: () => Promise<void>;
26
+ handleLineShare: () => Promise<void>;
27
+ handleLineLiffShare: () => Promise<void>;
28
+ handleQrCode: () => Promise<void>;
29
+ handleFacebookMessengerShare: () => Promise<void>;
30
+ handleTelegramShare: () => Promise<void>;
31
+ handleDiscordShare: () => Promise<void>;
32
+ triggerHaptic?: (style: 'light' | 'medium' | 'heavy') => Promise<void>;
33
+ loadingCopy: boolean;
34
+ loadingShare: boolean;
35
+ copySuccess: boolean;
36
+ shareSuccess: boolean;
37
+ isEditMode?: boolean;
38
+ shareOptionsOrder?: string[];
39
+ }
40
+ export declare function VrtxShareOptions({ block, renderIcon, isCopyLinkEnabled, isShareEnabled, isEmailShareEnabled, isSmsEnabled, isTwitterDmsEnabled, isInstagramDmsEnabled, isWhatsAppEnabled, isLineEnabled, isLineLiffEnabled, isQrCodeEnabled, isFacebookMessengerEnabled, isTelegramEnabled, isDiscordEnabled, handleCopyLink, handleShare, handleEmailShare, handleSmsShare, handleTwitterShare, handleInstagramShare, handleWhatsAppShare, handleLineShare, handleLineLiffShare, handleQrCode, handleFacebookMessengerShare, handleTelegramShare, handleDiscordShare, triggerHaptic, loadingCopy, loadingShare, copySuccess, shareSuccess, isEditMode, shareOptionsOrder, }: VrtxShareOptionsProps): React.JSX.Element | null;
41
+ //# sourceMappingURL=VrtxShareOptions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VrtxShareOptions.d.ts","sourceRoot":"","sources":["../../../src/components/VrtxShareOptions.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAU1B,OAAO,EAAE,iBAAiB,EAAY,MAAM,kBAAkB,CAAC;AAK/D,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,GAAG,CAAC;IACX,UAAU,EAAE,CAAC,KAAK,EAAE,iBAAiB,KAAK,KAAK,CAAC,SAAS,CAAC;IAC1D,iBAAiB,EAAE,MAAM,OAAO,CAAC;IACjC,cAAc,EAAE,MAAM,OAAO,CAAC;IAC9B,mBAAmB,EAAE,MAAM,OAAO,CAAC;IACnC,YAAY,EAAE,MAAM,OAAO,CAAC;IAC5B,mBAAmB,EAAE,MAAM,OAAO,CAAC;IACnC,qBAAqB,EAAE,MAAM,OAAO,CAAC;IACrC,iBAAiB,EAAE,MAAM,OAAO,CAAC;IACjC,aAAa,EAAE,MAAM,OAAO,CAAC;IAC7B,iBAAiB,EAAE,MAAM,OAAO,CAAC;IACjC,eAAe,EAAE,MAAM,OAAO,CAAC;IAC/B,0BAA0B,EAAE,MAAM,OAAO,CAAC;IAC1C,iBAAiB,EAAE,MAAM,OAAO,CAAC;IACjC,gBAAgB,EAAE,MAAM,OAAO,CAAC;IAChC,cAAc,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACpC,WAAW,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACjC,gBAAgB,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACtC,cAAc,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACpC,kBAAkB,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACxC,oBAAoB,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1C,mBAAmB,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACzC,eAAe,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACrC,mBAAmB,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACzC,YAAY,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAClC,4BAA4B,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAClD,mBAAmB,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACzC,kBAAkB,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACxC,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,GAAG,QAAQ,GAAG,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACvE,WAAW,EAAE,OAAO,CAAC;IACrB,YAAY,EAAE,OAAO,CAAC;IACtB,WAAW,EAAE,OAAO,CAAC;IACrB,YAAY,EAAE,OAAO,CAAC;IACtB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;CAC9B;AAsFD,wBAAgB,gBAAgB,CAAC,EAC/B,KAAK,EACL,UAAU,EACV,iBAAiB,EACjB,cAAc,EACd,mBAAmB,EACnB,YAAY,EACZ,mBAAmB,EACnB,qBAAqB,EACrB,iBAAiB,EACjB,aAAa,EACb,iBAAiB,EACjB,eAAe,EACf,0BAA0B,EAC1B,iBAAiB,EACjB,gBAAgB,EAChB,cAAc,EACd,WAAW,EACX,gBAAgB,EAChB,cAAc,EACd,kBAAkB,EAClB,oBAAoB,EACpB,mBAAmB,EACnB,eAAe,EACf,mBAAmB,EACnB,YAAY,EACZ,4BAA4B,EAC5B,mBAAmB,EACnB,kBAAkB,EAClB,aAAa,EACb,WAAW,EACX,YAAY,EACZ,WAAW,EACX,YAAY,EACZ,UAAkB,EAClB,iBAAsB,GACvB,EAAE,qBAAqB,4BA8YvB"}
@@ -0,0 +1,18 @@
1
+ import React from 'react';
2
+ import type { ViewType } from '../hooks/useInvitationFormLogic';
3
+ export interface VrtxSubmitProps {
4
+ block: any;
5
+ view: ViewType;
6
+ handleSendInvitation: () => Promise<void>;
7
+ triggerHaptic?: (style: 'light' | 'medium' | 'heavy') => Promise<void>;
8
+ loadingEmailInvite: boolean;
9
+ sendSuccess: boolean;
10
+ /** Number of emails currently in the pill list (for singular/plural button label) */
11
+ emailCount?: number;
12
+ /** Mobile-specific customizations from the vrtx-email-invitations block */
13
+ emailBlockCustomizations?: Record<string, any>;
14
+ /** Style from the email invitations block (to match "Add by Email" button appearance) */
15
+ emailBlockStyle?: Record<string, any>;
16
+ }
17
+ export declare function VrtxSubmit({ block, view, handleSendInvitation, triggerHaptic, loadingEmailInvite, sendSuccess, emailCount, emailBlockCustomizations, emailBlockStyle, }: VrtxSubmitProps): React.JSX.Element | null;
18
+ //# sourceMappingURL=VrtxSubmit.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VrtxSubmit.d.ts","sourceRoot":"","sources":["../../../src/components/VrtxSubmit.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAC;AAmFhE,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,GAAG,CAAC;IACX,IAAI,EAAE,QAAQ,CAAC;IACf,oBAAoB,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1C,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,GAAG,QAAQ,GAAG,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACvE,kBAAkB,EAAE,OAAO,CAAC;IAC5B,WAAW,EAAE,OAAO,CAAC;IACrB,qFAAqF;IACrF,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,2EAA2E;IAC3E,wBAAwB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC/C,yFAAyF;IACzF,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CACvC;AAED,wBAAgB,UAAU,CAAC,EACzB,KAAK,EACL,IAAI,EACJ,oBAAoB,EACpB,aAAa,EACb,kBAAkB,EAClB,WAAW,EACX,UAAc,EACd,wBAAwB,EACxB,eAAe,GAChB,EAAE,eAAe,4BAsEjB"}
@@ -0,0 +1,8 @@
1
+ import React from 'react';
2
+ export interface VrtxTextProps {
3
+ block: any;
4
+ isEditMode?: boolean;
5
+ onUpdate?: (blockId: string, updates: any) => void;
6
+ }
7
+ export declare const VrtxText: React.MemoExoticComponent<({ block, isEditMode, onUpdate }: VrtxTextProps) => React.JSX.Element>;
8
+ //# sourceMappingURL=VrtxText.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VrtxText.d.ts","sourceRoot":"","sources":["../../../src/components/VrtxText.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAyC,MAAM,OAAO,CAAC;AAK9D,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,GAAG,CAAC;IACX,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,KAAK,IAAI,CAAC;CACpD;AA4HD,eAAO,MAAM,QAAQ,8DA1H+C,aAAa,uBAqI/E,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { Contact } from '../hooks/useInvitationFormLogic';
2
+ export declare const MOCK_CONTACTS: Contact[];
3
+ export declare const MOCK_GOOGLE_CONTACTS: Contact[];
4
+ //# sourceMappingURL=mockData.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mockData.d.ts","sourceRoot":"","sources":["../../../src/constants/mockData.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iCAAiC,CAAC;AAG/D,eAAO,MAAM,aAAa,EAAE,OAAO,EAOlC,CAAC;AAGF,eAAO,MAAM,oBAAoB,EAAE,OAAO,EAOzC,CAAC"}
@@ -0,0 +1,238 @@
1
+ /**
2
+ * VortexModulesContext
3
+ *
4
+ * Internal context for passing optional module configuration AND loader functions
5
+ * from entry points (VortexInvite/InviteFormWeb) down to child components
6
+ * without prop drilling.
7
+ *
8
+ * This is completely internal to the SDK - end users only need to pass props
9
+ * to <VortexInvite> and everything works automatically.
10
+ *
11
+ * The key insight is that entry points inject the appropriate loader functions:
12
+ * - Native entry (index.tsx/InviteFormMobile) injects loaders from moduleLoaders.ts
13
+ * - Web entry (preview.tsx/InviteFormWeb) injects loaders from moduleLoaders.web.ts
14
+ *
15
+ * This way, components don't import loaders directly, avoiding Metro/webpack bundler issues.
16
+ *
17
+ * Example usage (internal):
18
+ * ```tsx
19
+ * // In a child component
20
+ * const { modules, loaders } = useVortexModules();
21
+ * const GradientComponent = loaders.loadGradientComponent(modules?.gradient);
22
+ * ```
23
+ */
24
+ import React, { ReactNode, ComponentType } from 'react';
25
+ /**
26
+ * Supported gradient library module names.
27
+ * Users specify which library they have installed.
28
+ */
29
+ export type GradientModuleName = 'expo-linear-gradient' | 'react-native-linear-gradient';
30
+ /**
31
+ * Supported haptics library module names.
32
+ */
33
+ export type HapticsModuleName = 'expo-haptics';
34
+ /**
35
+ * Supported QR code library module names.
36
+ */
37
+ export type QRCodeModuleName = 'react-native-qrcode-svg' | 'react-qr-code';
38
+ /**
39
+ * Supported clipboard library module names.
40
+ */
41
+ export type ClipboardModuleName = 'expo-clipboard' | '@react-native-clipboard/clipboard';
42
+ /**
43
+ * Supported sharing library module names.
44
+ */
45
+ export type SharingModuleName = 'expo-sharing';
46
+ /**
47
+ * Unified modules configuration object.
48
+ * Users specify which optional native libraries they have installed via a single prop.
49
+ *
50
+ * @example
51
+ * ```tsx
52
+ * <VortexInvite
53
+ * componentId="abc123"
54
+ * modules={{
55
+ * gradient: 'expo-linear-gradient',
56
+ * haptics: 'expo-haptics',
57
+ * qrCode: 'react-native-qrcode-svg',
58
+ * }}
59
+ * />
60
+ * ```
61
+ */
62
+ export interface VortexModules {
63
+ /**
64
+ * Gradient library for button backgrounds.
65
+ * For Expo: 'expo-linear-gradient'
66
+ * For bare RN: 'react-native-linear-gradient'
67
+ */
68
+ gradient?: GradientModuleName;
69
+ /**
70
+ * Haptics library for touch feedback.
71
+ * Currently only 'expo-haptics' is supported.
72
+ */
73
+ haptics?: HapticsModuleName;
74
+ /**
75
+ * QR code library for QR code display.
76
+ * For native: 'react-native-qrcode-svg'
77
+ * For web: 'react-qr-code'
78
+ */
79
+ qrCode?: QRCodeModuleName;
80
+ /**
81
+ * Clipboard library for copy functionality.
82
+ * For Expo: 'expo-clipboard'
83
+ * For bare RN: '@react-native-clipboard/clipboard'
84
+ */
85
+ clipboard?: ClipboardModuleName;
86
+ /**
87
+ * Sharing library for native share sheet.
88
+ * Currently only 'expo-sharing' is supported.
89
+ */
90
+ sharing?: SharingModuleName;
91
+ }
92
+ /**
93
+ * Props for gradient components (compatible with both expo and react-native-linear-gradient)
94
+ */
95
+ export interface GradientProps {
96
+ colors: string[];
97
+ locations?: number[];
98
+ start?: {
99
+ x: number;
100
+ y: number;
101
+ };
102
+ end?: {
103
+ x: number;
104
+ y: number;
105
+ };
106
+ style?: any;
107
+ children?: React.ReactNode;
108
+ }
109
+ /**
110
+ * Parsed gradient data structure
111
+ */
112
+ export interface ParsedGradient {
113
+ type: 'linear';
114
+ angle: number;
115
+ colors: string[];
116
+ locations: number[];
117
+ }
118
+ /**
119
+ * Gradient points for LinearGradient component
120
+ */
121
+ export interface GradientPoints {
122
+ start: {
123
+ x: number;
124
+ y: number;
125
+ };
126
+ end: {
127
+ x: number;
128
+ y: number;
129
+ };
130
+ }
131
+ /**
132
+ * Haptic feedback style
133
+ */
134
+ export type HapticStyle = 'light' | 'medium' | 'heavy';
135
+ /**
136
+ * Module loader functions interface.
137
+ * These are injected by entry points (native vs web) to avoid direct imports
138
+ * that would cause bundler issues.
139
+ */
140
+ export interface ModuleLoaders {
141
+ /**
142
+ * Loads the gradient component based on the specified module name.
143
+ */
144
+ loadGradientComponent: (moduleName: GradientModuleName | undefined) => ComponentType<GradientProps> | null;
145
+ /**
146
+ * Parses a CSS linear-gradient string into a structured format.
147
+ */
148
+ parseCSSLinearGradient: (css: string) => ParsedGradient | null;
149
+ /**
150
+ * Converts a CSS gradient angle to start/end points for LinearGradient component.
151
+ */
152
+ angleToGradientPoints: (angle: number) => GradientPoints;
153
+ /**
154
+ * Extracts the first color from a CSS gradient string.
155
+ */
156
+ parseGradientFirstColor: (gradientString: string) => string | null;
157
+ }
158
+ /**
159
+ * Internal configuration for the modules context.
160
+ * This combines the user-facing modules config with internal loader functions.
161
+ */
162
+ export interface VortexModulesConfig {
163
+ /**
164
+ * Unified modules configuration object.
165
+ * Users specify which optional native libraries they have installed.
166
+ */
167
+ modules?: VortexModules;
168
+ /**
169
+ * Module loader functions injected by entry points.
170
+ * This allows native and web entry points to provide different implementations.
171
+ * @internal
172
+ */
173
+ loaders?: ModuleLoaders;
174
+ }
175
+ declare const VortexModulesContext: React.Context<VortexModulesConfig>;
176
+ /**
177
+ * Hook to access the module configuration from any child component.
178
+ *
179
+ * @returns The current module configuration including loaders
180
+ *
181
+ * @example
182
+ * ```tsx
183
+ * function MyButton() {
184
+ * const { modules, loaders } = useVortexModules();
185
+ * const GradientComponent = loaders?.loadGradientComponent(modules?.gradient);
186
+ * // Use GradientComponent if available
187
+ * }
188
+ * ```
189
+ */
190
+ export declare function useVortexModules(): VortexModulesConfig & {
191
+ gradientModule?: GradientModuleName;
192
+ hapticsModule?: HapticsModuleName;
193
+ qrCodeModule?: QRCodeModuleName;
194
+ clipboardModule?: ClipboardModuleName;
195
+ sharingModule?: SharingModuleName;
196
+ };
197
+ /**
198
+ * Props for the VortexModulesProvider component.
199
+ */
200
+ export interface VortexModulesProviderProps {
201
+ /**
202
+ * Module configuration to provide to children.
203
+ */
204
+ config: VortexModulesConfig;
205
+ /**
206
+ * Child components that will have access to the module configuration.
207
+ */
208
+ children: ReactNode;
209
+ }
210
+ /**
211
+ * Provider component that makes module configuration available to all children.
212
+ *
213
+ * This is used internally by VortexInvite and InviteFormWeb.
214
+ * End users don't need to use this directly.
215
+ *
216
+ * @example
217
+ * ```tsx
218
+ * // Internal usage in VortexInvite (native)
219
+ * import * as nativeLoaders from '../utils/moduleLoaders';
220
+ *
221
+ * <VortexModulesProvider config={{
222
+ * modules: { gradient: 'expo-linear-gradient', haptics: 'expo-haptics' },
223
+ * loaders: nativeLoaders
224
+ * }}>
225
+ * <InviteFormCore {...props} />
226
+ * </VortexModulesProvider>
227
+ *
228
+ * // Internal usage in InviteFormWeb (web)
229
+ * import * as webLoaders from '../utils/moduleLoaders.web';
230
+ *
231
+ * <VortexModulesProvider config={{ loaders: webLoaders }}>
232
+ * <InviteFormCore {...props} />
233
+ * </VortexModulesProvider>
234
+ * ```
235
+ */
236
+ export declare function VortexModulesProvider({ config, children }: VortexModulesProviderProps): React.JSX.Element;
237
+ export { VortexModulesContext };
238
+ //# sourceMappingURL=VortexModulesContext.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VortexModulesContext.d.ts","sourceRoot":"","sources":["../../../src/context/VortexModulesContext.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ /**
3
+ * Types for the Find Friends feature.
4
+ *
5
+ * The Find Friends component displays a list of contacts provided by the customer.
6
+ * Each contact has a user ID that identifies them in the customer's platform.
7
+ * When the user taps "Connect", an invitation is created via the Vortex backend.
8
+ */
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ //# sourceMappingURL=findFriends.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"findFriends.js","sourceRoot":"","sources":["../../src/types/findFriends.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG","sourcesContent":["/**\n * Types for the Find Friends feature.\n *\n * The Find Friends component displays a list of contacts provided by the customer.\n * Each contact has a user ID that identifies them in the customer's platform.\n * When the user taps \"Connect\", an invitation is created via the Vortex backend.\n */\n\n/**\n * A contact in the Find Friends list.\n * Provided by the customer via findFriendsConfig.contacts.\n */\nexport interface FindFriendsContact {\n /** The user ID that identifies this contact in the customer's platform */\n userId: string;\n /** Display name of the contact */\n name: string;\n /** Optional subtitle (e.g., username, email, or app-specific info) */\n subtitle?: string;\n /** Avatar/profile image URL (optional) */\n avatarUrl?: string;\n /** Optional metadata for app-specific data */\n metadata?: Record<string, unknown>;\n}\n\n/**\n * Configuration for the Find Friends feature.\n * Passed to VortexInvite to enable and configure the Find Friends component.\n */\nexport interface FindFriendsConfig {\n /**\n * List of contacts to display.\n * Each contact must have a userId that identifies them in the customer's platform.\n *\n * @example\n * ```typescript\n * <VortexInvite\n * findFriendsConfig={{\n * contacts: [\n * { userId: 'user-123', name: 'John Doe', subtitle: '@johndoe' },\n * { userId: 'user-456', name: 'Jane Smith', avatarUrl: 'https://...' },\n * ],\n * onConnect: async (contact) => {\n * // Return true to create the invitation via Vortex backend\n * return true;\n * },\n * }}\n * />\n * ```\n */\n contacts: FindFriendsContact[];\n\n /**\n * Called when user taps \"Connect\" on a contact.\n * The customer implements this callback to perform any pre-connection logic.\n * \n * If the callback returns true, the SDK will create an invitation via the\n * Vortex backend.\n * \n * If the callback returns false, no invitation is created.\n *\n * @param contact - The contact that was tapped\n * @returns Promise resolving to true if the invitation should be created, false otherwise\n *\n * @example\n * ```typescript\n * onConnect: async (contact) => {\n * // Perform any pre-connection validation\n * const canConnect = await myApi.checkCanConnect(contact.userId);\n * if (!canConnect) {\n * showError('Cannot connect to this user');\n * return false;\n * }\n * return true; // SDK will create the invitation\n * }\n * ```\n */\n onConnect: (contact: FindFriendsContact) => Promise<boolean> | boolean;\n\n /**\n * Optional: Called after an invitation is successfully created.\n * Use this to update your UI or local state.\n *\n * @param contact - The contact for whom the invitation was created\n */\n onInvitationCreated?: (contact: FindFriendsContact) => void;\n\n /**\n * Optional: Called if creating the invitation fails.\n *\n * @param contact - The contact for whom the invitation failed\n * @param error - The error that occurred\n */\n onInvitationError?: (contact: FindFriendsContact, error: Error) => void;\n\n /**\n * Optional: Custom text for the \"Connect\" button.\n * @default \"Connect\"\n */\n connectButtonText?: string;\n\n /**\n * Optional: Custom empty state message when no contacts are provided.\n * @default \"No contacts found\"\n */\n emptyStateMessage?: string;\n}\n"]}
@@ -0,0 +1,55 @@
1
+ import { PlatformOperations } from '../types/platformOperations';
2
+ export type ViewType = 'main' | 'email' | 'contacts' | 'googleContacts' | 'qrcode';
3
+ export interface Contact {
4
+ id: string;
5
+ name: string;
6
+ email: string;
7
+ imageUri?: string;
8
+ }
9
+ export declare function useInvitationFormLogic(platformOps: PlatformOperations, contacts?: Contact[], googleContacts?: Contact[], getShareableInviteLink?: () => Promise<string | undefined>): {
10
+ view: ViewType;
11
+ emailInput: string;
12
+ emails: string[];
13
+ role: "member" | "admin";
14
+ copySuccess: boolean;
15
+ shareSuccess: boolean;
16
+ sendSuccess: boolean;
17
+ searchQuery: string;
18
+ invitedContactIds: Set<string>;
19
+ invitedGoogleContactIds: Set<string>;
20
+ googleSearchQuery: string;
21
+ invitationLink: string;
22
+ loadingContactIds: Set<string>;
23
+ loadingGoogleContactIds: Set<string>;
24
+ loadingEmailInvite: boolean;
25
+ loadingCopy: boolean;
26
+ loadingShare: boolean;
27
+ loadingInvitationLink: boolean;
28
+ lastInvalidEmail: string | null;
29
+ setView: import("react").Dispatch<import("react").SetStateAction<ViewType>>;
30
+ setEmailInput: import("react").Dispatch<import("react").SetStateAction<string>>;
31
+ setEmails: import("react").Dispatch<import("react").SetStateAction<string[]>>;
32
+ setRole: import("react").Dispatch<import("react").SetStateAction<"member" | "admin">>;
33
+ setCopySuccess: import("react").Dispatch<import("react").SetStateAction<boolean>>;
34
+ setShareSuccess: import("react").Dispatch<import("react").SetStateAction<boolean>>;
35
+ setSendSuccess: import("react").Dispatch<import("react").SetStateAction<boolean>>;
36
+ setSearchQuery: import("react").Dispatch<import("react").SetStateAction<string>>;
37
+ setInvitedContactIds: import("react").Dispatch<import("react").SetStateAction<Set<string>>>;
38
+ setInvitedGoogleContactIds: import("react").Dispatch<import("react").SetStateAction<Set<string>>>;
39
+ setGoogleSearchQuery: import("react").Dispatch<import("react").SetStateAction<string>>;
40
+ handleClose: () => void;
41
+ handleSendInvitation: () => Promise<void>;
42
+ handleCopyLink: () => Promise<void>;
43
+ handleShare: () => Promise<void>;
44
+ isValidEmail: (email: string) => boolean;
45
+ handleEmailSubmit: (overrideEmail?: string) => void;
46
+ handleRemoveEmail: (emailToRemove: string) => void;
47
+ handleSelectFromGoogle: () => void;
48
+ handleSelectFromContacts: () => void;
49
+ handleAddByEmail: () => void;
50
+ handleShowQrCode: () => void;
51
+ handleBackToMain: () => void;
52
+ handleInviteContact: (contactId: string) => Promise<void>;
53
+ handleInviteGoogleContact: (contactId: string) => Promise<void>;
54
+ };
55
+ //# sourceMappingURL=useInvitationFormLogic.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useInvitationFormLogic.d.ts","sourceRoot":"","sources":["../../../src/hooks/useInvitationFormLogic.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAEjE,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG,OAAO,GAAG,UAAU,GAAG,gBAAgB,GAAG,QAAQ,CAAC;AAEnF,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,wBAAgB,sBAAsB,CACpC,WAAW,EAAE,kBAAkB,EAC/B,QAAQ,CAAC,EAAE,OAAO,EAAE,EACpB,cAAc,CAAC,EAAE,OAAO,EAAE,EAC1B,sBAAsB,CAAC,EAAE,MAAM,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0BAqI7B,MAAM,KAAG,OAAO;wCAQF,MAAM;uCAiBP,MAAM;;;;;;qCA6BF,MAAM;2CAmCA,MAAM;EAoF3D"}