@harkenapp/sdk-react-native 0.0.1-alpha.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 (235) hide show
  1. package/README.md +67 -0
  2. package/app.plugin.cjs +135 -0
  3. package/app.plugin.js +1 -0
  4. package/dist/api/client.d.ts +67 -0
  5. package/dist/api/client.d.ts.map +1 -0
  6. package/dist/api/client.js +163 -0
  7. package/dist/api/client.js.map +1 -0
  8. package/dist/api/errors.d.ts +46 -0
  9. package/dist/api/errors.d.ts.map +1 -0
  10. package/dist/api/errors.js +72 -0
  11. package/dist/api/errors.js.map +1 -0
  12. package/dist/api/index.d.ts +7 -0
  13. package/dist/api/index.d.ts.map +1 -0
  14. package/dist/api/index.js +20 -0
  15. package/dist/api/index.js.map +1 -0
  16. package/dist/api/retry.d.ts +29 -0
  17. package/dist/api/retry.d.ts.map +1 -0
  18. package/dist/api/retry.js +74 -0
  19. package/dist/api/retry.js.map +1 -0
  20. package/dist/attachments/FeedbackSheet.d.ts +88 -0
  21. package/dist/attachments/FeedbackSheet.d.ts.map +1 -0
  22. package/dist/attachments/FeedbackSheet.js +250 -0
  23. package/dist/attachments/FeedbackSheet.js.map +1 -0
  24. package/dist/attachments/index.d.ts +20 -0
  25. package/dist/attachments/index.d.ts.map +1 -0
  26. package/dist/attachments/index.js +40 -0
  27. package/dist/attachments/index.js.map +1 -0
  28. package/dist/components/AttachmentGrid.d.ts +94 -0
  29. package/dist/components/AttachmentGrid.d.ts.map +1 -0
  30. package/dist/components/AttachmentGrid.js +132 -0
  31. package/dist/components/AttachmentGrid.js.map +1 -0
  32. package/dist/components/AttachmentPicker.d.ts +98 -0
  33. package/dist/components/AttachmentPicker.d.ts.map +1 -0
  34. package/dist/components/AttachmentPicker.js +297 -0
  35. package/dist/components/AttachmentPicker.js.map +1 -0
  36. package/dist/components/AttachmentPreview.d.ts +78 -0
  37. package/dist/components/AttachmentPreview.d.ts.map +1 -0
  38. package/dist/components/AttachmentPreview.js +133 -0
  39. package/dist/components/AttachmentPreview.js.map +1 -0
  40. package/dist/components/CategorySelector.d.ts +77 -0
  41. package/dist/components/CategorySelector.d.ts.map +1 -0
  42. package/dist/components/CategorySelector.js +117 -0
  43. package/dist/components/CategorySelector.js.map +1 -0
  44. package/dist/components/FeedbackForm.d.ts +50 -0
  45. package/dist/components/FeedbackForm.d.ts.map +1 -0
  46. package/dist/components/FeedbackForm.js +141 -0
  47. package/dist/components/FeedbackForm.js.map +1 -0
  48. package/dist/components/FeedbackSheet.d.ts +75 -0
  49. package/dist/components/FeedbackSheet.d.ts.map +1 -0
  50. package/dist/components/FeedbackSheet.js +215 -0
  51. package/dist/components/FeedbackSheet.js.map +1 -0
  52. package/dist/components/ThemedButton.d.ts +23 -0
  53. package/dist/components/ThemedButton.d.ts.map +1 -0
  54. package/dist/components/ThemedButton.js +77 -0
  55. package/dist/components/ThemedButton.js.map +1 -0
  56. package/dist/components/ThemedText.d.ts +16 -0
  57. package/dist/components/ThemedText.d.ts.map +1 -0
  58. package/dist/components/ThemedText.js +44 -0
  59. package/dist/components/ThemedText.js.map +1 -0
  60. package/dist/components/ThemedTextInput.d.ts +13 -0
  61. package/dist/components/ThemedTextInput.d.ts.map +1 -0
  62. package/dist/components/ThemedTextInput.js +76 -0
  63. package/dist/components/ThemedTextInput.js.map +1 -0
  64. package/dist/components/UploadStatusOverlay.d.ts +82 -0
  65. package/dist/components/UploadStatusOverlay.d.ts.map +1 -0
  66. package/dist/components/UploadStatusOverlay.js +319 -0
  67. package/dist/components/UploadStatusOverlay.js.map +1 -0
  68. package/dist/components/index.d.ts +19 -0
  69. package/dist/components/index.d.ts.map +1 -0
  70. package/dist/components/index.js +28 -0
  71. package/dist/components/index.js.map +1 -0
  72. package/dist/context/HarkenContext.d.ts +62 -0
  73. package/dist/context/HarkenContext.d.ts.map +1 -0
  74. package/dist/context/HarkenContext.js +128 -0
  75. package/dist/context/HarkenContext.js.map +1 -0
  76. package/dist/context/index.d.ts +3 -0
  77. package/dist/context/index.d.ts.map +1 -0
  78. package/dist/context/index.js +7 -0
  79. package/dist/context/index.js.map +1 -0
  80. package/dist/domain/index.d.ts +3 -0
  81. package/dist/domain/index.d.ts.map +1 -0
  82. package/dist/domain/index.js +7 -0
  83. package/dist/domain/index.js.map +1 -0
  84. package/dist/domain/upload-queue.d.ts +116 -0
  85. package/dist/domain/upload-queue.d.ts.map +1 -0
  86. package/dist/domain/upload-queue.js +34 -0
  87. package/dist/domain/upload-queue.js.map +1 -0
  88. package/dist/hooks/index.d.ts +6 -0
  89. package/dist/hooks/index.d.ts.map +1 -0
  90. package/dist/hooks/index.js +16 -0
  91. package/dist/hooks/index.js.map +1 -0
  92. package/dist/hooks/useAnonymousId.d.ts +28 -0
  93. package/dist/hooks/useAnonymousId.d.ts.map +1 -0
  94. package/dist/hooks/useAnonymousId.js +59 -0
  95. package/dist/hooks/useAnonymousId.js.map +1 -0
  96. package/dist/hooks/useAttachmentPicker.d.ts +84 -0
  97. package/dist/hooks/useAttachmentPicker.d.ts.map +1 -0
  98. package/dist/hooks/useAttachmentPicker.js +181 -0
  99. package/dist/hooks/useAttachmentPicker.js.map +1 -0
  100. package/dist/hooks/useAttachmentStatus.d.ts +51 -0
  101. package/dist/hooks/useAttachmentStatus.d.ts.map +1 -0
  102. package/dist/hooks/useAttachmentStatus.js +69 -0
  103. package/dist/hooks/useAttachmentStatus.js.map +1 -0
  104. package/dist/hooks/useAttachmentUpload.d.ts +101 -0
  105. package/dist/hooks/useAttachmentUpload.d.ts.map +1 -0
  106. package/dist/hooks/useAttachmentUpload.js +293 -0
  107. package/dist/hooks/useAttachmentUpload.js.map +1 -0
  108. package/dist/hooks/useFeedback.d.ts +55 -0
  109. package/dist/hooks/useFeedback.d.ts.map +1 -0
  110. package/dist/hooks/useFeedback.js +96 -0
  111. package/dist/hooks/useFeedback.js.map +1 -0
  112. package/dist/hooks/useHarkenContext.d.ts +25 -0
  113. package/dist/hooks/useHarkenContext.d.ts.map +1 -0
  114. package/dist/hooks/useHarkenContext.js +35 -0
  115. package/dist/hooks/useHarkenContext.js.map +1 -0
  116. package/dist/hooks/useHarkenTheme.d.ts +26 -0
  117. package/dist/hooks/useHarkenTheme.d.ts.map +1 -0
  118. package/dist/hooks/useHarkenTheme.js +36 -0
  119. package/dist/hooks/useHarkenTheme.js.map +1 -0
  120. package/dist/index.d.ts +49 -0
  121. package/dist/index.d.ts.map +1 -0
  122. package/dist/index.js +91 -0
  123. package/dist/index.js.map +1 -0
  124. package/dist/services/index.d.ts +4 -0
  125. package/dist/services/index.d.ts.map +1 -0
  126. package/dist/services/index.js +9 -0
  127. package/dist/services/index.js.map +1 -0
  128. package/dist/services/uploadQueueService.d.ts +193 -0
  129. package/dist/services/uploadQueueService.d.ts.map +1 -0
  130. package/dist/services/uploadQueueService.js +623 -0
  131. package/dist/services/uploadQueueService.js.map +1 -0
  132. package/dist/services/uploadQueueStorage.d.ts +30 -0
  133. package/dist/services/uploadQueueStorage.d.ts.map +1 -0
  134. package/dist/services/uploadQueueStorage.js +77 -0
  135. package/dist/services/uploadQueueStorage.js.map +1 -0
  136. package/dist/storage/IdentityStore.d.ts +38 -0
  137. package/dist/storage/IdentityStore.d.ts.map +1 -0
  138. package/dist/storage/IdentityStore.js +83 -0
  139. package/dist/storage/IdentityStore.js.map +1 -0
  140. package/dist/storage/SecureStoreAdapter.d.ts +28 -0
  141. package/dist/storage/SecureStoreAdapter.d.ts.map +1 -0
  142. package/dist/storage/SecureStoreAdapter.js +52 -0
  143. package/dist/storage/SecureStoreAdapter.js.map +1 -0
  144. package/dist/storage/defaultStorage.d.ts +20 -0
  145. package/dist/storage/defaultStorage.d.ts.map +1 -0
  146. package/dist/storage/defaultStorage.js +131 -0
  147. package/dist/storage/defaultStorage.js.map +1 -0
  148. package/dist/storage/index.d.ts +6 -0
  149. package/dist/storage/index.d.ts.map +1 -0
  150. package/dist/storage/index.js +13 -0
  151. package/dist/storage/index.js.map +1 -0
  152. package/dist/storage/types.d.ts +32 -0
  153. package/dist/storage/types.d.ts.map +1 -0
  154. package/dist/storage/types.js +11 -0
  155. package/dist/storage/types.js.map +1 -0
  156. package/dist/theme/defaults.d.ts +43 -0
  157. package/dist/theme/defaults.d.ts.map +1 -0
  158. package/dist/theme/defaults.js +128 -0
  159. package/dist/theme/defaults.js.map +1 -0
  160. package/dist/theme/index.d.ts +3 -0
  161. package/dist/theme/index.d.ts.map +1 -0
  162. package/dist/theme/index.js +14 -0
  163. package/dist/theme/index.js.map +1 -0
  164. package/dist/theme/types.d.ts +136 -0
  165. package/dist/theme/types.d.ts.map +1 -0
  166. package/dist/theme/types.js +3 -0
  167. package/dist/theme/types.js.map +1 -0
  168. package/dist/types/config.d.ts +100 -0
  169. package/dist/types/config.d.ts.map +1 -0
  170. package/dist/types/config.js +3 -0
  171. package/dist/types/config.js.map +1 -0
  172. package/dist/types/index.d.ts +3 -0
  173. package/dist/types/index.d.ts.map +1 -0
  174. package/dist/types/index.js +3 -0
  175. package/dist/types/index.js.map +1 -0
  176. package/dist/types/openapi.d.ts +601 -0
  177. package/dist/types/openapi.d.ts.map +1 -0
  178. package/dist/types/openapi.js +7 -0
  179. package/dist/types/openapi.js.map +1 -0
  180. package/dist/utils/index.d.ts +2 -0
  181. package/dist/utils/index.d.ts.map +1 -0
  182. package/dist/utils/index.js +6 -0
  183. package/dist/utils/index.js.map +1 -0
  184. package/dist/utils/uuid.d.ts +10 -0
  185. package/dist/utils/uuid.d.ts.map +1 -0
  186. package/dist/utils/uuid.js +60 -0
  187. package/dist/utils/uuid.js.map +1 -0
  188. package/package.json +124 -0
  189. package/src/@types/expo-file-system-legacy.d.ts +13 -0
  190. package/src/api/client.ts +250 -0
  191. package/src/api/errors.ts +84 -0
  192. package/src/api/index.ts +15 -0
  193. package/src/api/retry.ts +99 -0
  194. package/src/attachments/FeedbackSheet.tsx +400 -0
  195. package/src/attachments/index.ts +70 -0
  196. package/src/components/AttachmentGrid.tsx +247 -0
  197. package/src/components/AttachmentPicker.tsx +391 -0
  198. package/src/components/AttachmentPreview.tsx +210 -0
  199. package/src/components/CategorySelector.tsx +174 -0
  200. package/src/components/FeedbackForm.tsx +216 -0
  201. package/src/components/FeedbackSheet.tsx +321 -0
  202. package/src/components/ThemedButton.tsx +127 -0
  203. package/src/components/ThemedText.tsx +65 -0
  204. package/src/components/ThemedTextInput.tsx +65 -0
  205. package/src/components/UploadStatusOverlay.tsx +440 -0
  206. package/src/components/index.ts +39 -0
  207. package/src/context/HarkenContext.tsx +129 -0
  208. package/src/context/index.ts +2 -0
  209. package/src/domain/index.ts +12 -0
  210. package/src/domain/upload-queue.ts +131 -0
  211. package/src/hooks/index.ts +10 -0
  212. package/src/hooks/useAnonymousId.ts +68 -0
  213. package/src/hooks/useAttachmentPicker.ts +243 -0
  214. package/src/hooks/useAttachmentStatus.ts +86 -0
  215. package/src/hooks/useAttachmentUpload.ts +370 -0
  216. package/src/hooks/useFeedback.ts +139 -0
  217. package/src/hooks/useHarkenContext.ts +35 -0
  218. package/src/hooks/useHarkenTheme.ts +36 -0
  219. package/src/index.ts +168 -0
  220. package/src/services/index.ts +11 -0
  221. package/src/services/uploadQueueService.ts +727 -0
  222. package/src/services/uploadQueueStorage.ts +78 -0
  223. package/src/storage/IdentityStore.ts +89 -0
  224. package/src/storage/SecureStoreAdapter.ts +59 -0
  225. package/src/storage/defaultStorage.ts +109 -0
  226. package/src/storage/index.ts +5 -0
  227. package/src/storage/types.ts +34 -0
  228. package/src/theme/defaults.ts +151 -0
  229. package/src/theme/index.ts +23 -0
  230. package/src/theme/types.ts +157 -0
  231. package/src/types/config.ts +112 -0
  232. package/src/types/index.ts +10 -0
  233. package/src/types/openapi.ts +601 -0
  234. package/src/utils/index.ts +1 -0
  235. package/src/utils/uuid.ts +77 -0
@@ -0,0 +1,128 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.darkTheme = exports.lightTheme = exports.defaultRadii = exports.defaultSpacing = exports.defaultTypography = exports.darkColors = exports.lightColors = void 0;
4
+ exports.createTheme = createTheme;
5
+ /**
6
+ * Default light mode colors.
7
+ * Neutral, accessible palette with no hard-coded branding.
8
+ */
9
+ exports.lightColors = {
10
+ primary: '#2563EB', // Blue 600
11
+ primaryPressed: '#1D4ED8', // Blue 700
12
+ background: '#FFFFFF',
13
+ backgroundSecondary: '#F9FAFB', // Gray 50
14
+ text: '#111827', // Gray 900
15
+ textSecondary: '#6B7280', // Gray 500
16
+ textPlaceholder: '#9CA3AF', // Gray 400
17
+ textOnPrimary: '#FFFFFF',
18
+ border: '#E5E7EB', // Gray 200
19
+ borderFocused: '#2563EB', // Blue 600
20
+ error: '#DC2626', // Red 600
21
+ success: '#16A34A', // Green 600
22
+ warning: '#D97706', // Amber 600
23
+ info: '#2563EB', // Blue 600
24
+ overlay: 'rgba(0, 0, 0, 0.3)',
25
+ overlayDark: 'rgba(0, 0, 0, 0.6)',
26
+ accent1: '#2563EB', // Blue 600 (camera)
27
+ accent2: '#16A34A', // Green 600 (library)
28
+ accent3: '#D97706', // Amber 600 (files)
29
+ };
30
+ /**
31
+ * Default dark mode colors.
32
+ * Inverted palette optimized for dark backgrounds.
33
+ */
34
+ exports.darkColors = {
35
+ primary: '#3B82F6', // Blue 500
36
+ primaryPressed: '#2563EB', // Blue 600
37
+ background: '#111827', // Gray 900
38
+ backgroundSecondary: '#1F2937', // Gray 800
39
+ text: '#F9FAFB', // Gray 50
40
+ textSecondary: '#9CA3AF', // Gray 400
41
+ textPlaceholder: '#6B7280', // Gray 500
42
+ textOnPrimary: '#FFFFFF',
43
+ border: '#374151', // Gray 700
44
+ borderFocused: '#3B82F6', // Blue 500
45
+ error: '#EF4444', // Red 500
46
+ success: '#22C55E', // Green 500
47
+ warning: '#F59E0B', // Amber 500
48
+ info: '#3B82F6', // Blue 500
49
+ overlay: 'rgba(0, 0, 0, 0.5)',
50
+ overlayDark: 'rgba(0, 0, 0, 0.8)',
51
+ accent1: '#3B82F6', // Blue 500 (camera)
52
+ accent2: '#22C55E', // Green 500 (library)
53
+ accent3: '#F59E0B', // Amber 500 (files)
54
+ };
55
+ /**
56
+ * Default typography settings.
57
+ * Uses system font for maximum compatibility.
58
+ */
59
+ exports.defaultTypography = {
60
+ fontFamily: 'System',
61
+ fontFamilyHeading: undefined, // Falls back to fontFamily
62
+ titleSize: 20,
63
+ titleLineHeight: 1.3,
64
+ titleWeight: '600',
65
+ bodySize: 16,
66
+ bodyLineHeight: 1.5,
67
+ bodyWeight: 'normal',
68
+ labelSize: 14,
69
+ labelWeight: '500',
70
+ captionSize: 12,
71
+ captionWeight: 'normal',
72
+ };
73
+ /**
74
+ * Default spacing scale.
75
+ * Based on a 4px grid system.
76
+ */
77
+ exports.defaultSpacing = {
78
+ xs: 4,
79
+ sm: 8,
80
+ md: 16,
81
+ lg: 24,
82
+ xl: 32,
83
+ xxl: 48,
84
+ };
85
+ /**
86
+ * Default border radius values.
87
+ */
88
+ exports.defaultRadii = {
89
+ none: 0,
90
+ sm: 4,
91
+ md: 8,
92
+ lg: 16,
93
+ xl: 20,
94
+ full: 9999,
95
+ };
96
+ /**
97
+ * Complete default light theme.
98
+ */
99
+ exports.lightTheme = {
100
+ colors: exports.lightColors,
101
+ typography: exports.defaultTypography,
102
+ spacing: exports.defaultSpacing,
103
+ radii: exports.defaultRadii,
104
+ };
105
+ /**
106
+ * Complete default dark theme.
107
+ */
108
+ exports.darkTheme = {
109
+ colors: exports.darkColors,
110
+ typography: exports.defaultTypography,
111
+ spacing: exports.defaultSpacing,
112
+ radii: exports.defaultRadii,
113
+ };
114
+ /**
115
+ * Creates a theme by merging overrides with a base theme.
116
+ */
117
+ function createTheme(baseTheme, overrides) {
118
+ if (!overrides) {
119
+ return baseTheme;
120
+ }
121
+ return {
122
+ colors: { ...baseTheme.colors, ...overrides.colors },
123
+ typography: { ...baseTheme.typography, ...overrides.typography },
124
+ spacing: { ...baseTheme.spacing, ...overrides.spacing },
125
+ radii: { ...baseTheme.radii, ...overrides.radii },
126
+ };
127
+ }
128
+ //# sourceMappingURL=defaults.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"defaults.js","sourceRoot":"","sources":["../../src/theme/defaults.ts"],"names":[],"mappings":";;;AAmIA,kCAmBC;AA9ID;;;GAGG;AACU,QAAA,WAAW,GAAiB;IACvC,OAAO,EAAE,SAAS,EAAE,WAAW;IAC/B,cAAc,EAAE,SAAS,EAAE,WAAW;IACtC,UAAU,EAAE,SAAS;IACrB,mBAAmB,EAAE,SAAS,EAAE,UAAU;IAC1C,IAAI,EAAE,SAAS,EAAE,WAAW;IAC5B,aAAa,EAAE,SAAS,EAAE,WAAW;IACrC,eAAe,EAAE,SAAS,EAAE,WAAW;IACvC,aAAa,EAAE,SAAS;IACxB,MAAM,EAAE,SAAS,EAAE,WAAW;IAC9B,aAAa,EAAE,SAAS,EAAE,WAAW;IACrC,KAAK,EAAE,SAAS,EAAE,UAAU;IAC5B,OAAO,EAAE,SAAS,EAAE,YAAY;IAChC,OAAO,EAAE,SAAS,EAAE,YAAY;IAChC,IAAI,EAAE,SAAS,EAAE,WAAW;IAC5B,OAAO,EAAE,oBAAoB;IAC7B,WAAW,EAAE,oBAAoB;IACjC,OAAO,EAAE,SAAS,EAAE,oBAAoB;IACxC,OAAO,EAAE,SAAS,EAAE,sBAAsB;IAC1C,OAAO,EAAE,SAAS,EAAE,oBAAoB;CACzC,CAAC;AAEF;;;GAGG;AACU,QAAA,UAAU,GAAiB;IACtC,OAAO,EAAE,SAAS,EAAE,WAAW;IAC/B,cAAc,EAAE,SAAS,EAAE,WAAW;IACtC,UAAU,EAAE,SAAS,EAAE,WAAW;IAClC,mBAAmB,EAAE,SAAS,EAAE,WAAW;IAC3C,IAAI,EAAE,SAAS,EAAE,UAAU;IAC3B,aAAa,EAAE,SAAS,EAAE,WAAW;IACrC,eAAe,EAAE,SAAS,EAAE,WAAW;IACvC,aAAa,EAAE,SAAS;IACxB,MAAM,EAAE,SAAS,EAAE,WAAW;IAC9B,aAAa,EAAE,SAAS,EAAE,WAAW;IACrC,KAAK,EAAE,SAAS,EAAE,UAAU;IAC5B,OAAO,EAAE,SAAS,EAAE,YAAY;IAChC,OAAO,EAAE,SAAS,EAAE,YAAY;IAChC,IAAI,EAAE,SAAS,EAAE,WAAW;IAC5B,OAAO,EAAE,oBAAoB;IAC7B,WAAW,EAAE,oBAAoB;IACjC,OAAO,EAAE,SAAS,EAAE,oBAAoB;IACxC,OAAO,EAAE,SAAS,EAAE,sBAAsB;IAC1C,OAAO,EAAE,SAAS,EAAE,oBAAoB;CACzC,CAAC;AAEF;;;GAGG;AACU,QAAA,iBAAiB,GAAqB;IACjD,UAAU,EAAE,QAAQ;IACpB,iBAAiB,EAAE,SAAS,EAAE,2BAA2B;IAEzD,SAAS,EAAE,EAAE;IACb,eAAe,EAAE,GAAG;IACpB,WAAW,EAAE,KAAK;IAElB,QAAQ,EAAE,EAAE;IACZ,cAAc,EAAE,GAAG;IACnB,UAAU,EAAE,QAAQ;IAEpB,SAAS,EAAE,EAAE;IACb,WAAW,EAAE,KAAK;IAElB,WAAW,EAAE,EAAE;IACf,aAAa,EAAE,QAAQ;CACxB,CAAC;AAEF;;;GAGG;AACU,QAAA,cAAc,GAAkB;IAC3C,EAAE,EAAE,CAAC;IACL,EAAE,EAAE,CAAC;IACL,EAAE,EAAE,EAAE;IACN,EAAE,EAAE,EAAE;IACN,EAAE,EAAE,EAAE;IACN,GAAG,EAAE,EAAE;CACR,CAAC;AAEF;;GAEG;AACU,QAAA,YAAY,GAAgB;IACvC,IAAI,EAAE,CAAC;IACP,EAAE,EAAE,CAAC;IACL,EAAE,EAAE,CAAC;IACL,EAAE,EAAE,EAAE;IACN,EAAE,EAAE,EAAE;IACN,IAAI,EAAE,IAAI;CACX,CAAC;AAEF;;GAEG;AACU,QAAA,UAAU,GAAgB;IACrC,MAAM,EAAE,mBAAW;IACnB,UAAU,EAAE,yBAAiB;IAC7B,OAAO,EAAE,sBAAc;IACvB,KAAK,EAAE,oBAAY;CACpB,CAAC;AAEF;;GAEG;AACU,QAAA,SAAS,GAAgB;IACpC,MAAM,EAAE,kBAAU;IAClB,UAAU,EAAE,yBAAiB;IAC7B,OAAO,EAAE,sBAAc;IACvB,KAAK,EAAE,oBAAY;CACpB,CAAC;AAEF;;GAEG;AACH,SAAgB,WAAW,CACzB,SAAsB,EACtB,SAKC;IAED,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,OAAO;QACL,MAAM,EAAE,EAAE,GAAG,SAAS,CAAC,MAAM,EAAE,GAAG,SAAS,CAAC,MAAM,EAAE;QACpD,UAAU,EAAE,EAAE,GAAG,SAAS,CAAC,UAAU,EAAE,GAAG,SAAS,CAAC,UAAU,EAAE;QAChE,OAAO,EAAE,EAAE,GAAG,SAAS,CAAC,OAAO,EAAE,GAAG,SAAS,CAAC,OAAO,EAAE;QACvD,KAAK,EAAE,EAAE,GAAG,SAAS,CAAC,KAAK,EAAE,GAAG,SAAS,CAAC,KAAK,EAAE;KAClD,CAAC;AACJ,CAAC"}
@@ -0,0 +1,3 @@
1
+ export type { HarkenColors, HarkenTypography, HarkenSpacing, HarkenRadii, HarkenTheme, PartialHarkenTheme, TextWeight, ThemeMode, } from './types';
2
+ export { lightColors, darkColors, defaultTypography, defaultSpacing, defaultRadii, lightTheme, darkTheme, createTheme, } from './defaults';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/theme/index.ts"],"names":[],"mappings":"AACA,YAAY,EACV,YAAY,EACZ,gBAAgB,EAChB,aAAa,EACb,WAAW,EACX,WAAW,EACX,kBAAkB,EAClB,UAAU,EACV,SAAS,GACV,MAAM,SAAS,CAAC;AAGjB,OAAO,EACL,WAAW,EACX,UAAU,EACV,iBAAiB,EACjB,cAAc,EACd,YAAY,EACZ,UAAU,EACV,SAAS,EACT,WAAW,GACZ,MAAM,YAAY,CAAC"}
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createTheme = exports.darkTheme = exports.lightTheme = exports.defaultRadii = exports.defaultSpacing = exports.defaultTypography = exports.darkColors = exports.lightColors = void 0;
4
+ // Default theme exports
5
+ var defaults_1 = require("./defaults");
6
+ Object.defineProperty(exports, "lightColors", { enumerable: true, get: function () { return defaults_1.lightColors; } });
7
+ Object.defineProperty(exports, "darkColors", { enumerable: true, get: function () { return defaults_1.darkColors; } });
8
+ Object.defineProperty(exports, "defaultTypography", { enumerable: true, get: function () { return defaults_1.defaultTypography; } });
9
+ Object.defineProperty(exports, "defaultSpacing", { enumerable: true, get: function () { return defaults_1.defaultSpacing; } });
10
+ Object.defineProperty(exports, "defaultRadii", { enumerable: true, get: function () { return defaults_1.defaultRadii; } });
11
+ Object.defineProperty(exports, "lightTheme", { enumerable: true, get: function () { return defaults_1.lightTheme; } });
12
+ Object.defineProperty(exports, "darkTheme", { enumerable: true, get: function () { return defaults_1.darkTheme; } });
13
+ Object.defineProperty(exports, "createTheme", { enumerable: true, get: function () { return defaults_1.createTheme; } });
14
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/theme/index.ts"],"names":[],"mappings":";;;AAYA,wBAAwB;AACxB,uCASoB;AARlB,uGAAA,WAAW,OAAA;AACX,sGAAA,UAAU,OAAA;AACV,6GAAA,iBAAiB,OAAA;AACjB,0GAAA,cAAc,OAAA;AACd,wGAAA,YAAY,OAAA;AACZ,sGAAA,UAAU,OAAA;AACV,qGAAA,SAAS,OAAA;AACT,uGAAA,WAAW,OAAA"}
@@ -0,0 +1,136 @@
1
+ /**
2
+ * Color tokens for Harken SDK theming.
3
+ * All colors support full override by host apps.
4
+ */
5
+ export interface HarkenColors {
6
+ /** Primary brand color for buttons and accents */
7
+ primary: string;
8
+ /** Darker variant of primary for pressed states */
9
+ primaryPressed: string;
10
+ /** Background color for the feedback form */
11
+ background: string;
12
+ /** Secondary background (cards, inputs) */
13
+ backgroundSecondary: string;
14
+ /** Primary text color */
15
+ text: string;
16
+ /** Secondary/muted text color */
17
+ textSecondary: string;
18
+ /** Placeholder text color */
19
+ textPlaceholder: string;
20
+ /** Text color on primary-colored backgrounds */
21
+ textOnPrimary: string;
22
+ /** Border color for inputs and dividers */
23
+ border: string;
24
+ /** Focused border color */
25
+ borderFocused: string;
26
+ /** Error state color */
27
+ error: string;
28
+ /** Success state color */
29
+ success: string;
30
+ /** Warning state color */
31
+ warning: string;
32
+ /** Informational state color */
33
+ info: string;
34
+ /** Light overlay background (for modals, sheets) */
35
+ overlay: string;
36
+ /** Dark overlay background (for error states, loading) */
37
+ overlayDark: string;
38
+ /** Accent color 1 (e.g., camera option) */
39
+ accent1: string;
40
+ /** Accent color 2 (e.g., photo library option) */
41
+ accent2: string;
42
+ /** Accent color 3 (e.g., files option) */
43
+ accent3: string;
44
+ }
45
+ /**
46
+ * Typography tokens for Harken SDK theming.
47
+ * Allows complete font customization.
48
+ */
49
+ export interface HarkenTypography {
50
+ /** Font family for body text */
51
+ fontFamily: string;
52
+ /** Font family for headings (defaults to fontFamily if not set) */
53
+ fontFamilyHeading?: string;
54
+ /** Title text size */
55
+ titleSize: number;
56
+ /** Title line height multiplier */
57
+ titleLineHeight: number;
58
+ /** Title font weight */
59
+ titleWeight: TextWeight;
60
+ /** Body text size */
61
+ bodySize: number;
62
+ /** Body line height multiplier */
63
+ bodyLineHeight: number;
64
+ /** Body font weight */
65
+ bodyWeight: TextWeight;
66
+ /** Label text size (for buttons, form labels) */
67
+ labelSize: number;
68
+ /** Label font weight */
69
+ labelWeight: TextWeight;
70
+ /** Caption/small text size */
71
+ captionSize: number;
72
+ /** Caption font weight */
73
+ captionWeight: TextWeight;
74
+ }
75
+ /** Font weight values supported across platforms */
76
+ export type TextWeight = 'normal' | 'bold' | '100' | '200' | '300' | '400' | '500' | '600' | '700' | '800' | '900';
77
+ /**
78
+ * Spacing tokens for consistent layout.
79
+ * All values are in logical pixels.
80
+ */
81
+ export interface HarkenSpacing {
82
+ /** Extra small spacing (4px default) */
83
+ xs: number;
84
+ /** Small spacing (8px default) */
85
+ sm: number;
86
+ /** Medium spacing (16px default) */
87
+ md: number;
88
+ /** Large spacing (24px default) */
89
+ lg: number;
90
+ /** Extra large spacing (32px default) */
91
+ xl: number;
92
+ /** 2x extra large spacing (48px default) */
93
+ xxl: number;
94
+ }
95
+ /**
96
+ * Border radius tokens for rounded corners.
97
+ * All values are in logical pixels.
98
+ */
99
+ export interface HarkenRadii {
100
+ /** No radius */
101
+ none: number;
102
+ /** Small radius for subtle rounding (4px default) */
103
+ sm: number;
104
+ /** Medium radius for inputs and cards (8px default) */
105
+ md: number;
106
+ /** Large radius for modals and sheets (16px default) */
107
+ lg: number;
108
+ /** Extra large radius for bottom sheets (20px default) */
109
+ xl: number;
110
+ /** Full/pill radius */
111
+ full: number;
112
+ }
113
+ /**
114
+ * Complete theme object combining all token types.
115
+ */
116
+ export interface HarkenTheme {
117
+ colors: HarkenColors;
118
+ typography: HarkenTypography;
119
+ spacing: HarkenSpacing;
120
+ radii: HarkenRadii;
121
+ }
122
+ /**
123
+ * Partial theme for overriding specific values.
124
+ * Allows deep partial overrides of any theme token.
125
+ */
126
+ export type PartialHarkenTheme = {
127
+ colors?: Partial<HarkenColors>;
128
+ typography?: Partial<HarkenTypography>;
129
+ spacing?: Partial<HarkenSpacing>;
130
+ radii?: Partial<HarkenRadii>;
131
+ };
132
+ /**
133
+ * Theme mode for automatic light/dark theming.
134
+ */
135
+ export type ThemeMode = 'light' | 'dark' | 'system';
136
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/theme/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/theme/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,100 @@
1
+ import type { PartialHarkenTheme, ThemeMode } from '../theme';
2
+ import type { SecureStorage } from '../storage';
3
+ /**
4
+ * Configuration options for the Harken SDK.
5
+ */
6
+ export interface HarkenConfig {
7
+ /**
8
+ * Publishable API key for your Harken app.
9
+ * Safe to include in client-side code.
10
+ */
11
+ publishableKey: string;
12
+ /**
13
+ * Optional user token for verified pseudonymous identity.
14
+ * Should be obtained from your backend which signs it with your secret key.
15
+ */
16
+ userToken?: string;
17
+ /**
18
+ * Base URL for the Harken API.
19
+ * Defaults to production API if not specified.
20
+ * @default 'https://api.harken.app'
21
+ */
22
+ apiBaseUrl?: string;
23
+ /**
24
+ * Enable debug logging.
25
+ * @default false
26
+ */
27
+ debug?: boolean;
28
+ }
29
+ /**
30
+ * Props for the HarkenProvider component.
31
+ */
32
+ export interface HarkenProviderProps {
33
+ /**
34
+ * Harken SDK configuration.
35
+ */
36
+ config: HarkenConfig;
37
+ /**
38
+ * Theme mode: 'light', 'dark', or 'system'.
39
+ * When 'system', the SDK will follow the device's color scheme.
40
+ * @default 'system'
41
+ */
42
+ themeMode?: ThemeMode;
43
+ /**
44
+ * Custom light theme overrides.
45
+ * Merged with the default light theme.
46
+ */
47
+ lightTheme?: PartialHarkenTheme;
48
+ /**
49
+ * Custom dark theme overrides.
50
+ * Merged with the default dark theme.
51
+ */
52
+ darkTheme?: PartialHarkenTheme;
53
+ /**
54
+ * Custom secure storage implementation.
55
+ *
56
+ * By default, uses expo-secure-store if available, falling back to
57
+ * in-memory storage (with a console warning) if not installed.
58
+ *
59
+ * Only provide this if you need a custom storage implementation.
60
+ *
61
+ * @example
62
+ * ```tsx
63
+ * // Custom storage implementation
64
+ * import { createSecureStoreAdapter } from '@harkenapp/sdk-react-native';
65
+ * import * as SecureStore from 'expo-secure-store';
66
+ *
67
+ * const storage = createSecureStoreAdapter(SecureStore);
68
+ * <HarkenProvider storage={storage} ... />
69
+ * ```
70
+ */
71
+ storage?: SecureStorage;
72
+ /**
73
+ * React children to render within the provider.
74
+ */
75
+ children: React.ReactNode;
76
+ }
77
+ /**
78
+ * Feedback category types supported by the API.
79
+ */
80
+ export type FeedbackCategory = 'bug' | 'idea' | 'ux' | 'other';
81
+ /**
82
+ * Platform type for device metadata.
83
+ */
84
+ export type Platform = 'ios' | 'android';
85
+ /**
86
+ * Device metadata collected with feedback submissions.
87
+ */
88
+ export interface DeviceMetadata {
89
+ /** App version string */
90
+ appVersion?: string;
91
+ /** Platform (ios or android) */
92
+ platform?: Platform;
93
+ /** Device model/name */
94
+ device?: string;
95
+ /** OS version */
96
+ osVersion?: string;
97
+ /** Additional custom metadata */
98
+ [key: string]: string | undefined;
99
+ }
100
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/types/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAC9D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B;;;OAGG;IACH,cAAc,EAAE,MAAM,CAAC;IAEvB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;;OAGG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC;;OAEG;IACH,MAAM,EAAE,YAAY,CAAC;IAErB;;;;OAIG;IACH,SAAS,CAAC,EAAE,SAAS,CAAC;IAEtB;;;OAGG;IACH,UAAU,CAAC,EAAE,kBAAkB,CAAC;IAEhC;;;OAGG;IACH,SAAS,CAAC,EAAE,kBAAkB,CAAC;IAE/B;;;;;;;;;;;;;;;;;OAiBG;IACH,OAAO,CAAC,EAAE,aAAa,CAAC;IAExB;;OAEG;IACH,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG,KAAK,GAAG,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC;AAE/D;;GAEG;AACH,MAAM,MAAM,QAAQ,GAAG,KAAK,GAAG,SAAS,CAAC;AAEzC;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,yBAAyB;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gCAAgC;IAChC,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,wBAAwB;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,iBAAiB;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iCAAiC;IACjC,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;CACnC"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/types/config.ts"],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
1
+ export type { HarkenConfig, HarkenProviderProps, FeedbackCategory, Platform, DeviceMetadata, } from './config.js';
2
+ export type { components, operations, paths } from './openapi.js';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,YAAY,EACZ,mBAAmB,EACnB,gBAAgB,EAChB,QAAQ,EACR,cAAc,GACf,MAAM,aAAa,CAAC;AAGrB,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":""}