@usergist/feedback-react-native 0.1.0

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 (242) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/LICENSE +21 -0
  3. package/README.md +231 -0
  4. package/UserGistFeedback.podspec +31 -0
  5. package/UserGistFeedbackExtension.podspec +23 -0
  6. package/android/build.gradle +92 -0
  7. package/android/consumer-rules.pro +5 -0
  8. package/android/src/main/AndroidManifest.xml +31 -0
  9. package/android/src/main/java/studio/usergist/feedback/UserGistFirebaseMessagingService.kt +153 -0
  10. package/android/src/main/java/studio/usergist/feedback/UserGistPushModule.kt +344 -0
  11. package/android/src/main/java/studio/usergist/feedback/UserGistPushPackage.kt +18 -0
  12. package/dist/NativeUserGistPush.d.ts +35 -0
  13. package/dist/NativeUserGistPush.d.ts.map +1 -0
  14. package/dist/NativeUserGistPush.js +13 -0
  15. package/dist/NativeUserGistPush.js.map +1 -0
  16. package/dist/Provider.d.ts +7 -0
  17. package/dist/Provider.d.ts.map +1 -0
  18. package/dist/Provider.js +300 -0
  19. package/dist/Provider.js.map +1 -0
  20. package/dist/Push.d.ts +103 -0
  21. package/dist/Push.d.ts.map +1 -0
  22. package/dist/Push.js +225 -0
  23. package/dist/Push.js.map +1 -0
  24. package/dist/UserGist.d.ts +210 -0
  25. package/dist/UserGist.d.ts.map +1 -0
  26. package/dist/UserGist.js +1246 -0
  27. package/dist/UserGist.js.map +1 -0
  28. package/dist/index.d.ts +11 -0
  29. package/dist/index.d.ts.map +1 -0
  30. package/dist/index.js +4 -0
  31. package/dist/index.js.map +1 -0
  32. package/dist/internal/consent.d.ts +17 -0
  33. package/dist/internal/consent.d.ts.map +1 -0
  34. package/dist/internal/consent.js +98 -0
  35. package/dist/internal/consent.js.map +1 -0
  36. package/dist/internal/context.d.ts +12 -0
  37. package/dist/internal/context.d.ts.map +1 -0
  38. package/dist/internal/context.js +70 -0
  39. package/dist/internal/context.js.map +1 -0
  40. package/dist/internal/debug.d.ts +14 -0
  41. package/dist/internal/debug.d.ts.map +1 -0
  42. package/dist/internal/debug.js +73 -0
  43. package/dist/internal/debug.js.map +1 -0
  44. package/dist/internal/engine.d.ts +93 -0
  45. package/dist/internal/engine.d.ts.map +1 -0
  46. package/dist/internal/engine.js +904 -0
  47. package/dist/internal/engine.js.map +1 -0
  48. package/dist/internal/events.d.ts +49 -0
  49. package/dist/internal/events.d.ts.map +1 -0
  50. package/dist/internal/events.js +71 -0
  51. package/dist/internal/events.js.map +1 -0
  52. package/dist/internal/frequency-cap.d.ts +15 -0
  53. package/dist/internal/frequency-cap.d.ts.map +1 -0
  54. package/dist/internal/frequency-cap.js +84 -0
  55. package/dist/internal/frequency-cap.js.map +1 -0
  56. package/dist/internal/identity.d.ts +14 -0
  57. package/dist/internal/identity.d.ts.map +1 -0
  58. package/dist/internal/identity.js +113 -0
  59. package/dist/internal/identity.js.map +1 -0
  60. package/dist/internal/inapp-matcher.d.ts +13 -0
  61. package/dist/internal/inapp-matcher.d.ts.map +1 -0
  62. package/dist/internal/inapp-matcher.js +65 -0
  63. package/dist/internal/inapp-matcher.js.map +1 -0
  64. package/dist/internal/inapp-rules-cache.d.ts +16 -0
  65. package/dist/internal/inapp-rules-cache.d.ts.map +1 -0
  66. package/dist/internal/inapp-rules-cache.js +88 -0
  67. package/dist/internal/inapp-rules-cache.js.map +1 -0
  68. package/dist/internal/instruction-dedupe.d.ts +16 -0
  69. package/dist/internal/instruction-dedupe.d.ts.map +1 -0
  70. package/dist/internal/instruction-dedupe.js +52 -0
  71. package/dist/internal/instruction-dedupe.js.map +1 -0
  72. package/dist/internal/lifecycle.d.ts +12 -0
  73. package/dist/internal/lifecycle.d.ts.map +1 -0
  74. package/dist/internal/lifecycle.js +97 -0
  75. package/dist/internal/lifecycle.js.map +1 -0
  76. package/dist/internal/modal-coordinator.d.ts +4 -0
  77. package/dist/internal/modal-coordinator.d.ts.map +1 -0
  78. package/dist/internal/modal-coordinator.js +43 -0
  79. package/dist/internal/modal-coordinator.js.map +1 -0
  80. package/dist/internal/modal-queue.d.ts +9 -0
  81. package/dist/internal/modal-queue.d.ts.map +1 -0
  82. package/dist/internal/modal-queue.js +32 -0
  83. package/dist/internal/modal-queue.js.map +1 -0
  84. package/dist/internal/mutation-queue.d.ts +23 -0
  85. package/dist/internal/mutation-queue.d.ts.map +1 -0
  86. package/dist/internal/mutation-queue.js +66 -0
  87. package/dist/internal/mutation-queue.js.map +1 -0
  88. package/dist/internal/prompt-answers.d.ts +6 -0
  89. package/dist/internal/prompt-answers.d.ts.map +1 -0
  90. package/dist/internal/prompt-answers.js +10 -0
  91. package/dist/internal/prompt-answers.js.map +1 -0
  92. package/dist/internal/prompt-flow.d.ts +8 -0
  93. package/dist/internal/prompt-flow.d.ts.map +1 -0
  94. package/dist/internal/prompt-flow.js +26 -0
  95. package/dist/internal/prompt-flow.js.map +1 -0
  96. package/dist/internal/queue.d.ts +17 -0
  97. package/dist/internal/queue.d.ts.map +1 -0
  98. package/dist/internal/queue.js +172 -0
  99. package/dist/internal/queue.js.map +1 -0
  100. package/dist/internal/requests.d.ts +22 -0
  101. package/dist/internal/requests.d.ts.map +1 -0
  102. package/dist/internal/requests.js +146 -0
  103. package/dist/internal/requests.js.map +1 -0
  104. package/dist/internal/rules-cache.d.ts +16 -0
  105. package/dist/internal/rules-cache.d.ts.map +1 -0
  106. package/dist/internal/rules-cache.js +86 -0
  107. package/dist/internal/rules-cache.js.map +1 -0
  108. package/dist/internal/storage.d.ts +36 -0
  109. package/dist/internal/storage.d.ts.map +1 -0
  110. package/dist/internal/storage.js +213 -0
  111. package/dist/internal/storage.js.map +1 -0
  112. package/dist/internal/survey-completion.d.ts +10 -0
  113. package/dist/internal/survey-completion.d.ts.map +1 -0
  114. package/dist/internal/survey-completion.js +11 -0
  115. package/dist/internal/survey-completion.js.map +1 -0
  116. package/dist/internal/survey-matcher.d.ts +21 -0
  117. package/dist/internal/survey-matcher.d.ts.map +1 -0
  118. package/dist/internal/survey-matcher.js +139 -0
  119. package/dist/internal/survey-matcher.js.map +1 -0
  120. package/dist/internal/survey-rules-cache.d.ts +17 -0
  121. package/dist/internal/survey-rules-cache.d.ts.map +1 -0
  122. package/dist/internal/survey-rules-cache.js +91 -0
  123. package/dist/internal/survey-rules-cache.js.map +1 -0
  124. package/dist/internal/survey-store.d.ts +19 -0
  125. package/dist/internal/survey-store.d.ts.map +1 -0
  126. package/dist/internal/survey-store.js +59 -0
  127. package/dist/internal/survey-store.js.map +1 -0
  128. package/dist/internal/transport.d.ts +210 -0
  129. package/dist/internal/transport.d.ts.map +1 -0
  130. package/dist/internal/transport.js +498 -0
  131. package/dist/internal/transport.js.map +1 -0
  132. package/dist/internal/trigger-matcher.d.ts +21 -0
  133. package/dist/internal/trigger-matcher.d.ts.map +1 -0
  134. package/dist/internal/trigger-matcher.js +114 -0
  135. package/dist/internal/trigger-matcher.js.map +1 -0
  136. package/dist/internal/types.d.ts +89 -0
  137. package/dist/internal/types.d.ts.map +1 -0
  138. package/dist/internal/types.js +2 -0
  139. package/dist/internal/types.js.map +1 -0
  140. package/dist/internal/user-state.d.ts +11 -0
  141. package/dist/internal/user-state.d.ts.map +1 -0
  142. package/dist/internal/user-state.js +118 -0
  143. package/dist/internal/user-state.js.map +1 -0
  144. package/dist/native/events.d.ts +27 -0
  145. package/dist/native/events.d.ts.map +1 -0
  146. package/dist/native/events.js +12 -0
  147. package/dist/native/events.js.map +1 -0
  148. package/dist/native/push-bridge.d.ts +20 -0
  149. package/dist/native/push-bridge.d.ts.map +1 -0
  150. package/dist/native/push-bridge.js +92 -0
  151. package/dist/native/push-bridge.js.map +1 -0
  152. package/dist/preview/PromptShell.d.ts +9 -0
  153. package/dist/preview/PromptShell.d.ts.map +1 -0
  154. package/dist/preview/PromptShell.js +128 -0
  155. package/dist/preview/PromptShell.js.map +1 -0
  156. package/dist/preview/SurveyShell.d.ts +15 -0
  157. package/dist/preview/SurveyShell.d.ts.map +1 -0
  158. package/dist/preview/SurveyShell.js +197 -0
  159. package/dist/preview/SurveyShell.js.map +1 -0
  160. package/dist/preview/index.d.ts +4 -0
  161. package/dist/preview/index.d.ts.map +1 -0
  162. package/dist/preview/index.js +16 -0
  163. package/dist/preview/index.js.map +1 -0
  164. package/dist/ui/InAppMessageView.d.ts +12 -0
  165. package/dist/ui/InAppMessageView.d.ts.map +1 -0
  166. package/dist/ui/InAppMessageView.js +260 -0
  167. package/dist/ui/InAppMessageView.js.map +1 -0
  168. package/dist/ui/PromptSheet.d.ts +12 -0
  169. package/dist/ui/PromptSheet.d.ts.map +1 -0
  170. package/dist/ui/PromptSheet.js +285 -0
  171. package/dist/ui/PromptSheet.js.map +1 -0
  172. package/dist/ui/QuestionImageHeader.d.ts +12 -0
  173. package/dist/ui/QuestionImageHeader.d.ts.map +1 -0
  174. package/dist/ui/QuestionImageHeader.js +22 -0
  175. package/dist/ui/QuestionImageHeader.js.map +1 -0
  176. package/dist/ui/SurveyView.d.ts +25 -0
  177. package/dist/ui/SurveyView.d.ts.map +1 -0
  178. package/dist/ui/SurveyView.js +478 -0
  179. package/dist/ui/SurveyView.js.map +1 -0
  180. package/dist/ui/animations.d.ts +4 -0
  181. package/dist/ui/animations.d.ts.map +1 -0
  182. package/dist/ui/animations.js +24 -0
  183. package/dist/ui/animations.js.map +1 -0
  184. package/dist/ui/questions/MultipleChoiceQuestion.d.ts +12 -0
  185. package/dist/ui/questions/MultipleChoiceQuestion.d.ts.map +1 -0
  186. package/dist/ui/questions/MultipleChoiceQuestion.js +41 -0
  187. package/dist/ui/questions/MultipleChoiceQuestion.js.map +1 -0
  188. package/dist/ui/questions/NpsQuestion.d.ts +14 -0
  189. package/dist/ui/questions/NpsQuestion.d.ts.map +1 -0
  190. package/dist/ui/questions/NpsQuestion.js +73 -0
  191. package/dist/ui/questions/NpsQuestion.js.map +1 -0
  192. package/dist/ui/questions/RatingQuestion.d.ts +21 -0
  193. package/dist/ui/questions/RatingQuestion.d.ts.map +1 -0
  194. package/dist/ui/questions/RatingQuestion.js +91 -0
  195. package/dist/ui/questions/RatingQuestion.js.map +1 -0
  196. package/dist/ui/questions/ShortTextQuestion.d.ts +12 -0
  197. package/dist/ui/questions/ShortTextQuestion.d.ts.map +1 -0
  198. package/dist/ui/questions/ShortTextQuestion.js +25 -0
  199. package/dist/ui/questions/ShortTextQuestion.js.map +1 -0
  200. package/dist/ui/requests/BoardView.d.ts +9 -0
  201. package/dist/ui/requests/BoardView.d.ts.map +1 -0
  202. package/dist/ui/requests/BoardView.js +270 -0
  203. package/dist/ui/requests/BoardView.js.map +1 -0
  204. package/dist/ui/requests/CommentsSection.d.ts +7 -0
  205. package/dist/ui/requests/CommentsSection.d.ts.map +1 -0
  206. package/dist/ui/requests/CommentsSection.js +254 -0
  207. package/dist/ui/requests/CommentsSection.js.map +1 -0
  208. package/dist/ui/requests/DetailView.d.ts +8 -0
  209. package/dist/ui/requests/DetailView.d.ts.map +1 -0
  210. package/dist/ui/requests/DetailView.js +206 -0
  211. package/dist/ui/requests/DetailView.js.map +1 -0
  212. package/dist/ui/requests/RequestsHost.d.ts +12 -0
  213. package/dist/ui/requests/RequestsHost.d.ts.map +1 -0
  214. package/dist/ui/requests/RequestsHost.js +58 -0
  215. package/dist/ui/requests/RequestsHost.js.map +1 -0
  216. package/dist/ui/requests/StatusPill.d.ts +6 -0
  217. package/dist/ui/requests/StatusPill.d.ts.map +1 -0
  218. package/dist/ui/requests/StatusPill.js +25 -0
  219. package/dist/ui/requests/StatusPill.js.map +1 -0
  220. package/dist/ui/requests/SubmitView.d.ts +8 -0
  221. package/dist/ui/requests/SubmitView.d.ts.map +1 -0
  222. package/dist/ui/requests/SubmitView.js +94 -0
  223. package/dist/ui/requests/SubmitView.js.map +1 -0
  224. package/dist/ui/requests/shared.d.ts +21 -0
  225. package/dist/ui/requests/shared.d.ts.map +1 -0
  226. package/dist/ui/requests/shared.js +74 -0
  227. package/dist/ui/requests/shared.js.map +1 -0
  228. package/dist/ui/survey-questions.d.ts +20 -0
  229. package/dist/ui/survey-questions.d.ts.map +1 -0
  230. package/dist/ui/survey-questions.js +211 -0
  231. package/dist/ui/survey-questions.js.map +1 -0
  232. package/dist/ui/theme.d.ts +15 -0
  233. package/dist/ui/theme.d.ts.map +1 -0
  234. package/dist/ui/theme.js +31 -0
  235. package/dist/ui/theme.js.map +1 -0
  236. package/ios/Extension/UserGistNotificationService.swift +292 -0
  237. package/ios/UserGistPush.h +16 -0
  238. package/ios/UserGistPush.mm +158 -0
  239. package/ios/UserGistPushImpl.swift +399 -0
  240. package/ios/UserGistPushSwizzle.m +168 -0
  241. package/package.json +89 -0
  242. package/react-native.config.js +16 -0
@@ -0,0 +1,73 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useState } from 'react';
3
+ import { Pressable, StyleSheet, Text, TextInput, View } from 'react-native';
4
+ import { QuestionImageHeader } from '../QuestionImageHeader.js';
5
+ export function NpsQuestion({ question, score, followUp, onScore, onFollowUp, theme, }) {
6
+ const [showFollowUp, setShowFollowUp] = useState(score != null);
7
+ // 10 → 0 reads more naturally than 0 → 10 in a vertical stack:
8
+ // the highest / most-promoter answer sits at the top with its
9
+ // label, and the row tapers down to the detractor side. 11 chips
10
+ // crammed in a horizontal row truncate awkwardly on phones — a
11
+ // full-width vertical list is the parity layout the user asked for.
12
+ const items = Array.from({ length: 11 }, (_, i) => 10 - i);
13
+ const lowLabel = question.lowLabel ?? 'Not at all likely';
14
+ const highLabel = question.highLabel ?? 'Extremely likely';
15
+ return (_jsxs(View, { children: [question.imageUrl ? (_jsx(QuestionImageHeader, { uri: question.imageUrl, radius: theme.radius })) : null, _jsx(Text, { style: [styles.title, { color: theme.colors.text, fontFamily: theme.fontFamily }], children: question.title }), question.subtitle ? (_jsx(Text, { style: [styles.subtitle, { color: theme.colors.subtext, fontFamily: theme.fontFamily }], children: question.subtitle })) : null, _jsx(View, { style: styles.column, children: items.map((n) => {
16
+ const selected = score === n;
17
+ const endpointLabel = n === 10 ? highLabel : n === 0 ? lowLabel : null;
18
+ return (_jsxs(Pressable, { onPress: () => {
19
+ onScore(n);
20
+ setShowFollowUp(true);
21
+ }, accessibilityRole: "button", accessibilityLabel: `Score ${n}`, style: [
22
+ styles.cell,
23
+ {
24
+ borderColor: selected ? theme.colors.primary : theme.colors.border,
25
+ backgroundColor: selected ? theme.colors.primary : 'transparent',
26
+ },
27
+ ], children: [_jsx(Text, { style: {
28
+ color: selected ? theme.colors.background : theme.colors.text,
29
+ fontFamily: theme.fontFamily,
30
+ fontWeight: '700',
31
+ fontSize: 16,
32
+ minWidth: 24,
33
+ }, children: n }), endpointLabel ? (_jsx(Text, { style: {
34
+ color: selected ? theme.colors.background : theme.colors.subtext,
35
+ fontFamily: theme.fontFamily,
36
+ marginLeft: 12,
37
+ fontSize: 13,
38
+ }, children: endpointLabel })) : null] }, n));
39
+ }) }), showFollowUp && question.followUp ? (_jsxs(View, { style: { marginTop: 16 }, children: [_jsx(Text, { style: [
40
+ styles.subtitle,
41
+ { color: theme.colors.text, marginBottom: 8, fontFamily: theme.fontFamily },
42
+ ], children: question.followUp }), _jsx(TextInput, { value: followUp, onChangeText: onFollowUp, placeholder: "Tell us more...", placeholderTextColor: theme.colors.subtext, style: [
43
+ styles.input,
44
+ {
45
+ borderColor: theme.colors.border,
46
+ color: theme.colors.text,
47
+ fontFamily: theme.fontFamily,
48
+ },
49
+ ], multiline: true })] })) : null] }));
50
+ }
51
+ const styles = StyleSheet.create({
52
+ title: { fontSize: 18, fontWeight: '700', marginBottom: 4, textAlign: 'center' },
53
+ subtitle: { fontSize: 14, marginBottom: 12, textAlign: 'center' },
54
+ column: { flexDirection: 'column', gap: 8, marginTop: 12 },
55
+ cell: {
56
+ flexDirection: 'row',
57
+ alignItems: 'center',
58
+ width: '100%',
59
+ minHeight: 44,
60
+ paddingVertical: 10,
61
+ paddingHorizontal: 16,
62
+ borderRadius: 12,
63
+ borderWidth: 1,
64
+ },
65
+ input: {
66
+ minHeight: 80,
67
+ borderWidth: 1,
68
+ borderRadius: 12,
69
+ padding: 12,
70
+ textAlignVertical: 'top',
71
+ },
72
+ });
73
+ //# sourceMappingURL=NpsQuestion.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NpsQuestion.js","sourceRoot":"","sources":["../../../src/ui/questions/NpsQuestion.tsx"],"names":[],"mappings":";AAAA,OAAc,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AACvC,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,cAAc,CAAA;AAG3E,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAA;AAW/D,MAAM,UAAU,WAAW,CAAC,EAC1B,QAAQ,EACR,KAAK,EACL,QAAQ,EACR,OAAO,EACP,UAAU,EACV,KAAK,GACC;IACN,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAU,KAAK,IAAI,IAAI,CAAC,CAAA;IACxE,+DAA+D;IAC/D,8DAA8D;IAC9D,iEAAiE;IACjE,+DAA+D;IAC/D,oEAAoE;IACpE,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,CAAA;IAC1D,MAAM,QAAQ,GAAG,QAAQ,CAAC,QAAQ,IAAI,mBAAmB,CAAA;IACzD,MAAM,SAAS,GAAG,QAAQ,CAAC,SAAS,IAAI,kBAAkB,CAAA;IAC1D,OAAO,CACL,MAAC,IAAI,eACF,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CACnB,KAAC,mBAAmB,IAAC,GAAG,EAAE,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,GAAI,CACtE,CAAC,CAAC,CAAC,IAAI,EACR,KAAC,IAAI,IAAC,KAAK,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE,CAAC,YACpF,QAAQ,CAAC,KAAK,GACV,EACN,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CACnB,KAAC,IAAI,IAAC,KAAK,EAAE,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE,CAAC,YAC1F,QAAQ,CAAC,QAAQ,GACb,CACR,CAAC,CAAC,CAAC,IAAI,EACR,KAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,MAAM,YACvB,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;oBACf,MAAM,QAAQ,GAAG,KAAK,KAAK,CAAC,CAAA;oBAC5B,MAAM,aAAa,GACjB,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAA;oBAClD,OAAO,CACL,MAAC,SAAS,IAER,OAAO,EAAE,GAAG,EAAE;4BACZ,OAAO,CAAC,CAAC,CAAC,CAAA;4BACV,eAAe,CAAC,IAAI,CAAC,CAAA;wBACvB,CAAC,EACD,iBAAiB,EAAC,QAAQ,EAC1B,kBAAkB,EAAE,SAAS,CAAC,EAAE,EAChC,KAAK,EAAE;4BACL,MAAM,CAAC,IAAI;4BACX;gCACE,WAAW,EAAE,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM;gCAClE,eAAe,EAAE,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,aAAa;6BACjE;yBACF,aAED,KAAC,IAAI,IACH,KAAK,EAAE;oCACL,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI;oCAC7D,UAAU,EAAE,KAAK,CAAC,UAAU;oCAC5B,UAAU,EAAE,KAAK;oCACjB,QAAQ,EAAE,EAAE;oCACZ,QAAQ,EAAE,EAAE;iCACb,YAEA,CAAC,GACG,EACN,aAAa,CAAC,CAAC,CAAC,CACf,KAAC,IAAI,IACH,KAAK,EAAE;oCACL,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO;oCAChE,UAAU,EAAE,KAAK,CAAC,UAAU;oCAC5B,UAAU,EAAE,EAAE;oCACd,QAAQ,EAAE,EAAE;iCACb,YAEA,aAAa,GACT,CACR,CAAC,CAAC,CAAC,IAAI,KArCH,CAAC,CAsCI,CACb,CAAA;gBACH,CAAC,CAAC,GACG,EACN,YAAY,IAAI,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CACnC,MAAC,IAAI,IAAC,KAAK,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,aAC5B,KAAC,IAAI,IACH,KAAK,EAAE;4BACL,MAAM,CAAC,QAAQ;4BACf,EAAE,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,YAAY,EAAE,CAAC,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE;yBAC5E,YAEA,QAAQ,CAAC,QAAQ,GACb,EACP,KAAC,SAAS,IACR,KAAK,EAAE,QAAQ,EACf,YAAY,EAAE,UAAU,EACxB,WAAW,EAAC,iBAAiB,EAC7B,oBAAoB,EAAE,KAAK,CAAC,MAAM,CAAC,OAAO,EAC1C,KAAK,EAAE;4BACL,MAAM,CAAC,KAAK;4BACZ;gCACE,WAAW,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM;gCAChC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,IAAI;gCACxB,UAAU,EAAE,KAAK,CAAC,UAAU;6BAC7B;yBACF,EACD,SAAS,SACT,IACG,CACR,CAAC,CAAC,CAAC,IAAI,IACH,CACR,CAAA;AACH,CAAC;AAED,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;IAC/B,KAAK,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE;IAChF,QAAQ,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE;IACjE,MAAM,EAAE,EAAE,aAAa,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE;IAC1D,IAAI,EAAE;QACJ,aAAa,EAAE,KAAK;QACpB,UAAU,EAAE,QAAQ;QACpB,KAAK,EAAE,MAAM;QACb,SAAS,EAAE,EAAE;QACb,eAAe,EAAE,EAAE;QACnB,iBAAiB,EAAE,EAAE;QACrB,YAAY,EAAE,EAAE;QAChB,WAAW,EAAE,CAAC;KACf;IACD,KAAK,EAAE;QACL,SAAS,EAAE,EAAE;QACb,WAAW,EAAE,CAAC;QACd,YAAY,EAAE,EAAE;QAChB,OAAO,EAAE,EAAE;QACX,iBAAiB,EAAE,KAAK;KACzB;CACF,CAAC,CAAA"}
@@ -0,0 +1,21 @@
1
+ import React from 'react';
2
+ import type { RatingQuestion as RatingQ } from '@usergist/sdk-core/mobile';
3
+ import type { ResolvedTheme } from '../theme.js';
4
+ interface Props {
5
+ readonly question: RatingQ;
6
+ readonly value: number | null;
7
+ readonly onChange: (v: number) => void;
8
+ readonly theme: ResolvedTheme;
9
+ }
10
+ /**
11
+ * Rating question. Honours `question.display`:
12
+ * - 'stars' → row of star glyphs (default)
13
+ * - 'numeric' → row of chips with the score
14
+ * - 'emoji' → 5 emoji faces (only valid when scale=5; falls back
15
+ * to stars otherwise so we never silently skip render)
16
+ *
17
+ * The row is centred so the dashboard preview and the device match.
18
+ */
19
+ export declare function RatingQuestion({ question, value, onChange, theme }: Props): React.ReactElement;
20
+ export {};
21
+ //# sourceMappingURL=RatingQuestion.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RatingQuestion.d.ts","sourceRoot":"","sources":["../../../src/ui/questions/RatingQuestion.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,KAAK,EAAE,cAAc,IAAI,OAAO,EAAE,MAAM,2BAA2B,CAAA;AAC1E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAGhD,UAAU,KAAK;IACb,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAA;IAC1B,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IAC7B,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,CAAA;IACtC,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAA;CAC9B;AAID;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,KAAK,GAAG,KAAK,CAAC,YAAY,CAiG9F"}
@@ -0,0 +1,91 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Pressable, StyleSheet, Text, View } from 'react-native';
3
+ import { QuestionImageHeader } from '../QuestionImageHeader.js';
4
+ const EMOJI_5 = ['😡', '😕', '😐', '🙂', '😍'];
5
+ /**
6
+ * Rating question. Honours `question.display`:
7
+ * - 'stars' → row of star glyphs (default)
8
+ * - 'numeric' → row of chips with the score
9
+ * - 'emoji' → 5 emoji faces (only valid when scale=5; falls back
10
+ * to stars otherwise so we never silently skip render)
11
+ *
12
+ * The row is centred so the dashboard preview and the device match.
13
+ */
14
+ export function RatingQuestion({ question, value, onChange, theme }) {
15
+ const items = Array.from({ length: question.scale }, (_, i) => i + 1);
16
+ const display = question.display ?? 'stars';
17
+ const renderEmoji = display === 'emoji' && question.scale === 5;
18
+ return (_jsxs(View, { children: [question.imageUrl ? (_jsx(QuestionImageHeader, { uri: question.imageUrl, radius: theme.radius })) : null, _jsx(Text, { style: [styles.title, { color: theme.colors.text, fontFamily: theme.fontFamily }], children: question.title }), question.subtitle ? (_jsx(Text, { style: [styles.subtitle, { color: theme.colors.subtext, fontFamily: theme.fontFamily }], children: question.subtitle })) : null, _jsx(View, { style: styles.row, children: items.map((n) => {
19
+ const selected = value === n;
20
+ if (renderEmoji) {
21
+ const glyph = EMOJI_5[n - 1] ?? '🙂';
22
+ return (_jsx(Pressable, { onPress: () => onChange(n), accessibilityRole: "button", accessibilityLabel: `Rate ${n}`, style: [
23
+ styles.emoji,
24
+ { opacity: selected || value === null ? 1 : 0.35 },
25
+ ], children: _jsx(Text, { style: styles.emojiGlyph, children: glyph }) }, n));
26
+ }
27
+ if (display === 'stars') {
28
+ const filled = value != null && n <= value;
29
+ return (_jsx(Pressable, { onPress: () => onChange(n), accessibilityRole: "button", accessibilityLabel: `Rate ${n}`, style: styles.starBtn, children: _jsx(Text, { style: {
30
+ fontSize: 28,
31
+ lineHeight: 32,
32
+ color: filled ? theme.colors.primary : theme.colors.border,
33
+ }, children: "\u2605" }) }, n));
34
+ }
35
+ // 'numeric' — chip with the score
36
+ return (_jsx(Pressable, { onPress: () => onChange(n), accessibilityRole: "button", accessibilityLabel: `Rate ${n}`, style: [
37
+ styles.chip,
38
+ {
39
+ borderColor: theme.colors.border,
40
+ backgroundColor: selected ? theme.colors.primary : 'transparent',
41
+ },
42
+ ], children: _jsx(Text, { style: {
43
+ color: selected ? theme.colors.background : theme.colors.text,
44
+ fontFamily: theme.fontFamily,
45
+ fontWeight: '600',
46
+ }, children: n }) }, n));
47
+ }) }), (question.lowLabel || question.highLabel) && (_jsxs(View, { style: styles.labelsRow, children: [_jsx(Text, { style: [styles.endLabel, { color: theme.colors.subtext }], children: question.lowLabel ?? '' }), _jsx(Text, { style: [styles.endLabel, { color: theme.colors.subtext }], children: question.highLabel ?? '' })] }))] }));
48
+ }
49
+ const styles = StyleSheet.create({
50
+ title: { fontSize: 18, fontWeight: '700', marginBottom: 4, textAlign: 'center' },
51
+ subtitle: { fontSize: 14, marginBottom: 16, textAlign: 'center' },
52
+ row: {
53
+ flexDirection: 'row',
54
+ flexWrap: 'wrap',
55
+ gap: 8,
56
+ marginTop: 8,
57
+ justifyContent: 'center',
58
+ },
59
+ chip: {
60
+ minWidth: 40,
61
+ height: 40,
62
+ paddingHorizontal: 10,
63
+ borderRadius: 20,
64
+ borderWidth: 1,
65
+ alignItems: 'center',
66
+ justifyContent: 'center',
67
+ },
68
+ starBtn: {
69
+ width: 36,
70
+ height: 36,
71
+ alignItems: 'center',
72
+ justifyContent: 'center',
73
+ },
74
+ emoji: {
75
+ width: 44,
76
+ height: 44,
77
+ alignItems: 'center',
78
+ justifyContent: 'center',
79
+ },
80
+ emojiGlyph: {
81
+ fontSize: 30,
82
+ lineHeight: 36,
83
+ },
84
+ labelsRow: {
85
+ flexDirection: 'row',
86
+ justifyContent: 'space-between',
87
+ marginTop: 8,
88
+ },
89
+ endLabel: { fontSize: 12 },
90
+ });
91
+ //# sourceMappingURL=RatingQuestion.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RatingQuestion.js","sourceRoot":"","sources":["../../../src/ui/questions/RatingQuestion.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import React from 'react';
2
+ import type { ShortTextQuestion as STQ } from '@usergist/sdk-core/mobile';
3
+ import type { ResolvedTheme } from '../theme.js';
4
+ interface Props {
5
+ readonly question: STQ;
6
+ readonly value: string;
7
+ readonly onChange: (s: string) => void;
8
+ readonly theme: ResolvedTheme;
9
+ }
10
+ export declare function ShortTextQuestion({ question, value, onChange, theme }: Props): React.ReactElement;
11
+ export {};
12
+ //# sourceMappingURL=ShortTextQuestion.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ShortTextQuestion.d.ts","sourceRoot":"","sources":["../../../src/ui/questions/ShortTextQuestion.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,KAAK,EAAE,iBAAiB,IAAI,GAAG,EAAE,MAAM,2BAA2B,CAAA;AACzE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAGhD,UAAU,KAAK;IACb,QAAQ,CAAC,QAAQ,EAAE,GAAG,CAAA;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,CAAA;IACtC,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAA;CAC9B;AAED,wBAAgB,iBAAiB,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,KAAK,GAAG,KAAK,CAAC,YAAY,CAkCjG"}
@@ -0,0 +1,25 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { StyleSheet, Text, TextInput, View } from 'react-native';
3
+ import { QuestionImageHeader } from '../QuestionImageHeader.js';
4
+ export function ShortTextQuestion({ question, value, onChange, theme }) {
5
+ return (_jsxs(View, { children: [question.imageUrl ? (_jsx(QuestionImageHeader, { uri: question.imageUrl, radius: theme.radius })) : null, _jsx(Text, { style: [styles.title, { color: theme.colors.text, fontFamily: theme.fontFamily }], children: question.title }), question.subtitle ? (_jsx(Text, { style: [styles.subtitle, { color: theme.colors.subtext, fontFamily: theme.fontFamily }], children: question.subtitle })) : null, _jsx(TextInput, { accessibilityLabel: "Feedback text answer", testID: `feedback-question-${question.id}-input`, value: value, onChangeText: onChange, placeholder: question.placeholder ?? '', placeholderTextColor: theme.colors.subtext, maxLength: question.maxLength, multiline: true, style: [
6
+ styles.input,
7
+ {
8
+ borderColor: theme.colors.border,
9
+ color: theme.colors.text,
10
+ fontFamily: theme.fontFamily,
11
+ },
12
+ ] })] }));
13
+ }
14
+ const styles = StyleSheet.create({
15
+ title: { fontSize: 18, fontWeight: '700', marginBottom: 4 },
16
+ subtitle: { fontSize: 14, marginBottom: 12 },
17
+ input: {
18
+ minHeight: 100,
19
+ borderWidth: 1,
20
+ borderRadius: 12,
21
+ padding: 12,
22
+ textAlignVertical: 'top',
23
+ },
24
+ });
25
+ //# sourceMappingURL=ShortTextQuestion.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ShortTextQuestion.js","sourceRoot":"","sources":["../../../src/ui/questions/ShortTextQuestion.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,cAAc,CAAA;AAGhE,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAA;AAS/D,MAAM,UAAU,iBAAiB,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAS;IAC3E,OAAO,CACL,MAAC,IAAI,eACF,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CACnB,KAAC,mBAAmB,IAAC,GAAG,EAAE,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,GAAI,CACtE,CAAC,CAAC,CAAC,IAAI,EACR,KAAC,IAAI,IAAC,KAAK,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE,CAAC,YACpF,QAAQ,CAAC,KAAK,GACV,EACN,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CACnB,KAAC,IAAI,IAAC,KAAK,EAAE,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE,CAAC,YAC1F,QAAQ,CAAC,QAAQ,GACb,CACR,CAAC,CAAC,CAAC,IAAI,EACR,KAAC,SAAS,IACR,kBAAkB,EAAC,sBAAsB,EACzC,MAAM,EAAE,qBAAqB,QAAQ,CAAC,EAAE,QAAQ,EAChD,KAAK,EAAE,KAAK,EACZ,YAAY,EAAE,QAAQ,EACtB,WAAW,EAAE,QAAQ,CAAC,WAAW,IAAI,EAAE,EACvC,oBAAoB,EAAE,KAAK,CAAC,MAAM,CAAC,OAAO,EAC1C,SAAS,EAAE,QAAQ,CAAC,SAAS,EAC7B,SAAS,QACT,KAAK,EAAE;oBACL,MAAM,CAAC,KAAK;oBACZ;wBACE,WAAW,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM;wBAChC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,IAAI;wBACxB,UAAU,EAAE,KAAK,CAAC,UAAU;qBAC7B;iBACF,GACD,IACG,CACR,CAAA;AACH,CAAC;AAED,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;IAC/B,KAAK,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC,EAAE;IAC3D,QAAQ,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE;IAC5C,KAAK,EAAE;QACL,SAAS,EAAE,GAAG;QACd,WAAW,EAAE,CAAC;QACd,YAAY,EAAE,EAAE;QAChB,OAAO,EAAE,EAAE;QACX,iBAAiB,EAAE,KAAK;KACzB;CACF,CAAC,CAAA"}
@@ -0,0 +1,9 @@
1
+ import { type Branding } from './shared.js';
2
+ export interface BoardViewProps {
3
+ readonly branding: Branding;
4
+ readonly onClose: () => void;
5
+ readonly onOpenDetail: (requestId: string) => void;
6
+ readonly onOpenSubmit: () => void;
7
+ }
8
+ export declare function BoardView({ branding, onClose, onOpenDetail, onOpenSubmit, }: BoardViewProps): import("react/jsx-runtime").JSX.Element;
9
+ //# sourceMappingURL=BoardView.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BoardView.d.ts","sourceRoot":"","sources":["../../../src/ui/requests/BoardView.tsx"],"names":[],"mappings":"AAqBA,OAAO,EAKL,KAAK,QAAQ,EAEd,MAAM,aAAa,CAAA;AAGpB,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAA;IAC3B,QAAQ,CAAC,OAAO,EAAE,MAAM,IAAI,CAAA;IAC5B,QAAQ,CAAC,YAAY,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAA;IAClD,QAAQ,CAAC,YAAY,EAAE,MAAM,IAAI,CAAA;CAClC;AAED,wBAAgB,SAAS,CAAC,EACxB,QAAQ,EACR,OAAO,EACP,YAAY,EACZ,YAAY,GACb,EAAE,cAAc,2CA6JhB"}
@@ -0,0 +1,270 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useCallback, useEffect, useMemo, useRef, useState, } from 'react';
3
+ import { ActivityIndicator, Alert, Animated, FlatList, Pressable, RefreshControl, ScrollView, StyleSheet, Text, View, } from 'react-native';
4
+ import { UserGist } from '../../UserGist.js';
5
+ import { STATUS_COLOR, STATUS_KEYS, STATUS_LABEL, applyOptimisticVote, } from './shared.js';
6
+ import { StatusPill } from './StatusPill.js';
7
+ export function BoardView({ branding, onClose, onOpenDetail, onOpenSubmit, }) {
8
+ const accent = branding.accentColor;
9
+ const accentSoft = accent + '15';
10
+ const [items, setItems] = useState([]);
11
+ const [loading, setLoading] = useState(true);
12
+ const [refreshing, setRefreshing] = useState(false);
13
+ const [statusFilter, setStatusFilter] = useState('all');
14
+ const load = useCallback(async (asRefresh = false) => {
15
+ if (asRefresh)
16
+ setRefreshing(true);
17
+ else
18
+ setLoading(true);
19
+ try {
20
+ const result = await UserGist.getRequests({ sort: 'top', limit: 50 });
21
+ setItems(result.items);
22
+ }
23
+ catch (e) {
24
+ Alert.alert('Could not load suggestions', String(e));
25
+ }
26
+ finally {
27
+ setLoading(false);
28
+ setRefreshing(false);
29
+ }
30
+ }, []);
31
+ useEffect(() => {
32
+ void load(false);
33
+ }, [load]);
34
+ const filtered = useMemo(() => {
35
+ if (statusFilter === 'all')
36
+ return items;
37
+ return items.filter((i) => i.status === statusFilter);
38
+ }, [items, statusFilter]);
39
+ const statusCounts = useMemo(() => {
40
+ const counts = {
41
+ under_review: 0,
42
+ planned: 0,
43
+ in_progress: 0,
44
+ shipped: 0,
45
+ declined: 0,
46
+ };
47
+ for (const item of items)
48
+ counts[item.status] += 1;
49
+ return counts;
50
+ }, [items]);
51
+ const onUpvote = useCallback(async (item) => {
52
+ const next = !item.viewerHasUpvoted;
53
+ setItems((prev) => prev.map((r) => (r.id === item.id ? applyOptimisticVote(r, next) : r)));
54
+ try {
55
+ await UserGist.voteOnRequest(item.id, next);
56
+ }
57
+ catch (e) {
58
+ setItems((prev) => prev.map((r) => (r.id === item.id ? item : r)));
59
+ Alert.alert('Vote failed', String(e));
60
+ }
61
+ }, []);
62
+ return (_jsxs(View, { style: styles.container, children: [_jsxs(View, { style: styles.header, children: [_jsx(Pressable, { accessibilityLabel: "Close requests board", testID: "requests-board-close", onPress: onClose, hitSlop: 12, style: styles.closeBtn, children: _jsx(Text, { style: styles.closeText, children: "\u2715" }) }), _jsxs(View, { style: styles.headerCenter, children: [_jsx(Text, { style: styles.headerTitle, children: branding.entryLabel }), _jsxs(Text, { style: styles.headerSubtitle, children: [items.length, " ", items.length === 1 ? 'idea' : 'ideas'] })] }), _jsx(Pressable, { accessibilityLabel: "Create new request", testID: "requests-board-create", onPress: onOpenSubmit, hitSlop: 12, style: [styles.newBtn, { backgroundColor: accent }], children: _jsx(Text, { style: styles.newBtnText, children: "+ New" }) })] }), _jsxs(ScrollView, { horizontal: true, showsHorizontalScrollIndicator: false, contentContainerStyle: styles.filterRow, style: styles.filterScroll, children: [_jsx(FilterChip, { value: "all", label: "All", count: items.length, active: statusFilter === 'all', onPress: setStatusFilter, accent: accent }), STATUS_KEYS.map((s) => {
63
+ const count = statusCounts[s];
64
+ if (count === 0)
65
+ return null;
66
+ return (_jsx(FilterChip, { value: s, label: STATUS_LABEL[s], count: count, active: statusFilter === s, onPress: setStatusFilter, accent: accent, dotColor: STATUS_COLOR[s] }, s));
67
+ })] }), loading ? (_jsx(View, { style: styles.centered, children: _jsx(ActivityIndicator, { color: accent, size: "large" }) })) : (_jsx(FlatList, { data: filtered, keyExtractor: (r) => r.id, refreshControl: _jsx(RefreshControl, { refreshing: refreshing, onRefresh: () => load(true), tintColor: accent }), ListEmptyComponent: _jsx(EmptyState, { accent: accent, hasItems: items.length > 0, onSubmit: onOpenSubmit }), contentContainerStyle: filtered.length === 0
68
+ ? { flex: 1 }
69
+ : { paddingVertical: 8, paddingHorizontal: 16 }, renderItem: ({ item }) => (_jsx(RequestCard, { item: item, accent: accent, accentSoft: accentSoft, onUpvote: onUpvote, onOpenId: onOpenDetail })) }))] }));
70
+ }
71
+ function FilterChip({ value, label, count, active, accent, dotColor, onPress, }) {
72
+ const handlePress = useCallback(() => onPress(value), [value, onPress]);
73
+ return (_jsxs(Pressable, { onPress: handlePress, style: [
74
+ styles.chip,
75
+ active
76
+ ? { backgroundColor: accent, borderColor: accent }
77
+ : styles.chipIdle,
78
+ ], children: [dotColor ? (_jsx(View, { style: [styles.chipDot, { backgroundColor: dotColor }] })) : null, _jsx(Text, { style: [styles.chipText, active && styles.chipTextActive], children: label }), _jsx(View, { style: [
79
+ styles.chipCount,
80
+ active ? styles.chipCountActive : styles.chipCountIdle,
81
+ ], children: _jsx(Text, { style: [
82
+ styles.chipCountText,
83
+ active ? { color: accent } : { color: '#6b7280' },
84
+ ], children: count }) })] }));
85
+ }
86
+ function RequestCard({ item, accent, accentSoft, onUpvote, onOpenId, }) {
87
+ const scale = useRef(new Animated.Value(1)).current;
88
+ const handleOpen = useCallback(() => onOpenId(item.id), [item.id, onOpenId]);
89
+ const handleUpvote = useCallback(() => onUpvote(item), [item, onUpvote]);
90
+ const onPressIn = () => {
91
+ Animated.spring(scale, {
92
+ toValue: 0.98,
93
+ useNativeDriver: true,
94
+ speed: 60,
95
+ bounciness: 0,
96
+ }).start();
97
+ };
98
+ const onPressOut = () => {
99
+ Animated.spring(scale, {
100
+ toValue: 1,
101
+ useNativeDriver: true,
102
+ speed: 60,
103
+ bounciness: 6,
104
+ }).start();
105
+ };
106
+ return (_jsx(Animated.View, { style: [styles.card, { transform: [{ scale }] }], children: _jsxs(Pressable, { accessibilityLabel: `Open request ${item.title}`, onPress: handleOpen, onPressIn: onPressIn, onPressOut: onPressOut, style: styles.cardInner, children: [_jsx(View, { style: styles.cardLeft, children: _jsxs(Pressable, { accessibilityLabel: `${item.viewerHasUpvoted ? 'Remove vote from' : 'Upvote'} ${item.title}`, style: [
107
+ styles.upvote,
108
+ item.viewerHasUpvoted
109
+ ? { backgroundColor: accent, borderColor: accent }
110
+ : { backgroundColor: accentSoft, borderColor: 'transparent' },
111
+ ], onPress: handleUpvote, hitSlop: 4, children: [_jsx(Text, { style: [
112
+ styles.upvoteArrow,
113
+ { color: item.viewerHasUpvoted ? '#fff' : accent },
114
+ ], children: "\u25B2" }), _jsx(Text, { style: [
115
+ styles.upvoteCount,
116
+ { color: item.viewerHasUpvoted ? '#fff' : accent },
117
+ ], children: item.upvoteCount })] }) }), _jsxs(View, { style: styles.cardBody, children: [_jsx(Text, { style: styles.cardTitle, numberOfLines: 2, children: item.title }), _jsx(Text, { style: styles.cardDescription, numberOfLines: 2, children: item.description }), _jsxs(View, { style: styles.cardMeta, children: [_jsx(StatusPill, { status: item.status }), item.viewerIsFollowing ? (_jsx(View, { style: styles.followingPill, children: _jsx(Text, { style: styles.followingPillText, children: "\u2713 Following" }) })) : null, _jsxs(Text, { style: styles.cardMetaText, children: [item.followerCount, ' ', item.followerCount === 1 ? 'follower' : 'followers'] })] })] })] }) }));
118
+ }
119
+ function EmptyState({ accent, hasItems, onSubmit }) {
120
+ if (hasItems) {
121
+ return (_jsxs(View, { style: styles.empty, children: [_jsx(Text, { style: styles.emptyIcon, children: "\uD83D\uDD0D" }), _jsx(Text, { style: styles.emptyTitle, children: "Nothing in this filter" }), _jsx(Text, { style: styles.emptyBody, children: "Try \u201CAll\u201D to see every suggestion." })] }));
122
+ }
123
+ return (_jsxs(View, { style: styles.empty, children: [_jsx(Text, { style: styles.emptyIcon, children: "\uD83D\uDCA1" }), _jsx(Text, { style: styles.emptyTitle, children: "No suggestions yet" }), _jsx(Text, { style: styles.emptyBody, children: "Be the first to share an idea \u2014 what would make this app better?" }), _jsx(Pressable, { style: [styles.emptyCta, { backgroundColor: accent }], onPress: onSubmit, children: _jsx(Text, { style: styles.emptyCtaText, children: "Share an idea" }) })] }));
124
+ }
125
+ const styles = StyleSheet.create({
126
+ container: { flex: 1, backgroundColor: '#fafafa' },
127
+ centered: { flex: 1, alignItems: 'center', justifyContent: 'center' },
128
+ header: {
129
+ flexDirection: 'row',
130
+ alignItems: 'center',
131
+ justifyContent: 'space-between',
132
+ paddingHorizontal: 16,
133
+ paddingVertical: 12,
134
+ backgroundColor: '#fff',
135
+ borderBottomWidth: StyleSheet.hairlineWidth,
136
+ borderBottomColor: '#e5e7eb',
137
+ },
138
+ headerCenter: { flex: 1, alignItems: 'center' },
139
+ headerTitle: { fontSize: 17, fontWeight: '700', color: '#111' },
140
+ headerSubtitle: {
141
+ fontSize: 11,
142
+ color: '#9ca3af',
143
+ fontWeight: '500',
144
+ letterSpacing: 0.5,
145
+ marginTop: 2,
146
+ },
147
+ closeBtn: {
148
+ width: 32,
149
+ height: 32,
150
+ borderRadius: 16,
151
+ backgroundColor: '#f3f4f6',
152
+ alignItems: 'center',
153
+ justifyContent: 'center',
154
+ },
155
+ closeText: { fontSize: 14, color: '#6b7280', fontWeight: '600' },
156
+ newBtn: {
157
+ paddingHorizontal: 14,
158
+ paddingVertical: 8,
159
+ borderRadius: 10,
160
+ minWidth: 60,
161
+ alignItems: 'center',
162
+ },
163
+ newBtnText: { fontSize: 13, fontWeight: '600', color: '#fff' },
164
+ filterScroll: { flexGrow: 0, flexShrink: 0 },
165
+ filterRow: {
166
+ paddingHorizontal: 16,
167
+ paddingVertical: 12,
168
+ gap: 8,
169
+ flexDirection: 'row',
170
+ alignItems: 'center',
171
+ },
172
+ chip: {
173
+ height: 32,
174
+ flexDirection: 'row',
175
+ alignItems: 'center',
176
+ paddingHorizontal: 12,
177
+ borderRadius: 100,
178
+ borderWidth: 1,
179
+ gap: 6,
180
+ },
181
+ chipIdle: { backgroundColor: '#fff', borderColor: '#e5e7eb' },
182
+ chipDot: { width: 6, height: 6, borderRadius: 3 },
183
+ chipText: { fontSize: 13, color: '#374151', fontWeight: '500' },
184
+ chipTextActive: { color: '#fff' },
185
+ chipCount: {
186
+ minWidth: 22,
187
+ height: 18,
188
+ paddingHorizontal: 6,
189
+ borderRadius: 9,
190
+ alignItems: 'center',
191
+ justifyContent: 'center',
192
+ },
193
+ chipCountIdle: { backgroundColor: '#f3f4f6' },
194
+ chipCountActive: { backgroundColor: '#fff' },
195
+ chipCountText: { fontSize: 11, fontWeight: '600' },
196
+ card: {
197
+ backgroundColor: '#fff',
198
+ borderRadius: 16,
199
+ marginBottom: 10,
200
+ shadowColor: '#000',
201
+ shadowOpacity: 0.04,
202
+ shadowRadius: 6,
203
+ shadowOffset: { width: 0, height: 1 },
204
+ elevation: 1,
205
+ },
206
+ cardInner: {
207
+ flexDirection: 'row',
208
+ alignItems: 'flex-start',
209
+ padding: 14,
210
+ gap: 14,
211
+ },
212
+ cardLeft: { paddingTop: 2 },
213
+ cardBody: { flex: 1 },
214
+ cardTitle: { fontSize: 15, fontWeight: '600', color: '#111', lineHeight: 20 },
215
+ cardDescription: {
216
+ fontSize: 13,
217
+ color: '#6b7280',
218
+ marginTop: 4,
219
+ lineHeight: 18,
220
+ },
221
+ cardMeta: {
222
+ flexDirection: 'row',
223
+ alignItems: 'center',
224
+ marginTop: 10,
225
+ gap: 8,
226
+ flexWrap: 'wrap',
227
+ },
228
+ cardMetaText: { fontSize: 11, color: '#9ca3af' },
229
+ upvote: {
230
+ width: 52,
231
+ paddingVertical: 8,
232
+ borderRadius: 12,
233
+ alignItems: 'center',
234
+ justifyContent: 'center',
235
+ borderWidth: 1.5,
236
+ },
237
+ upvoteArrow: { fontSize: 11, fontWeight: '700', marginBottom: 1 },
238
+ upvoteCount: { fontSize: 14, fontWeight: '700' },
239
+ followingPill: {
240
+ paddingHorizontal: 8,
241
+ paddingVertical: 3,
242
+ borderRadius: 6,
243
+ backgroundColor: '#111',
244
+ },
245
+ followingPillText: { fontSize: 10, color: '#fff', fontWeight: '600' },
246
+ empty: {
247
+ flex: 1,
248
+ alignItems: 'center',
249
+ justifyContent: 'center',
250
+ paddingHorizontal: 32,
251
+ paddingVertical: 64,
252
+ },
253
+ emptyIcon: { fontSize: 48, marginBottom: 16 },
254
+ emptyTitle: { fontSize: 18, fontWeight: '700', color: '#111' },
255
+ emptyBody: {
256
+ fontSize: 14,
257
+ color: '#6b7280',
258
+ marginTop: 8,
259
+ textAlign: 'center',
260
+ lineHeight: 20,
261
+ },
262
+ emptyCta: {
263
+ marginTop: 20,
264
+ paddingHorizontal: 20,
265
+ paddingVertical: 12,
266
+ borderRadius: 12,
267
+ },
268
+ emptyCtaText: { color: '#fff', fontWeight: '600', fontSize: 14 },
269
+ });
270
+ //# sourceMappingURL=BoardView.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BoardView.js","sourceRoot":"","sources":["../../../src/ui/requests/BoardView.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ interface CommentsSectionProps {
2
+ readonly requestId: string;
3
+ readonly accent: string;
4
+ }
5
+ export declare function CommentsSection({ requestId, accent }: CommentsSectionProps): import("react/jsx-runtime").JSX.Element;
6
+ export {};
7
+ //# sourceMappingURL=CommentsSection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CommentsSection.d.ts","sourceRoot":"","sources":["../../../src/ui/requests/CommentsSection.tsx"],"names":[],"mappings":"AAqBA,UAAU,oBAAoB;IAC5B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CACxB;AAED,wBAAgB,eAAe,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,oBAAoB,2CA2J1E"}