vibefast-cli 0.6.2 → 0.7.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 (857) hide show
  1. package/dist/__tests__/recipes.test.js +5 -5
  2. package/dist/__tests__/recipes.test.js.map +1 -1
  3. package/dist/commands/add.d.ts.map +1 -1
  4. package/dist/commands/add.js +136 -48
  5. package/dist/commands/add.js.map +1 -1
  6. package/dist/commands/init.d.ts.map +1 -1
  7. package/dist/commands/init.js +106 -89
  8. package/dist/commands/init.js.map +1 -1
  9. package/dist/commands/remove.js +1 -1
  10. package/dist/commands/remove.js.map +1 -1
  11. package/dist/core/__tests__/fsx.test.js +3 -1
  12. package/dist/core/__tests__/fsx.test.js.map +1 -1
  13. package/dist/core/__tests__/prompt.test.js +12 -12
  14. package/dist/core/__tests__/prompt.test.js.map +1 -1
  15. package/dist/core/__tests__/validate.test.js +4 -3
  16. package/dist/core/__tests__/validate.test.js.map +1 -1
  17. package/dist/core/auth.d.ts.map +1 -1
  18. package/dist/core/auth.js +8 -0
  19. package/dist/core/auth.js.map +1 -1
  20. package/dist/core/codemod.d.ts +13 -0
  21. package/dist/core/codemod.d.ts.map +1 -1
  22. package/dist/core/codemod.js +50 -0
  23. package/dist/core/codemod.js.map +1 -1
  24. package/dist/core/errors.js +1 -1
  25. package/dist/core/fsx.js +1 -1
  26. package/dist/core/fsx.js.map +1 -1
  27. package/dist/core/recipes.d.ts.map +1 -1
  28. package/dist/core/recipes.js +71 -9
  29. package/dist/core/recipes.js.map +1 -1
  30. package/package.json +1 -1
  31. package/recipes/animated-chip/recipe.json +15 -0
  32. package/recipes/animated-chip@latest.zip +0 -0
  33. package/recipes/animated-switch/recipe.json +15 -0
  34. package/recipes/animated-switch@latest.zip +0 -0
  35. package/recipes/audio-recorder@latest.zip +0 -0
  36. package/recipes/charts/apps/native/src/features/charts/components/doughnut-chart.tsx +29 -18
  37. package/recipes/charts@latest.zip +0 -0
  38. package/recipes/chatbot/apps/native/src/features/chatbot/components/message-list.tsx +1 -1
  39. package/recipes/chatbot/apps/native/src/features/chatbot/hooks/use-smart-scroll-manager.ts +6 -0
  40. package/recipes/chatbot/recipe.json +21 -5
  41. package/recipes/chatbot@latest.zip +0 -0
  42. package/recipes/glowing-button/recipe.json +1 -3
  43. package/recipes/glowing-button@latest.zip +0 -0
  44. package/recipes/image-analysis/recipe.json +36 -19
  45. package/recipes/image-analysis@latest.zip +0 -0
  46. package/recipes/image-generator/apps/native/src/features/image-generator/app/_layout.tsx +1 -0
  47. package/recipes/image-generator/apps/native/src/features/image-generator/app/gallery.tsx +1 -1
  48. package/recipes/image-generator/apps/native/src/features/image-generator/components/gallery-image.tsx +2 -3
  49. package/recipes/image-generator/recipe.json +5 -3
  50. package/recipes/image-generator@latest.zip +0 -0
  51. package/recipes/ios-widget/recipe.json +24 -0
  52. package/recipes/ios-widget@latest.zip +0 -0
  53. package/recipes/number-stepper/recipe.json +15 -0
  54. package/recipes/number-stepper@latest.zip +0 -0
  55. package/recipes/payments/recipe.json +30 -0
  56. package/recipes/payments@latest.zip +0 -0
  57. package/recipes/posthog.json +2 -1
  58. package/recipes/progress-circle/recipe.json +15 -0
  59. package/recipes/progress-circle@latest.zip +0 -0
  60. package/recipes/quiz@latest.zip +0 -0
  61. package/recipes/sentry.json +2 -1
  62. package/recipes/swipe-slider/recipe.json +15 -0
  63. package/recipes/swipe-slider@latest.zip +0 -0
  64. package/recipes/{0 → timeline}/recipe.json +3 -6
  65. package/recipes/timeline@latest.zip +0 -0
  66. package/recipes/tracker-app@latest.zip +0 -0
  67. package/recipes/upload-all.sh +13 -2
  68. package/recipes/voice-bot/recipe.json +15 -2
  69. package/recipes/voice-bot@latest.zip +0 -0
  70. package/recipes/wake-word/apps/native/src/app/(root)/(protected)/test-wake-word.tsx +0 -2
  71. package/recipes/wake-word/recipe.json +2 -2
  72. package/recipes/wake-word@latest.zip +0 -0
  73. package/src/__tests__/recipes.test.ts +5 -5
  74. package/src/commands/add.ts +230 -54
  75. package/src/commands/init.ts +118 -102
  76. package/src/commands/remove.ts +1 -1
  77. package/src/core/__tests__/fsx.test.ts +3 -1
  78. package/src/core/__tests__/prompt.test.ts +12 -12
  79. package/src/core/__tests__/validate.test.ts +4 -3
  80. package/src/core/auth.ts +8 -0
  81. package/src/core/codemod.ts +66 -0
  82. package/src/core/errors.ts +1 -1
  83. package/src/core/fsx.ts +1 -1
  84. package/src/core/recipes.ts +73 -9
  85. package/2/.claude/agents/architect.md +0 -74
  86. package/2/.claude/agents/convex-reviewer.md +0 -267
  87. package/2/.claude/agents/debug-detective.md +0 -62
  88. package/2/.claude/agents/learner.md +0 -64
  89. package/2/.claude/agents/perf-optimizer.md +0 -71
  90. package/2/.claude/agents/security-researcher.md +0 -42
  91. package/2/.claude/agents/tech-researcher.md +0 -46
  92. package/2/.claude/agents/ux-designer.md +0 -45
  93. package/2/.claude/commands/create-app-design.md +0 -279
  94. package/2/.claude/commands/create-prd-interactive.md +0 -113
  95. package/2/.claude/commands/create-prd.md +0 -111
  96. package/2/.claude/commands/create-tech-stack.md +0 -345
  97. package/2/.claude/commands/update-app-design.md +0 -298
  98. package/2/.claude/commands/update-project-structure.md +0 -14
  99. package/2/.claude/commands/update-tech-stack.md +0 -325
  100. package/2/.claude/docs/CONVEX_FEATURES_PLAN.md +0 -249
  101. package/2/.claude/docs/app-design-document.md +0 -0
  102. package/2/.claude/docs/project-status.md +0 -25
  103. package/2/.claude/docs/project-structure.md +0 -7
  104. package/2/.claude/docs/tech-stack.md +0 -157
  105. package/2/.claude/scripts/tree.sh +0 -70
  106. package/2/.claude/settings.json +0 -30
  107. package/2/.cursor/commands/code-review-high.md +0 -190
  108. package/2/.cursorignore +0 -3
  109. package/2/.github/ISSUE_TEMPLATE.md +0 -13
  110. package/2/.github/PULL_REQUEST_TEMPLATE.md +0 -23
  111. package/2/.github/actions/eas-build/action.yml +0 -85
  112. package/2/.github/actions/setup-jdk-generate-apk/action.yml +0 -48
  113. package/2/.github/actions/setup-node-pnpm-install/action.yml +0 -29
  114. package/2/.github/scripts/expo-doctor.sh +0 -26
  115. package/2/.github/workflows/compress-images.yml +0 -48
  116. package/2/.github/workflows/e2e-android-eas-build.yml +0 -111
  117. package/2/.github/workflows/e2e-android-maestro.yml +0 -52
  118. package/2/.github/workflows/e2e-android.yml +0 -119
  119. package/2/.github/workflows/eas-build-prod.yml +0 -43
  120. package/2/.github/workflows/eas-build-qa.yml +0 -47
  121. package/2/.github/workflows/expo-doctor.yml +0 -61
  122. package/2/.github/workflows/lint-ts.yml +0 -49
  123. package/2/.github/workflows/new-app-version.yml +0 -65
  124. package/2/.github/workflows/new-github-release.yml +0 -34
  125. package/2/.github/workflows/stale.yml +0 -24
  126. package/2/.github/workflows/test.yml +0 -50
  127. package/2/.github/workflows/type-check.yml +0 -54
  128. package/2/.husky/commit-msg +0 -1
  129. package/2/.husky/common.sh +0 -8
  130. package/2/.husky/post-merge +0 -18
  131. package/2/.husky/pre-commit +0 -24
  132. package/2/.prettierignore +0 -14
  133. package/2/.prettierrc.json +0 -10
  134. package/2/.vibefast/README.md +0 -59
  135. package/2/.vibefast/config.json +0 -4
  136. package/2/.vibefast/journal.json +0 -234
  137. package/2/.vibefast/starter.json +0 -5
  138. package/2/AGENTS.md +0 -48
  139. package/2/LICENSE +0 -21
  140. package/2/README.md +0 -127
  141. package/2/apps/native/__mocks__/bottom-sheet.js +0 -6
  142. package/2/apps/native/__mocks__/expo-router.js +0 -16
  143. package/2/apps/native/__mocks__/react-native-gesture-handler.ts +0 -17
  144. package/2/apps/native/app-env.d.ts +0 -2
  145. package/2/apps/native/app.config.ts +0 -167
  146. package/2/apps/native/assets/adaptive-icon.png +0 -0
  147. package/2/apps/native/assets/favicon.png +0 -0
  148. package/2/apps/native/assets/fonts/Inter.ttf +0 -0
  149. package/2/apps/native/assets/fonts/SF-Pro-Display-Bold.otf +0 -0
  150. package/2/apps/native/assets/fonts/SF-Pro-Display-Medium.otf +0 -0
  151. package/2/apps/native/assets/fonts/SF-Pro-Display-Regular.otf +0 -0
  152. package/2/apps/native/assets/fonts/SF-Pro-Display-Semibold.otf +0 -0
  153. package/2/apps/native/assets/fonts/SpaceMono-Regular.ttf +0 -0
  154. package/2/apps/native/assets/icon.png +0 -0
  155. package/2/apps/native/assets/images/cover-image.png +0 -0
  156. package/2/apps/native/assets/lottie-animations/onboarding-1.json +0 -6504
  157. package/2/apps/native/assets/lottie-animations/onboarding-2.json +0 -1993
  158. package/2/apps/native/assets/lottie-animations/onboarding-3.json +0 -50159
  159. package/2/apps/native/assets/lottie-animations/onboarding-4.json +0 -735
  160. package/2/apps/native/assets/lottie-animations/onboarding-6.json +0 -2167
  161. package/2/apps/native/assets/splash-icon.png +0 -0
  162. package/2/apps/native/babel.config.js +0 -39
  163. package/2/apps/native/eas.json +0 -75
  164. package/2/apps/native/env.js +0 -196
  165. package/2/apps/native/global.css +0 -51
  166. package/2/apps/native/index.ts +0 -5
  167. package/2/apps/native/jest-setup.ts +0 -7
  168. package/2/apps/native/jest.config.js +0 -72
  169. package/2/apps/native/metro.config.js +0 -85
  170. package/2/apps/native/nativewind-env.d.ts +0 -1
  171. package/2/apps/native/package.json +0 -232
  172. package/2/apps/native/scripts/DRY_RUN_REPORT.md +0 -0
  173. package/2/apps/native/scripts/QUICK_START.md +0 -76
  174. package/2/apps/native/scripts/README.md +0 -187
  175. package/2/apps/native/scripts/convex-setup.js +0 -48
  176. package/2/apps/native/scripts/genrate-apk-and-install +0 -39
  177. package/2/apps/native/scripts/i18next-syntax-validation.js +0 -23
  178. package/2/apps/native/scripts/starter-setup.mjs +0 -246
  179. package/2/apps/native/src/api-client/auth.ts +0 -68
  180. package/2/apps/native/src/api-client/chatbot.ts +0 -83
  181. package/2/apps/native/src/api-client/client.ts +0 -4
  182. package/2/apps/native/src/api-client/image-generator.ts +0 -34
  183. package/2/apps/native/src/api-client/index.ts +0 -27
  184. package/2/apps/native/src/api-client/payments.ts +0 -44
  185. package/2/apps/native/src/api-client/reporting.ts +0 -29
  186. package/2/apps/native/src/api-client/shared.ts +0 -43
  187. package/2/apps/native/src/app/(root)/(protected)/(tabs)/_layout.tsx +0 -166
  188. package/2/apps/native/src/app/(root)/(protected)/(tabs)/index.tsx +0 -174
  189. package/2/apps/native/src/app/(root)/(protected)/(tabs)/profile.tsx +0 -320
  190. package/2/apps/native/src/app/(root)/(protected)/(tabs)/settings.tsx +0 -344
  191. package/2/apps/native/src/app/(root)/(protected)/(tabs)/style/_layout.tsx +0 -198
  192. package/2/apps/native/src/app/(root)/(protected)/(tabs)/style/accordion.tsx +0 -60
  193. package/2/apps/native/src/app/(root)/(protected)/(tabs)/style/advanced.tsx +0 -24
  194. package/2/apps/native/src/app/(root)/(protected)/(tabs)/style/avatar.tsx +0 -154
  195. package/2/apps/native/src/app/(root)/(protected)/(tabs)/style/badge-chips-toggle.tsx +0 -81
  196. package/2/apps/native/src/app/(root)/(protected)/(tabs)/style/buttons.tsx +0 -24
  197. package/2/apps/native/src/app/(root)/(protected)/(tabs)/style/charts.tsx +0 -3
  198. package/2/apps/native/src/app/(root)/(protected)/(tabs)/style/date-picker.tsx +0 -120
  199. package/2/apps/native/src/app/(root)/(protected)/(tabs)/style/file-picker.tsx +0 -133
  200. package/2/apps/native/src/app/(root)/(protected)/(tabs)/style/gallery-video.tsx +0 -119
  201. package/2/apps/native/src/app/(root)/(protected)/(tabs)/style/index.tsx +0 -69
  202. package/2/apps/native/src/app/(root)/(protected)/(tabs)/style/inputs-stepper.tsx +0 -78
  203. package/2/apps/native/src/app/(root)/(protected)/(tabs)/style/picker-dropdown.tsx +0 -56
  204. package/2/apps/native/src/app/(root)/(protected)/(tabs)/style/popover-bottomsheet.tsx +0 -229
  205. package/2/apps/native/src/app/(root)/(protected)/(tabs)/style/progress.tsx +0 -38
  206. package/2/apps/native/src/app/(root)/(protected)/(tabs)/style/searchbar.tsx +0 -70
  207. package/2/apps/native/src/app/(root)/(protected)/(tabs)/style/sliders.tsx +0 -93
  208. package/2/apps/native/src/app/(root)/(protected)/(tabs)/style/spinner.tsx +0 -80
  209. package/2/apps/native/src/app/(root)/(protected)/(tabs)/style/switch.tsx +0 -47
  210. package/2/apps/native/src/app/(root)/(protected)/(tabs)/style/table.tsx +0 -352
  211. package/2/apps/native/src/app/(root)/(protected)/(tabs)/style/tabs-timeline.tsx +0 -122
  212. package/2/apps/native/src/app/(root)/(protected)/_layout.tsx +0 -143
  213. package/2/apps/native/src/app/(root)/(protected)/audio-recorder/index.tsx +0 -5
  214. package/2/apps/native/src/app/(root)/(protected)/charts/index.tsx +0 -6
  215. package/2/apps/native/src/app/(root)/(protected)/chatbot/index.tsx +0 -2
  216. package/2/apps/native/src/app/(root)/(protected)/image-generator/gallery.tsx +0 -3
  217. package/2/apps/native/src/app/(root)/(protected)/image-generator/index.tsx +0 -3
  218. package/2/apps/native/src/app/(root)/(protected)/paywall/index.tsx +0 -74
  219. package/2/apps/native/src/app/(root)/(protected)/paywall/local.tsx +0 -25
  220. package/2/apps/native/src/app/(root)/(protected)/paywall/remote.tsx +0 -23
  221. package/2/apps/native/src/app/(root)/(protected)/quick-actions-demo/index.tsx +0 -32
  222. package/2/apps/native/src/app/(root)/(protected)/quiz/index.tsx +0 -47
  223. package/2/apps/native/src/app/(root)/(protected)/test-wake-word.tsx +0 -214
  224. package/2/apps/native/src/app/(root)/(protected)/tracker-app/index.tsx +0 -1
  225. package/2/apps/native/src/app/(root)/(protected)/voice-bot/index.tsx +0 -27
  226. package/2/apps/native/src/app/(root)/(public)/(auth)/_layout.tsx +0 -44
  227. package/2/apps/native/src/app/(root)/(public)/(auth)/forgot-password.tsx +0 -185
  228. package/2/apps/native/src/app/(root)/(public)/(auth)/login.tsx +0 -219
  229. package/2/apps/native/src/app/(root)/(public)/(auth)/otp-verification.tsx +0 -369
  230. package/2/apps/native/src/app/(root)/(public)/(auth)/reset-password.tsx +0 -247
  231. package/2/apps/native/src/app/(root)/(public)/(auth)/signup.tsx +0 -207
  232. package/2/apps/native/src/app/(root)/(public)/_layout.tsx +0 -60
  233. package/2/apps/native/src/app/(root)/(public)/onboarding/demo-one.tsx +0 -5
  234. package/2/apps/native/src/app/(root)/(public)/onboarding/demo-two.tsx +0 -52
  235. package/2/apps/native/src/app/(root)/(public)/onboarding/index.tsx +0 -82
  236. package/2/apps/native/src/app/(root)/_layout.tsx +0 -30
  237. package/2/apps/native/src/app/+html.tsx +0 -46
  238. package/2/apps/native/src/app/[...messing].tsx +0 -24
  239. package/2/apps/native/src/app/_layout.tsx +0 -56
  240. package/2/apps/native/src/app/tsconfig.json +0 -3
  241. package/2/apps/native/src/components/advanced-ui/buttons/glowing-button.tsx +0 -366
  242. package/2/apps/native/src/components/analytics/navigation-tracker.tsx +0 -10
  243. package/2/apps/native/src/components/demo/advanced-ui-components.tsx +0 -46
  244. package/2/apps/native/src/components/demo/buttons-demo.tsx +0 -56
  245. package/2/apps/native/src/components/demo/colors-demo.tsx +0 -52
  246. package/2/apps/native/src/components/demo/dropdown-picker-demo.tsx +0 -274
  247. package/2/apps/native/src/components/demo/inputs-demo.tsx +0 -99
  248. package/2/apps/native/src/components/demo/notification-demo.tsx +0 -434
  249. package/2/apps/native/src/components/demo/title-demo.tsx +0 -16
  250. package/2/apps/native/src/components/demo/toast-demo.tsx +0 -81
  251. package/2/apps/native/src/components/demo/typography-demo.tsx +0 -28
  252. package/2/apps/native/src/components/performance/render-performance-monitor.tsx +0 -36
  253. package/2/apps/native/src/components/ui/accordion.tsx +0 -138
  254. package/2/apps/native/src/components/ui/avatar.tsx +0 -66
  255. package/2/apps/native/src/components/ui/badge.tsx +0 -68
  256. package/2/apps/native/src/components/ui/bottom-sheet.tsx +0 -61
  257. package/2/apps/native/src/components/ui/colors.js +0 -290
  258. package/2/apps/native/src/components/ui/core/button.tsx +0 -317
  259. package/2/apps/native/src/components/ui/core/card.tsx +0 -40
  260. package/2/apps/native/src/components/ui/core/checkbox.tsx +0 -264
  261. package/2/apps/native/src/components/ui/core/feature-button.tsx +0 -162
  262. package/2/apps/native/src/components/ui/core/focus-aware-status-bar.tsx +0 -21
  263. package/2/apps/native/src/components/ui/core/image.tsx +0 -30
  264. package/2/apps/native/src/components/ui/core/inputs/floating-text-input.tsx +0 -369
  265. package/2/apps/native/src/components/ui/core/inputs/input-otp.tsx +0 -304
  266. package/2/apps/native/src/components/ui/core/inputs/input.tsx +0 -373
  267. package/2/apps/native/src/components/ui/core/list.tsx +0 -60
  268. package/2/apps/native/src/components/ui/core/navigation/animated-header.tsx +0 -87
  269. package/2/apps/native/src/components/ui/core/navigation/screen-footer.tsx +0 -67
  270. package/2/apps/native/src/components/ui/core/overlays/dropdown.tsx +0 -290
  271. package/2/apps/native/src/components/ui/core/overlays/full-screen-loading.tsx +0 -15
  272. package/2/apps/native/src/components/ui/core/overlays/modal-keyboard-aware-scroll-view.tsx +0 -46
  273. package/2/apps/native/src/components/ui/core/overlays/modal.tsx +0 -247
  274. package/2/apps/native/src/components/ui/core/pagination-dots.tsx +0 -231
  275. package/2/apps/native/src/components/ui/core/pressable.tsx +0 -48
  276. package/2/apps/native/src/components/ui/core/progress-bar.tsx +0 -47
  277. package/2/apps/native/src/components/ui/core/progress.tsx +0 -149
  278. package/2/apps/native/src/components/ui/core/select.tsx +0 -261
  279. package/2/apps/native/src/components/ui/core/spinner.tsx +0 -387
  280. package/2/apps/native/src/components/ui/core/text.tsx +0 -45
  281. package/2/apps/native/src/components/ui/core/toast.tsx +0 -190
  282. package/2/apps/native/src/components/ui/custom-switch.tsx +0 -90
  283. package/2/apps/native/src/components/ui/date-time-picker.tsx +0 -268
  284. package/2/apps/native/src/components/ui/debug.ts +0 -2
  285. package/2/apps/native/src/components/ui/extras/debug-credit-tester.tsx +0 -107
  286. package/2/apps/native/src/components/ui/extras/debug-mmkv-state.tsx +0 -53
  287. package/2/apps/native/src/components/ui/extras/handle-error.ts +0 -191
  288. package/2/apps/native/src/components/ui/extras/hello-wave.tsx +0 -70
  289. package/2/apps/native/src/components/ui/extras/icon.tsx +0 -36
  290. package/2/apps/native/src/components/ui/extras/network-connectivity-wrapper.tsx +0 -36
  291. package/2/apps/native/src/components/ui/extras/offline-indicator.tsx +0 -55
  292. package/2/apps/native/src/components/ui/extras/social-login-buttons.tsx +0 -296
  293. package/2/apps/native/src/components/ui/file-picker.tsx +0 -177
  294. package/2/apps/native/src/components/ui/gallery.tsx +0 -79
  295. package/2/apps/native/src/components/ui/icons/apple.tsx +0 -19
  296. package/2/apps/native/src/components/ui/icons/arrow-right.tsx +0 -26
  297. package/2/apps/native/src/components/ui/icons/camera.tsx +0 -26
  298. package/2/apps/native/src/components/ui/icons/caret-down.tsx +0 -20
  299. package/2/apps/native/src/components/ui/icons/chevron-up.tsx +0 -21
  300. package/2/apps/native/src/components/ui/icons/claude.tsx +0 -15
  301. package/2/apps/native/src/components/ui/icons/copy.tsx +0 -27
  302. package/2/apps/native/src/components/ui/icons/deepseek.tsx +0 -15
  303. package/2/apps/native/src/components/ui/icons/download.tsx +0 -32
  304. package/2/apps/native/src/components/ui/icons/feed.tsx +0 -12
  305. package/2/apps/native/src/components/ui/icons/gemini.tsx +0 -15
  306. package/2/apps/native/src/components/ui/icons/github.tsx +0 -30
  307. package/2/apps/native/src/components/ui/icons/google.tsx +0 -24
  308. package/2/apps/native/src/components/ui/icons/groq.tsx +0 -15
  309. package/2/apps/native/src/components/ui/icons/home.tsx +0 -19
  310. package/2/apps/native/src/components/ui/icons/index.tsx +0 -26
  311. package/2/apps/native/src/components/ui/icons/language.tsx +0 -33
  312. package/2/apps/native/src/components/ui/icons/llama.tsx +0 -15
  313. package/2/apps/native/src/components/ui/icons/microphone.tsx +0 -20
  314. package/2/apps/native/src/components/ui/icons/mistral.tsx +0 -22
  315. package/2/apps/native/src/components/ui/icons/nutrition.tsx +0 -15
  316. package/2/apps/native/src/components/ui/icons/openai.tsx +0 -15
  317. package/2/apps/native/src/components/ui/icons/perplexity.tsx +0 -22
  318. package/2/apps/native/src/components/ui/icons/qwen.tsx +0 -15
  319. package/2/apps/native/src/components/ui/icons/rate.tsx +0 -24
  320. package/2/apps/native/src/components/ui/icons/report.tsx +0 -20
  321. package/2/apps/native/src/components/ui/icons/send-horizontal.tsx +0 -26
  322. package/2/apps/native/src/components/ui/icons/settings.tsx +0 -12
  323. package/2/apps/native/src/components/ui/icons/share.tsx +0 -16
  324. package/2/apps/native/src/components/ui/icons/square.tsx +0 -9
  325. package/2/apps/native/src/components/ui/icons/style.tsx +0 -22
  326. package/2/apps/native/src/components/ui/icons/support.tsx +0 -27
  327. package/2/apps/native/src/components/ui/icons/trash2.tsx +0 -42
  328. package/2/apps/native/src/components/ui/icons/user.tsx +0 -12
  329. package/2/apps/native/src/components/ui/icons/website.tsx +0 -28
  330. package/2/apps/native/src/components/ui/icons/wifi-off.tsx +0 -17
  331. package/2/apps/native/src/components/ui/index.tsx +0 -14
  332. package/2/apps/native/src/components/ui/nav-item.tsx +0 -42
  333. package/2/apps/native/src/components/ui/patterns/index.ts +0 -16
  334. package/2/apps/native/src/components/ui/picker.tsx +0 -244
  335. package/2/apps/native/src/components/ui/popover.tsx +0 -313
  336. package/2/apps/native/src/components/ui/primitives/index.ts +0 -38
  337. package/2/apps/native/src/components/ui/radio-group.tsx +0 -47
  338. package/2/apps/native/src/components/ui/searchbar.tsx +0 -118
  339. package/2/apps/native/src/components/ui/sheet.tsx +0 -93
  340. package/2/apps/native/src/components/ui/switch.tsx +0 -37
  341. package/2/apps/native/src/components/ui/table.tsx +0 -296
  342. package/2/apps/native/src/components/ui/tabs.tsx +0 -115
  343. package/2/apps/native/src/components/ui/toggle.tsx +0 -50
  344. package/2/apps/native/src/components/ui/utils.tsx +0 -34
  345. package/2/apps/native/src/components/ui/video.tsx +0 -39
  346. package/2/apps/native/src/core/analytics/analytics-service.ts +0 -94
  347. package/2/apps/native/src/core/analytics/index.ts +0 -2
  348. package/2/apps/native/src/core/analytics/posthog-analytics-adapter.ts +0 -192
  349. package/2/apps/native/src/core/auth/auth-service.ts +0 -33
  350. package/2/apps/native/src/core/auth/index.ts +0 -1
  351. package/2/apps/native/src/core/cache/__tests__/cache-service.test.ts +0 -599
  352. package/2/apps/native/src/core/cache/cache-service.ts +0 -89
  353. package/2/apps/native/src/core/cache/index.ts +0 -45
  354. package/2/apps/native/src/core/config/config.service.ts +0 -153
  355. package/2/apps/native/src/core/config/index.ts +0 -2
  356. package/2/apps/native/src/core/config/telemetry.ts +0 -38
  357. package/2/apps/native/src/core/local-notifications/local-notification-manager.ts +0 -409
  358. package/2/apps/native/src/core/logging/custom-transports.ts +0 -126
  359. package/2/apps/native/src/core/logging/index.ts +0 -1
  360. package/2/apps/native/src/core/logging/logger.ts +0 -182
  361. package/2/apps/native/src/core/navigation/deep-link-handler.ts +0 -295
  362. package/2/apps/native/src/core/navigation/navigation-types.ts +0 -53
  363. package/2/apps/native/src/core/payments/index.ts +0 -1
  364. package/2/apps/native/src/core/payments/payment-service.ts +0 -32
  365. package/2/apps/native/src/core/quick-actions/index.ts +0 -2
  366. package/2/apps/native/src/core/quick-actions/quick-actions-adapter.ts +0 -54
  367. package/2/apps/native/src/core/quick-actions/types.ts +0 -29
  368. package/2/apps/native/src/core/storage/index.ts +0 -1
  369. package/2/apps/native/src/core/storage/mmkv.ts +0 -62
  370. package/2/apps/native/src/core/storage/notification-storage.ts +0 -312
  371. package/2/apps/native/src/core/types/common.ts +0 -0
  372. package/2/apps/native/src/core/utils/convex-http-api.ts +0 -30
  373. package/2/apps/native/src/features/audio-recorder/components/audio-player.tsx +0 -301
  374. package/2/apps/native/src/features/audio-recorder/components/audio-recorder.tsx +0 -373
  375. package/2/apps/native/src/features/audio-recorder/components/audio-waveform.tsx +0 -270
  376. package/2/apps/native/src/features/audio-recorder/components/index.ts +0 -4
  377. package/2/apps/native/src/features/audio-recorder/components/recording-list.tsx +0 -89
  378. package/2/apps/native/src/features/audio-recorder/demo/audio-player-demo.tsx +0 -66
  379. package/2/apps/native/src/features/audio-recorder/demo/audio-recorder-cloud.tsx +0 -68
  380. package/2/apps/native/src/features/audio-recorder/demo/audio-recorder-interview.tsx +0 -102
  381. package/2/apps/native/src/features/audio-recorder/demo/basic.tsx +0 -27
  382. package/2/apps/native/src/features/audio-recorder/demo/index.ts +0 -5
  383. package/2/apps/native/src/features/audio-recorder/demo/with-recording-list-demo.tsx +0 -82
  384. package/2/apps/native/src/features/authentication/components/auth-watcher.tsx +0 -115
  385. package/2/apps/native/src/features/authentication/components/login-form.tsx +0 -85
  386. package/2/apps/native/src/features/authentication/services/__tests__/convex-auth.adapter.test.ts +0 -399
  387. package/2/apps/native/src/features/authentication/services/convex-auth.adapter.ts +0 -497
  388. package/2/apps/native/src/features/authentication/services/index.ts +0 -2
  389. package/2/apps/native/src/features/charts/README.md +0 -185
  390. package/2/apps/native/src/features/charts/app/preview.tsx +0 -226
  391. package/2/apps/native/src/features/charts/components/area-chart.tsx +0 -43
  392. package/2/apps/native/src/features/charts/components/bar-chart.tsx +0 -146
  393. package/2/apps/native/src/features/charts/components/candlestick-chart.tsx +0 -199
  394. package/2/apps/native/src/features/charts/components/chart-card.tsx +0 -68
  395. package/2/apps/native/src/features/charts/components/column-chart.tsx +0 -146
  396. package/2/apps/native/src/features/charts/components/doughnut-chart.tsx +0 -260
  397. package/2/apps/native/src/features/charts/components/index.ts +0 -13
  398. package/2/apps/native/src/features/charts/components/line-chart.tsx +0 -311
  399. package/2/apps/native/src/features/charts/components/radar-chart.tsx +0 -183
  400. package/2/apps/native/src/features/charts/components/radial-bar-chart.tsx +0 -191
  401. package/2/apps/native/src/features/charts/components/stacked-area-chart.tsx +0 -268
  402. package/2/apps/native/src/features/charts/components/stacked-bar-chart.tsx +0 -325
  403. package/2/apps/native/src/features/charts/data/mock-data.ts +0 -186
  404. package/2/apps/native/src/features/charts/types/index.ts +0 -69
  405. package/2/apps/native/src/features/chatbot/app/index.tsx +0 -303
  406. package/2/apps/native/src/features/chatbot/components/chat-header-buttons.tsx +0 -60
  407. package/2/apps/native/src/features/chatbot/components/chat-input-bar.tsx +0 -470
  408. package/2/apps/native/src/features/chatbot/components/chat-markdown.tsx +0 -576
  409. package/2/apps/native/src/features/chatbot/components/chat-message-bubble.tsx +0 -247
  410. package/2/apps/native/src/features/chatbot/components/chat-settings-modal.tsx +0 -162
  411. package/2/apps/native/src/features/chatbot/components/image-preview-list.tsx +0 -116
  412. package/2/apps/native/src/features/chatbot/components/markdown/code-block.tsx +0 -166
  413. package/2/apps/native/src/features/chatbot/components/markdown/index.ts +0 -11
  414. package/2/apps/native/src/features/chatbot/components/markdown/table-renderer.tsx +0 -130
  415. package/2/apps/native/src/features/chatbot/components/message-error-boundary.tsx +0 -79
  416. package/2/apps/native/src/features/chatbot/components/message-list.tsx +0 -174
  417. package/2/apps/native/src/features/chatbot/components/model-selector.tsx +0 -284
  418. package/2/apps/native/src/features/chatbot/components/report-content-modal.tsx +0 -189
  419. package/2/apps/native/src/features/chatbot/components/suggested-messages.tsx +0 -68
  420. package/2/apps/native/src/features/chatbot/constants/models.ts +0 -21
  421. package/2/apps/native/src/features/chatbot/constants/report-reasons.ts +0 -10
  422. package/2/apps/native/src/features/chatbot/hooks/use-attachment-cache.ts +0 -144
  423. package/2/apps/native/src/features/chatbot/hooks/use-chat-config.ts +0 -665
  424. package/2/apps/native/src/features/chatbot/hooks/use-chat-handlers.ts +0 -360
  425. package/2/apps/native/src/features/chatbot/hooks/use-chatbot-settings.ts +0 -90
  426. package/2/apps/native/src/features/chatbot/hooks/use-conversation.ts +0 -80
  427. package/2/apps/native/src/features/chatbot/hooks/use-image-picker.ts +0 -123
  428. package/2/apps/native/src/features/chatbot/hooks/use-keyboard-coordinator.ts +0 -162
  429. package/2/apps/native/src/features/chatbot/hooks/use-smart-scroll-manager.ts +0 -214
  430. package/2/apps/native/src/features/chatbot/models/index.ts +0 -87
  431. package/2/apps/native/src/features/chatbot/models/models.ts +0 -163
  432. package/2/apps/native/src/features/chatbot/models/providers.ts +0 -63
  433. package/2/apps/native/src/features/chatbot/models/types.ts +0 -41
  434. package/2/apps/native/src/features/chatbot/services/file-uploader.ts +0 -239
  435. package/2/apps/native/src/features/chatbot/services/message-handler-service.ts +0 -181
  436. package/2/apps/native/src/features/chatbot/types/index.ts +0 -61
  437. package/2/apps/native/src/features/chatbot/utils/chat-telemetry.ts +0 -92
  438. package/2/apps/native/src/features/image-generator/app/_layout.tsx +0 -26
  439. package/2/apps/native/src/features/image-generator/app/gallery.tsx +0 -217
  440. package/2/apps/native/src/features/image-generator/app/index.tsx +0 -237
  441. package/2/apps/native/src/features/image-generator/components/gallery-image.tsx +0 -25
  442. package/2/apps/native/src/features/image-generator/components/image-detail-modal.tsx +0 -215
  443. package/2/apps/native/src/features/image-generator/components/image-model-selector.tsx +0 -210
  444. package/2/apps/native/src/features/image-generator/components/image-placeholder.tsx +0 -26
  445. package/2/apps/native/src/features/image-generator/hooks/use-image-gallery.ts +0 -71
  446. package/2/apps/native/src/features/image-generator/hooks/use-image-generator-settings.ts +0 -152
  447. package/2/apps/native/src/features/image-generator/hooks/use-image-generator.ts +0 -93
  448. package/2/apps/native/src/features/image-generator/models/models.ts +0 -66
  449. package/2/apps/native/src/features/image-generator/services/image-gallery-service.ts +0 -98
  450. package/2/apps/native/src/features/image-generator/services/image-save-service.ts +0 -121
  451. package/2/apps/native/src/features/onboarding/analytics/index.ts +0 -9
  452. package/2/apps/native/src/features/onboarding/components/onboarding-with-analytics.tsx +0 -141
  453. package/2/apps/native/src/features/onboarding/components/onboarding.tsx +0 -173
  454. package/2/apps/native/src/features/onboarding/config/onboarding-flow-config.ts +0 -189
  455. package/2/apps/native/src/features/onboarding/demo-one/app/index.tsx +0 -43
  456. package/2/apps/native/src/features/onboarding/demo-one/data.ts +0 -32
  457. package/2/apps/native/src/features/onboarding/hooks/use-onboarding-analytics.ts +0 -323
  458. package/2/apps/native/src/features/onboarding/services/onboarding-analytics.ts +0 -432
  459. package/2/apps/native/src/features/payments/README.md +0 -200
  460. package/2/apps/native/src/features/payments/app/local-paywall.tsx +0 -194
  461. package/2/apps/native/src/features/payments/app/remote-paywall.tsx +0 -79
  462. package/2/apps/native/src/features/payments/components/payment-initializer.tsx +0 -95
  463. package/2/apps/native/src/features/payments/components/paywall-error-state.tsx +0 -60
  464. package/2/apps/native/src/features/payments/components/paywall-local-mode.tsx +0 -116
  465. package/2/apps/native/src/features/payments/components/paywall-product-card.tsx +0 -133
  466. package/2/apps/native/src/features/payments/components/paywall-remote-mode.tsx +0 -146
  467. package/2/apps/native/src/features/payments/hooks/use-entitlement.ts +0 -63
  468. package/2/apps/native/src/features/payments/index.ts +0 -8
  469. package/2/apps/native/src/features/payments/services/revenuecat-adapter.ts +0 -407
  470. package/2/apps/native/src/features/quick-actions/components/quick-actions-demo.tsx +0 -139
  471. package/2/apps/native/src/features/quick-actions/config/default-actions.ts +0 -83
  472. package/2/apps/native/src/features/quick-actions/hooks/use-quick-actions.ts +0 -45
  473. package/2/apps/native/src/features/quick-actions/index.ts +0 -4
  474. package/2/apps/native/src/features/quick-actions/utils/quick-actions-manager.ts +0 -105
  475. package/2/apps/native/src/features/quiz/components/question.tsx +0 -67
  476. package/2/apps/native/src/features/quiz/config.ts +0 -11
  477. package/2/apps/native/src/features/quiz/index.tsx +0 -133
  478. package/2/apps/native/src/features/settings/ui/debug-info.tsx +0 -75
  479. package/2/apps/native/src/features/settings/ui/dev-tools.tsx +0 -1
  480. package/2/apps/native/src/features/settings/ui/item.tsx +0 -45
  481. package/2/apps/native/src/features/settings/ui/items-container.tsx +0 -23
  482. package/2/apps/native/src/features/settings/ui/language-item.tsx +0 -52
  483. package/2/apps/native/src/features/settings/ui/notification-item.tsx +0 -59
  484. package/2/apps/native/src/features/settings/ui/theme-item.tsx +0 -45
  485. package/2/apps/native/src/features/tracker-app/app/index.tsx +0 -108
  486. package/2/apps/native/src/features/tracker-app/components/animated-number.tsx +0 -102
  487. package/2/apps/native/src/features/tracker-app/components/calorie-card.tsx +0 -66
  488. package/2/apps/native/src/features/tracker-app/components/circular-progress.tsx +0 -97
  489. package/2/apps/native/src/features/tracker-app/components/floating-add-button.tsx +0 -27
  490. package/2/apps/native/src/features/tracker-app/components/macro-card.tsx +0 -80
  491. package/2/apps/native/src/features/tracker-app/components/promo-banner.tsx +0 -98
  492. package/2/apps/native/src/features/tracker-app/components/recently-logged.tsx +0 -64
  493. package/2/apps/native/src/features/tracker-app/components/week-calendar.tsx +0 -68
  494. package/2/apps/native/src/features/vibefast-features.ts +0 -42
  495. package/2/apps/native/src/features/voice-bot/README.md +0 -185
  496. package/2/apps/native/src/features/voice-bot/components/conversation-status.tsx +0 -76
  497. package/2/apps/native/src/features/voice-bot/components/index.ts +0 -4
  498. package/2/apps/native/src/features/voice-bot/components/message-input.tsx +0 -98
  499. package/2/apps/native/src/features/voice-bot/components/voice-bot-screen.tsx +0 -173
  500. package/2/apps/native/src/features/voice-bot/components/voice-controls.tsx +0 -73
  501. package/2/apps/native/src/features/voice-bot/index.ts +0 -3
  502. package/2/apps/native/src/features/voice-bot/services/index.ts +0 -1
  503. package/2/apps/native/src/features/voice-bot/services/use-voice-bot.ts +0 -161
  504. package/2/apps/native/src/features/voice-bot/types.ts +0 -29
  505. package/2/apps/native/src/features/wake-word/components/index.ts +0 -1
  506. package/2/apps/native/src/features/wake-word/components/wake-word-indicator.tsx +0 -61
  507. package/2/apps/native/src/features/wake-word/constants.ts +0 -10
  508. package/2/apps/native/src/features/wake-word/hooks/use-wake-word.ts +0 -181
  509. package/2/apps/native/src/features/wake-word/index.ts +0 -22
  510. package/2/apps/native/src/features/wake-word/services/audio-session.ts +0 -40
  511. package/2/apps/native/src/features/wake-word/services/event-bus.ts +0 -31
  512. package/2/apps/native/src/features/wake-word/services/keywords.ts +0 -88
  513. package/2/apps/native/src/features/wake-word/services/wake-word-manager.ts +0 -249
  514. package/2/apps/native/src/features/wake-word/types.ts +0 -22
  515. package/2/apps/native/src/lib/env.js +0 -13
  516. package/2/apps/native/src/lib/hooks/index.tsx +0 -6
  517. package/2/apps/native/src/lib/hooks/use-device-identifier.tsx +0 -80
  518. package/2/apps/native/src/lib/hooks/use-gradual-animation.ts +0 -28
  519. package/2/apps/native/src/lib/hooks/use-is-first-time.tsx +0 -25
  520. package/2/apps/native/src/lib/hooks/use-navigation-analytics.ts +0 -44
  521. package/2/apps/native/src/lib/hooks/use-navigation-options.tsx +0 -87
  522. package/2/apps/native/src/lib/hooks/use-push-notifications.ts +0 -250
  523. package/2/apps/native/src/lib/hooks/use-responsive-size.tsx +0 -37
  524. package/2/apps/native/src/lib/hooks/use-selected-theme.tsx +0 -38
  525. package/2/apps/native/src/lib/hooks/use-viewport-lazy-loading.tsx +0 -124
  526. package/2/apps/native/src/lib/i18n/index.tsx +0 -30
  527. package/2/apps/native/src/lib/i18n/react-i18next.d.ts +0 -9
  528. package/2/apps/native/src/lib/i18n/resources.ts +0 -25
  529. package/2/apps/native/src/lib/i18n/types.ts +0 -23
  530. package/2/apps/native/src/lib/i18n/utils.tsx +0 -112
  531. package/2/apps/native/src/lib/index.tsx +0 -3
  532. package/2/apps/native/src/lib/state/auth-client-slice.ts +0 -34
  533. package/2/apps/native/src/lib/state/index.ts +0 -1
  534. package/2/apps/native/src/lib/storage.tsx +0 -7
  535. package/2/apps/native/src/lib/test-utils.tsx +0 -43
  536. package/2/apps/native/src/lib/use-theme-config.tsx +0 -108
  537. package/2/apps/native/src/lib/utils.ts +0 -29
  538. package/2/apps/native/src/polyfills.ts +0 -61
  539. package/2/apps/native/src/providers/convex-provider.tsx +0 -31
  540. package/2/apps/native/src/providers/index.tsx +0 -6
  541. package/2/apps/native/src/providers/notification-provider.tsx +0 -168
  542. package/2/apps/native/src/providers/posthog-provider.tsx +0 -47
  543. package/2/apps/native/src/providers/root-providers.tsx +0 -46
  544. package/2/apps/native/src/providers/sentry-provider.tsx +0 -62
  545. package/2/apps/native/src/providers/splash-screen-provider.tsx +0 -122
  546. package/2/apps/native/src/providers/theme-provider.tsx +0 -67
  547. package/2/apps/native/src/translations/ar.json +0 -394
  548. package/2/apps/native/src/translations/de.json +0 -394
  549. package/2/apps/native/src/translations/en.json +0 -394
  550. package/2/apps/native/src/translations/es.json +0 -394
  551. package/2/apps/native/src/translations/fr.json +0 -394
  552. package/2/apps/native/src/types/flash-list.d.ts +0 -3
  553. package/2/apps/native/src/types/index.ts +0 -3
  554. package/2/apps/native/src/types/react-native-reanimated.d.ts +0 -5
  555. package/2/apps/native/tailwind.config.js +0 -57
  556. package/2/apps/native/targets/widget/AppIntent.swift +0 -46
  557. package/2/apps/native/targets/widget/Assets.xcassets/AppIcon.appiconset/App-Icon-20x20@1x.png +0 -0
  558. package/2/apps/native/targets/widget/Assets.xcassets/AppIcon.appiconset/App-Icon-20x20@2x.png +0 -0
  559. package/2/apps/native/targets/widget/Assets.xcassets/AppIcon.appiconset/App-Icon-20x20@3x.png +0 -0
  560. package/2/apps/native/targets/widget/Assets.xcassets/AppIcon.appiconset/App-Icon-29x29@1x.png +0 -0
  561. package/2/apps/native/targets/widget/Assets.xcassets/AppIcon.appiconset/App-Icon-29x29@2x.png +0 -0
  562. package/2/apps/native/targets/widget/Assets.xcassets/AppIcon.appiconset/App-Icon-29x29@3x.png +0 -0
  563. package/2/apps/native/targets/widget/Assets.xcassets/AppIcon.appiconset/App-Icon-40x40@1x.png +0 -0
  564. package/2/apps/native/targets/widget/Assets.xcassets/AppIcon.appiconset/App-Icon-40x40@2x.png +0 -0
  565. package/2/apps/native/targets/widget/Assets.xcassets/AppIcon.appiconset/App-Icon-40x40@3x.png +0 -0
  566. package/2/apps/native/targets/widget/Assets.xcassets/AppIcon.appiconset/App-Icon-60x60@2x.png +0 -0
  567. package/2/apps/native/targets/widget/Assets.xcassets/AppIcon.appiconset/App-Icon-60x60@3x.png +0 -0
  568. package/2/apps/native/targets/widget/Assets.xcassets/AppIcon.appiconset/App-Icon-76x76@1x.png +0 -0
  569. package/2/apps/native/targets/widget/Assets.xcassets/AppIcon.appiconset/App-Icon-76x76@2x.png +0 -0
  570. package/2/apps/native/targets/widget/Assets.xcassets/AppIcon.appiconset/App-Icon-83.5x83.5@2x.png +0 -0
  571. package/2/apps/native/targets/widget/Assets.xcassets/AppIcon.appiconset/Contents.json +0 -122
  572. package/2/apps/native/targets/widget/Assets.xcassets/AppIcon.appiconset/ItunesArtwork@2x.png +0 -0
  573. package/2/apps/native/targets/widget/CalorieTrackerWidget.swift +0 -424
  574. package/2/apps/native/targets/widget/HabitTrackerWidget.swift +0 -305
  575. package/2/apps/native/targets/widget/Info.plist +0 -11
  576. package/2/apps/native/targets/widget/WidgetLiveActivity.swift +0 -75
  577. package/2/apps/native/targets/widget/expo-target.config.js +0 -10
  578. package/2/apps/native/targets/widget/generated.entitlements +0 -5
  579. package/2/apps/native/targets/widget/index.swift +0 -18
  580. package/2/apps/native/targets/widget/widgets.swift +0 -96
  581. package/2/apps/native/tsconfig.json +0 -88
  582. package/2/apps/native/vitest.config.mts +0 -14
  583. package/2/apps/web/README.md +0 -36
  584. package/2/apps/web/app/favicon.ico +0 -0
  585. package/2/apps/web/app/globals.css +0 -122
  586. package/2/apps/web/app/layout.tsx +0 -38
  587. package/2/apps/web/app/page.tsx +0 -35
  588. package/2/apps/web/app/users/page.tsx +0 -301
  589. package/2/apps/web/components/AdminDashboard.tsx +0 -336
  590. package/2/apps/web/components/AppleLogo.tsx +0 -15
  591. package/2/apps/web/components/GitHubLogo.tsx +0 -11
  592. package/2/apps/web/components/GoogleLogo.tsx +0 -23
  593. package/2/apps/web/components/Layout.tsx +0 -77
  594. package/2/apps/web/components/ThemeToggle.tsx +0 -23
  595. package/2/apps/web/components/UserMenu.tsx +0 -66
  596. package/2/apps/web/components/auth/CodeInput.tsx +0 -24
  597. package/2/apps/web/components/auth/ResetPasswordWithEmailCode.tsx +0 -85
  598. package/2/apps/web/components/auth/SignInFormEmailCode.tsx +0 -72
  599. package/2/apps/web/components/auth/SignInFormEmailLink.tsx +0 -81
  600. package/2/apps/web/components/auth/SignInFormPassword.tsx +0 -17
  601. package/2/apps/web/components/auth/SignInFormPasswordAndCustomField.tsx +0 -42
  602. package/2/apps/web/components/auth/SignInFormPasswordAndResetViaCode.tsx +0 -32
  603. package/2/apps/web/components/auth/SignInFormPasswordAndVerifyViaCode.tsx +0 -86
  604. package/2/apps/web/components/auth/SignInFormPhoneCode.tsx +0 -89
  605. package/2/apps/web/components/auth/SignInFormsShowcase.tsx +0 -64
  606. package/2/apps/web/components/auth/SignInMethodDivider.tsx +0 -17
  607. package/2/apps/web/components/auth/SignInWithEmailCode.tsx +0 -49
  608. package/2/apps/web/components/auth/SignInWithOAuth.tsx +0 -16
  609. package/2/apps/web/components/auth/SignInWithPassword.tsx +0 -100
  610. package/2/apps/web/components/auth/oauth/SignInWithApple.tsx +0 -27
  611. package/2/apps/web/components/auth/oauth/SignInWithGitHub.tsx +0 -27
  612. package/2/apps/web/components/auth/oauth/SignInWithGoogle.tsx +0 -27
  613. package/2/apps/web/components/ui/button.tsx +0 -60
  614. package/2/apps/web/components/ui/card.tsx +0 -92
  615. package/2/apps/web/components/ui/dialog.tsx +0 -143
  616. package/2/apps/web/components/ui/dropdown-menu.tsx +0 -257
  617. package/2/apps/web/components/ui/input-otp.tsx +0 -77
  618. package/2/apps/web/components/ui/input.tsx +0 -21
  619. package/2/apps/web/components/ui/skeleton.tsx +0 -13
  620. package/2/apps/web/components/ui/tabs.tsx +0 -66
  621. package/2/apps/web/components/ui/toast.tsx +0 -130
  622. package/2/apps/web/components/ui/toaster.tsx +0 -36
  623. package/2/apps/web/components/ui/toggle-group.tsx +0 -83
  624. package/2/apps/web/components/ui/toggle.tsx +0 -47
  625. package/2/apps/web/components/ui/use-toast.ts +0 -192
  626. package/2/apps/web/components.json +0 -22
  627. package/2/apps/web/eslint.config.mjs +0 -18
  628. package/2/apps/web/lib/convex-provider.tsx +0 -18
  629. package/2/apps/web/lib/utils.ts +0 -6
  630. package/2/apps/web/next.config.ts +0 -7
  631. package/2/apps/web/package.json +0 -46
  632. package/2/apps/web/postcss.config.mjs +0 -7
  633. package/2/apps/web/public/file.svg +0 -1
  634. package/2/apps/web/public/globe.svg +0 -1
  635. package/2/apps/web/public/next.svg +0 -1
  636. package/2/apps/web/public/vercel.svg +0 -1
  637. package/2/apps/web/public/window.svg +0 -1
  638. package/2/apps/web/tsconfig.json +0 -34
  639. package/2/bts.jsonc +0 -21
  640. package/2/commitlint.config.js +0 -1
  641. package/2/eslint.config.mjs +0 -182
  642. package/2/lint-staged.config.js +0 -16
  643. package/2/package.json +0 -64
  644. package/2/packages/backend/.env.example +0 -20
  645. package/2/packages/backend/convex/README.md +0 -90
  646. package/2/packages/backend/convex/_generated/api.d.ts +0 -2599
  647. package/2/packages/backend/convex/_generated/api.js +0 -23
  648. package/2/packages/backend/convex/_generated/dataModel.d.ts +0 -60
  649. package/2/packages/backend/convex/_generated/server.d.ts +0 -149
  650. package/2/packages/backend/convex/_generated/server.js +0 -90
  651. package/2/packages/backend/convex/agents.ts +0 -116
  652. package/2/packages/backend/convex/auth.config.ts +0 -8
  653. package/2/packages/backend/convex/auth.ts +0 -103
  654. package/2/packages/backend/convex/authCustomEmailOtpProvider.ts +0 -175
  655. package/2/packages/backend/convex/authOtp.ts +0 -144
  656. package/2/packages/backend/convex/authPasswordReset.ts +0 -367
  657. package/2/packages/backend/convex/authPasswordResetActions.ts +0 -150
  658. package/2/packages/backend/convex/chatbot/index.ts +0 -30
  659. package/2/packages/backend/convex/chatbotAgent.ts +0 -1085
  660. package/2/packages/backend/convex/chatbotHistory.ts +0 -307
  661. package/2/packages/backend/convex/convex.config.ts +0 -13
  662. package/2/packages/backend/convex/deviceGrants.ts +0 -58
  663. package/2/packages/backend/convex/grantFunctions.ts +0 -444
  664. package/2/packages/backend/convex/http.ts +0 -8
  665. package/2/packages/backend/convex/imageGeneration/index.ts +0 -12
  666. package/2/packages/backend/convex/imageGeneratorFunctions.ts +0 -290
  667. package/2/packages/backend/convex/lib/ai/analysisConfigs.ts +0 -257
  668. package/2/packages/backend/convex/lib/ai/config.ts +0 -71
  669. package/2/packages/backend/convex/lib/ai/geminiAdapter.ts +0 -43
  670. package/2/packages/backend/convex/lib/ai/openaiAdapter.ts +0 -43
  671. package/2/packages/backend/convex/lib/ai/schemas.ts +0 -79
  672. package/2/packages/backend/convex/lib/config.ts +0 -111
  673. package/2/packages/backend/convex/lib/rateLimit.ts +0 -100
  674. package/2/packages/backend/convex/lib/telemetry.ts +0 -29
  675. package/2/packages/backend/convex/paymentFunctions.ts +0 -119
  676. package/2/packages/backend/convex/payments/index.ts +0 -13
  677. package/2/packages/backend/convex/pushNotificationFunctions.ts +0 -342
  678. package/2/packages/backend/convex/ragKnowledge.ts +0 -714
  679. package/2/packages/backend/convex/rateLimit.ts +0 -13
  680. package/2/packages/backend/convex/recordingFunctions.ts +0 -98
  681. package/2/packages/backend/convex/reportFunctions.ts +0 -344
  682. package/2/packages/backend/convex/reporting/index.ts +0 -9
  683. package/2/packages/backend/convex/router.ts +0 -81
  684. package/2/packages/backend/convex/schema.ts +0 -237
  685. package/2/packages/backend/convex/shared/email.ts +0 -172
  686. package/2/packages/backend/convex/shared/files.ts +0 -96
  687. package/2/packages/backend/convex/shared/index.ts +0 -17
  688. package/2/packages/backend/convex/shared/templates/PasswordResetEmail.tsx +0 -72
  689. package/2/packages/backend/convex/shared/templates/VerificationCodeEmail.tsx +0 -65
  690. package/2/packages/backend/convex/sharedUsers.ts +0 -48
  691. package/2/packages/backend/convex/tools/index.ts +0 -18
  692. package/2/packages/backend/convex/tools/knowledgeRetrieval.ts +0 -92
  693. package/2/packages/backend/convex/tools/tavilySearch.ts +0 -83
  694. package/2/packages/backend/convex/tools/userProfile.ts +0 -72
  695. package/2/packages/backend/convex/tsconfig.json +0 -25
  696. package/2/packages/backend/convex/users.ts +0 -54
  697. package/2/packages/backend/index.ts +0 -20
  698. package/2/packages/backend/package.json +0 -32
  699. package/2/packages/ui/README.md +0 -63
  700. package/2/packages/ui/index.ts +0 -1
  701. package/2/packages/ui/package.json +0 -21
  702. package/2/packages/ui/src/components/SharedButton.tsx +0 -31
  703. package/2/packages/ui/src/components/SharedCard.tsx +0 -48
  704. package/2/packages/ui/src/components/index.ts +0 -2
  705. package/2/packages/ui/tsconfig.json +0 -10
  706. package/2/pnpm-lock.yaml +0 -23292
  707. package/2/pnpm-workspace.yaml +0 -3
  708. package/2/scripts/i18next-syntax-validation.js +0 -1
  709. package/2/tsconfig.json +0 -43
  710. package/2/turbo.json +0 -33
  711. package/2/vercel.json +0 -6
  712. package/2/vf-agent/agent-teams/team-vibefast.yaml +0 -14
  713. package/2/vf-agent/agents/analyst.md +0 -53
  714. package/2/vf-agent/agents/architect.md +0 -105
  715. package/2/vf-agent/agents/dev.md +0 -40
  716. package/2/vf-agent/agents/orchestrator.md +0 -181
  717. package/2/vf-agent/agents/pm.md +0 -48
  718. package/2/vf-agent/agents/po.md +0 -38
  719. package/2/vf-agent/agents/qa.md +0 -30
  720. package/2/vf-agent/agents/sm.md +0 -38
  721. package/2/vf-agent/agents/ux-expert.md +0 -33
  722. package/2/vf-agent/checklists/po-master-checklist.md +0 -73
  723. package/2/vf-agent/checklists/story-dod-checklist.md +0 -37
  724. package/2/vf-agent/core-config.yaml +0 -43
  725. package/2/vf-agent/data/knowledge_base/backend/convex-advanced.md +0 -43
  726. package/2/vf-agent/data/knowledge_base/backend/convex-database.md +0 -53
  727. package/2/vf-agent/data/knowledge_base/backend/convex-main.md +0 -65
  728. package/2/vf-agent/data/knowledge_base/backend/full-guidelines.md +0 -795
  729. package/2/vf-agent/data/knowledge_base/coding-standards.md +0 -253
  730. package/2/vf-agent/data/knowledge_base/frontend/full-guidelines.md +0 -254
  731. package/2/vf-agent/data/knowledge_base/frontend/image-handling.md +0 -48
  732. package/2/vf-agent/data/knowledge_base/frontend/react-native-main.md +0 -24
  733. package/2/vf-agent/data/knowledge_base/frontend/ui-and-styling.md +0 -169
  734. package/2/vf-agent/data/knowledge_base/general-principles.md +0 -26
  735. package/2/vf-agent/data/knowledge_base/master-rulebook.md +0 -42
  736. package/2/vf-agent/data/knowledge_base/starter-docs/audio-recorder-reference.md +0 -98
  737. package/2/vf-agent/data/knowledge_base/starter-docs/authentication-reference.md +0 -155
  738. package/2/vf-agent/data/knowledge_base/starter-docs/charts-reference.md +0 -149
  739. package/2/vf-agent/data/knowledge_base/starter-docs/chatbot-reference.md +0 -123
  740. package/2/vf-agent/data/knowledge_base/starter-docs/feature-reference-index.md +0 -211
  741. package/2/vf-agent/data/knowledge_base/starter-docs/features-overview.md +0 -221
  742. package/2/vf-agent/data/knowledge_base/starter-docs/image-analyzer-reference.md +0 -118
  743. package/2/vf-agent/data/knowledge_base/starter-docs/image-generator-reference.md +0 -110
  744. package/2/vf-agent/data/knowledge_base/starter-docs/index.md +0 -28
  745. package/2/vf-agent/data/knowledge_base/starter-docs/onboarding-reference.md +0 -96
  746. package/2/vf-agent/data/knowledge_base/starter-docs/payments-reference.md +0 -148
  747. package/2/vf-agent/data/knowledge_base/starter-docs/prd.md +0 -82
  748. package/2/vf-agent/data/knowledge_base/starter-docs/push-notifications-reference.md +0 -453
  749. package/2/vf-agent/data/knowledge_base/starter-docs/quick-actions-reference.md +0 -253
  750. package/2/vf-agent/data/knowledge_base/starter-docs/quiz-reference.md +0 -169
  751. package/2/vf-agent/data/knowledge_base/starter-docs/settings-reference.md +0 -146
  752. package/2/vf-agent/data/knowledge_base/starter-docs/tech-stack.md +0 -159
  753. package/2/vf-agent/data/knowledge_base/starter-docs/tracker-app-reference.md +0 -150
  754. package/2/vf-agent/data/knowledge_base/starter-docs/unified-project-structure.md +0 -98
  755. package/2/vf-agent/data/knowledge_base/testing/backend-testing.md +0 -54
  756. package/2/vf-agent/data/knowledge_base/testing/frontend-testing.md +0 -71
  757. package/2/vf-agent/data/knowledge_base/testing/testing-strategy.md +0 -31
  758. package/2/vf-agent/tasks/advanced-elicitation.md +0 -117
  759. package/2/vf-agent/tasks/brownfield-create-epic.md +0 -160
  760. package/2/vf-agent/tasks/create-deep-research-prompt.md +0 -278
  761. package/2/vf-agent/tasks/create-doc.md +0 -42
  762. package/2/vf-agent/tasks/create-story.md +0 -43
  763. package/2/vf-agent/tasks/document-project.md +0 -343
  764. package/2/vf-agent/tasks/facilitate-brainstorming-session.md +0 -136
  765. package/2/vf-agent/tasks/index-docs.md +0 -173
  766. package/2/vf-agent/tasks/kb-mode-interaction.md +0 -75
  767. package/2/vf-agent/tasks/review-story.md +0 -154
  768. package/2/vf-agent/tasks/shard-doc.md +0 -185
  769. package/2/vf-agent/tasks/troubleshoot-issue.md +0 -65
  770. package/2/vf-agent/tasks/validate-next-story.md +0 -47
  771. package/2/vf-agent/templates/brainstorming-output-tmpl.yaml +0 -156
  772. package/2/vf-agent/templates/brownfield-architecture-tmpl.yaml +0 -111
  773. package/2/vf-agent/templates/brownfield-prd-tmpl.yaml +0 -247
  774. package/2/vf-agent/templates/competitor-analysis-tmpl.yaml +0 -293
  775. package/2/vf-agent/templates/market-research-tmpl.yaml +0 -252
  776. package/2/vf-agent/templates/project-brief-tmpl.yaml +0 -221
  777. package/2/vf-agent/templates/story-tmpl.yaml +0 -143
  778. package/recipes/0/apps/native/src/components/advanced-ui/timeline/demo.tsx +0 -444
  779. package/recipes/0/apps/native/src/components/advanced-ui/timeline/timeline-view.tsx +0 -355
  780. package/recipes/0/apps/native/src/components/advanced-ui/timeline/types.ts +0 -31
  781. package/recipes/wake-word/scripts/download-vosk-model.mjs +0 -121
  782. /package/{2 → recipes/animated-chip}/apps/native/src/components/advanced-ui/chip/animated-chip.tsx +0 -0
  783. /package/{2 → recipes/animated-chip}/apps/native/src/components/advanced-ui/chip/chip.tsx +0 -0
  784. /package/{2 → recipes/animated-chip}/apps/native/src/components/advanced-ui/chip/demo.tsx +0 -0
  785. /package/{2 → recipes/animated-chip}/apps/native/src/components/advanced-ui/chip/types.ts +0 -0
  786. /package/{2 → recipes/animated-switch}/apps/native/src/components/advanced-ui/switch/animated-switch.tsx +0 -0
  787. /package/{2 → recipes/animated-switch}/apps/native/src/components/advanced-ui/switch/demo.tsx +0 -0
  788. /package/{2 → recipes/animated-switch}/apps/native/src/components/advanced-ui/switch/types.ts +0 -0
  789. /package/{2 → recipes/glowing-button}/apps/native/src/components/advanced-ui/buttons/demo.tsx +0 -0
  790. /package/{2 → recipes/image-analysis}/apps/native/assets/features/image-analyzer/front.jpg +0 -0
  791. /package/{2 → recipes/image-analysis}/apps/native/assets/features/image-analyzer/side.jpg +0 -0
  792. /package/{2 → recipes/image-analysis}/apps/native/assets/features/image-analyzer/threeQuarter.jpg +0 -0
  793. /package/{2 → recipes/image-analysis}/apps/native/src/api-client/image-analyzer.ts +0 -0
  794. /package/{2 → recipes/image-analysis}/apps/native/src/app/(root)/(protected)/analysis/[type]/_layout.tsx +0 -0
  795. /package/{2 → recipes/image-analysis}/apps/native/src/app/(root)/(protected)/analysis/[type]/analysis-options.tsx +0 -0
  796. /package/{2 → recipes/image-analysis}/apps/native/src/app/(root)/(protected)/analysis/[type]/camera.tsx +0 -0
  797. /package/{2 → recipes/image-analysis}/apps/native/src/app/(root)/(protected)/analysis/[type]/index.tsx +0 -0
  798. /package/{2 → recipes/image-analysis}/apps/native/src/app/(root)/(protected)/analysis/[type]/loading.tsx +0 -0
  799. /package/{2 → recipes/image-analysis}/apps/native/src/app/(root)/(protected)/analysis/[type]/results.tsx +0 -0
  800. /package/{2 → recipes/image-analysis}/apps/native/src/app/(root)/(protected)/analysis/[type]/trait-details.tsx +0 -0
  801. /package/{2 → recipes/image-analysis}/apps/native/src/features/image-analyzer/app/analysis-options-screen.tsx +0 -0
  802. /package/{2 → recipes/image-analysis}/apps/native/src/features/image-analyzer/app/camera.tsx +0 -0
  803. /package/{2 → recipes/image-analysis}/apps/native/src/features/image-analyzer/app/image-capture-screen.tsx +0 -0
  804. /package/{2 → recipes/image-analysis}/apps/native/src/features/image-analyzer/app/loading-screen.tsx +0 -0
  805. /package/{2 → recipes/image-analysis}/apps/native/src/features/image-analyzer/app/loading.tsx +0 -0
  806. /package/{2 → recipes/image-analysis}/apps/native/src/features/image-analyzer/app/results.tsx +0 -0
  807. /package/{2 → recipes/image-analysis}/apps/native/src/features/image-analyzer/app/trait-details.tsx +0 -0
  808. /package/{2 → recipes/image-analysis}/apps/native/src/features/image-analyzer/app/use-analysis-data.ts +0 -0
  809. /package/{2 → recipes/image-analysis}/apps/native/src/features/image-analyzer/app/use-results-screen.ts +0 -0
  810. /package/{2 → recipes/image-analysis}/apps/native/src/features/image-analyzer/components/results/achievement-badge.tsx +0 -0
  811. /package/{2 → recipes/image-analysis}/apps/native/src/features/image-analyzer/components/results/achievement-card.tsx +0 -0
  812. /package/{2 → recipes/image-analysis}/apps/native/src/features/image-analyzer/components/results/achievement-unlocked-modal.tsx +0 -0
  813. /package/{2 → recipes/image-analysis}/apps/native/src/features/image-analyzer/components/results/achievements-section.tsx +0 -0
  814. /package/{2 → recipes/image-analysis}/apps/native/src/features/image-analyzer/components/results/advice-list.tsx +0 -0
  815. /package/{2 → recipes/image-analysis}/apps/native/src/features/image-analyzer/components/results/circular-progress.tsx +0 -0
  816. /package/{2 → recipes/image-analysis}/apps/native/src/features/image-analyzer/components/results/content-card.tsx +0 -0
  817. /package/{2 → recipes/image-analysis}/apps/native/src/features/image-analyzer/components/results/error-state.tsx +0 -0
  818. /package/{2 → recipes/image-analysis}/apps/native/src/features/image-analyzer/components/results/index.ts +0 -0
  819. /package/{2 → recipes/image-analysis}/apps/native/src/features/image-analyzer/components/results/loading-state.tsx +0 -0
  820. /package/{2 → recipes/image-analysis}/apps/native/src/features/image-analyzer/components/results/profile-image.tsx +0 -0
  821. /package/{2 → recipes/image-analysis}/apps/native/src/features/image-analyzer/components/results/results-header.tsx +0 -0
  822. /package/{2 → recipes/image-analysis}/apps/native/src/features/image-analyzer/components/results/score-display.tsx +0 -0
  823. /package/{2 → recipes/image-analysis}/apps/native/src/features/image-analyzer/components/results/share-options-modal.tsx +0 -0
  824. /package/{2 → recipes/image-analysis}/apps/native/src/features/image-analyzer/components/results/traits-grid.tsx +0 -0
  825. /package/{2 → recipes/image-analysis}/apps/native/src/features/image-analyzer/config/analysis-config.ts +0 -0
  826. /package/{2 → recipes/image-analysis}/apps/native/src/features/image-analyzer/config/master-analysis-config.ts +0 -0
  827. /package/{2 → recipes/image-analysis}/apps/native/src/features/image-analyzer/hooks/index.ts +0 -0
  828. /package/{2 → recipes/image-analysis}/apps/native/src/features/image-analyzer/hooks/use-analysis.ts +0 -0
  829. /package/{2 → recipes/image-analysis}/apps/native/src/features/image-analyzer/hooks/use-image-analysis.ts +0 -0
  830. /package/{2 → recipes/image-analysis}/apps/native/src/features/image-analyzer/services/analysis-service.ts +0 -0
  831. /package/{2 → recipes/image-analysis}/apps/native/src/features/image-analyzer/services/share-service.ts +0 -0
  832. /package/{2 → recipes/image-analysis}/apps/native/src/features/image-analyzer/services/trait-details-service.ts +0 -0
  833. /package/{2 → recipes/image-analysis}/packages/backend/convex/imageAnalysis/index.ts +0 -0
  834. /package/{2 → recipes/image-analysis}/packages/backend/convex/imageAnalysisFunctions.ts +0 -0
  835. /package/{2 → recipes/image-analysis}/packages/backend/convex/lib/ai/imageAnalysisAdapter.ts +0 -0
  836. /package/{2 → recipes/number-stepper}/apps/native/src/components/advanced-ui/stepper/children/button/stepper-button.tsx +0 -0
  837. /package/{2 → recipes/number-stepper}/apps/native/src/components/advanced-ui/stepper/children/button/types.ts +0 -0
  838. /package/{2 → recipes/number-stepper}/apps/native/src/components/advanced-ui/stepper/children/content/stepper-content.tsx +0 -0
  839. /package/{2 → recipes/number-stepper}/apps/native/src/components/advanced-ui/stepper/children/content/types.ts +0 -0
  840. /package/{2 → recipes/number-stepper}/apps/native/src/components/advanced-ui/stepper/children/value/stepper-value.tsx +0 -0
  841. /package/{2 → recipes/number-stepper}/apps/native/src/components/advanced-ui/stepper/children/value/types.ts +0 -0
  842. /package/{2 → recipes/number-stepper}/apps/native/src/components/advanced-ui/stepper/context/stepper-context.ts +0 -0
  843. /package/{2 → recipes/number-stepper}/apps/native/src/components/advanced-ui/stepper/context/types.ts +0 -0
  844. /package/{2 → recipes/number-stepper}/apps/native/src/components/advanced-ui/stepper/demo.tsx +0 -0
  845. /package/{2 → recipes/number-stepper}/apps/native/src/components/advanced-ui/stepper/index.ts +0 -0
  846. /package/{2 → recipes/number-stepper}/apps/native/src/components/advanced-ui/stepper/stepper.tsx +0 -0
  847. /package/{2 → recipes/number-stepper}/apps/native/src/components/advanced-ui/stepper/types.ts +0 -0
  848. /package/{2 → recipes/progress-circle}/apps/native/src/components/advanced-ui/progress-bars/animated-progress-bar.tsx +0 -0
  849. /package/{2 → recipes/progress-circle}/apps/native/src/components/advanced-ui/progress-bars/dropdown-picker-page.tsx +0 -0
  850. /package/{2 → recipes/progress-circle}/apps/native/src/components/advanced-ui/progress-bars/progress-circle-page.tsx +0 -0
  851. /package/{2 → recipes/progress-circle}/apps/native/src/components/advanced-ui/progress-bars/progress-circle.tsx +0 -0
  852. /package/{2 → recipes/swipe-slider}/apps/native/src/components/advanced-ui/sliders/swipe-slider-page.tsx +0 -0
  853. /package/{2 → recipes/swipe-slider}/apps/native/src/components/advanced-ui/sliders/swipe-slider.tsx +0 -0
  854. /package/{2 → recipes/timeline}/apps/native/src/components/advanced-ui/timeline/demo.tsx +0 -0
  855. /package/{2 → recipes/timeline}/apps/native/src/components/advanced-ui/timeline/timeline-view.tsx +0 -0
  856. /package/{2 → recipes/timeline}/apps/native/src/components/advanced-ui/timeline/types.ts +0 -0
  857. /package/{2 → recipes/wake-word}/apps/native/scripts/download-vosk-model.mjs +0 -0
@@ -1,497 +0,0 @@
1
- import { useAuthActions, useAuthToken } from '@convex-dev/auth/react';
2
- import { Env } from '@env';
3
-
4
- import { authApi } from '@/api-client/auth';
5
- import { handleError } from '@/components/ui/extras/handle-error';
6
- import type { User } from '@/core/auth/auth-service';
7
- import { getDeviceId } from '@/lib/hooks/use-device-identifier';
8
-
9
- /**
10
-
11
- Transform Convex user document to AuthService User type
12
- */
13
- export const transformUser = (convexUser: any): User | null => {
14
- if (!convexUser) return null;
15
-
16
- return {
17
- id: convexUser._id,
18
- email: convexUser.email,
19
- isAnonymous: convexUser.isAnonymous || false,
20
- };
21
- };
22
-
23
- /**
24
-
25
- Hook-based functions that provide access to Convex authentication
26
-
27
- These need to be used within React components
28
- */
29
- export const useConvexAuth = () => {
30
- const { signIn: convexSignIn, signOut: convexSignOut } = useAuthActions();
31
- const authToken = useAuthToken();
32
- const userQuery = authApi.useViewer();
33
-
34
- // Convex mutations and actions for OTP functionality
35
- const signUpWithOtpAction = authApi.useSignUpWithOtp();
36
- const verifyOtpAction = authApi.useVerifyOtpAndCreateUser();
37
-
38
- // Convex functions for password reset functionality
39
- const requestPasswordResetAction = authApi.useRequestPasswordReset();
40
- const resetPasswordAction = authApi.useResetPassword();
41
- const verifyPasswordResetTokenFn = authApi.useVerifyPasswordResetToken();
42
-
43
- // Determine authentication state based on token presence and user data
44
- const isLoading = userQuery === undefined;
45
-
46
- // Auth is hydrated when we have user query data (token might be refreshing)
47
- const authHydrated = userQuery !== undefined;
48
-
49
- // For regular users: authToken exists AND user document exists
50
- // For anonymous users: authToken exists BUT user document might be null
51
- // FAST REFRESH FIX: If we have valid user data but token is temporarily undefined,
52
- // assume authenticated (token refresh in progress)
53
- const hasValidUserData = userQuery !== null && userQuery !== undefined;
54
- const isAuthenticated =
55
- (!!authToken && (userQuery !== null || !isLoading)) ||
56
- (hasValidUserData && !isLoading);
57
-
58
- // Debug logging for token issues
59
- if (hasValidUserData && !authToken) {
60
- console.log(
61
- '[useConvexAuth] Token missing but user data exists - likely token refresh in progress',
62
- );
63
- }
64
-
65
- const getCurrentUser = async (): Promise<User | null> => {
66
- return transformUser(userQuery);
67
- };
68
-
69
- const signIn = async (provider: string, credentials?: any): Promise<User> => {
70
- const deviceId = await getDeviceId();
71
-
72
- try {
73
- if (provider === 'password') {
74
- const { email, password } = credentials;
75
- await convexSignIn('password', {
76
- email,
77
- password,
78
- flow: 'signIn',
79
- deviceId,
80
- });
81
- } else {
82
- await convexSignIn(provider as any, { ...credentials, deviceId });
83
- }
84
- } catch (error) {
85
- // Handle authentication errors with user-friendly messages
86
- const errorStr = error instanceof Error ? error.message : String(error);
87
-
88
- // Map common Convex errors to user-friendly messages
89
- let userMessage = 'Authentication failed';
90
-
91
- if (errorStr.includes('InvalidAccountId')) {
92
- userMessage =
93
- 'Invalid account. Please check your email or try signing up.';
94
- } else if (
95
- errorStr.includes('Invalid credentials') ||
96
- errorStr.includes('auth.signIn')
97
- ) {
98
- userMessage = 'Invalid email or password. Please try again.';
99
- } else if (
100
- errorStr.includes('Too many requests') ||
101
- errorStr.includes('rate limit')
102
- ) {
103
- userMessage =
104
- 'Too many login attempts. Please wait a moment and try again.';
105
- } else if (
106
- errorStr.includes('Network error') ||
107
- errorStr.includes('fetch')
108
- ) {
109
- userMessage =
110
- 'Network error. Please check your internet connection and try again.';
111
- } else if (errorStr.includes('Server Error')) {
112
- userMessage =
113
- 'Server temporarily unavailable. Please try again in a moment.';
114
- }
115
-
116
- // Log the full technical error for debugging, but show user-friendly message
117
- handleError(error, {
118
- feature: 'auth.signIn',
119
- fallbackMessage: userMessage,
120
- toast: true, // Show the user-friendly toast
121
- });
122
-
123
- // Re-throw for UI layer to handle - this is required so login knows it failed
124
- throw error;
125
- }
126
-
127
- // Return a temporary user object - the actual user state will be handled by AuthWatcher
128
- return {
129
- id: 'authenticating',
130
- email: credentials?.email || '',
131
- isAnonymous: provider === 'anonymous',
132
- };
133
- };
134
-
135
- const signUpWithOtp = async (details: {
136
- email: string;
137
- password?: string;
138
- name?: string;
139
- }): Promise<{ navigateToOtp: boolean; error?: string }> => {
140
- try {
141
- const { email, password, name } = details;
142
- if (!password) {
143
- return {
144
- navigateToOtp: false,
145
- error: 'Password is required for signup',
146
- };
147
- }
148
-
149
- const result = await signUpWithOtpAction({
150
- email,
151
- password,
152
- name,
153
- });
154
-
155
- return { navigateToOtp: result.navigateToOtp };
156
- } catch (error) {
157
- // Sanitize technical errors for user-friendly display
158
- const errorStr = error instanceof Error ? error.message : String(error);
159
- let userMessage = 'Failed to sign up. Please try again.';
160
-
161
- if (
162
- errorStr.includes('Invalid email') ||
163
- errorStr.includes('Email already exists') ||
164
- (errorStr.includes('Account') && errorStr.includes('already exists'))
165
- ) {
166
- userMessage =
167
- 'This email is already registered. Please try signing in.';
168
- } else if (
169
- errorStr.includes('Too many requests') ||
170
- errorStr.includes('rate limit')
171
- ) {
172
- userMessage =
173
- 'Too many signup attempts. Please wait a moment and try again.';
174
- } else if (
175
- errorStr.includes('Network error') ||
176
- errorStr.includes('fetch')
177
- ) {
178
- userMessage =
179
- 'Network error. Please check your internet connection and try again.';
180
- } else if (errorStr.includes('Server Error')) {
181
- userMessage =
182
- 'Server temporarily unavailable. Please try again in a moment.';
183
- }
184
-
185
- // Log technical error for debugging but don't show toast (UI layer will handle)
186
- handleError(error, {
187
- feature: 'auth.signUpWithOtp',
188
- fallbackMessage: userMessage,
189
- toast: false, // Don't show toast - let UI layer handle it
190
- });
191
-
192
- return {
193
- navigateToOtp: false,
194
- error: userMessage,
195
- };
196
- }
197
- };
198
-
199
- const verifyOtp = async (otpDetails: {
200
- email: string;
201
- otp: string;
202
- name?: string;
203
- password: string;
204
- }): Promise<{ success: boolean; user?: User; error?: string }> => {
205
- try {
206
- const result = await verifyOtpAction(otpDetails);
207
-
208
- if (result.success) {
209
- const currentUser = await getCurrentUser();
210
- return { success: true, user: currentUser || undefined };
211
- }
212
- return { success: false, error: result.error || 'Invalid OTP' };
213
- } catch (error) {
214
- // Sanitize technical errors for user-friendly display
215
- const errorStr = error instanceof Error ? error.message : String(error);
216
- let userMessage = 'OTP verification failed. Please try again.';
217
-
218
- if (errorStr.includes('Invalid OTP') || errorStr.includes('otp')) {
219
- userMessage = 'Invalid verification code. Please check and try again.';
220
- } else if (errorStr.includes('expired')) {
221
- userMessage =
222
- 'Verification code has expired. Please request a new one.';
223
- } else if (
224
- errorStr.includes('Too many requests') ||
225
- errorStr.includes('rate limit')
226
- ) {
227
- userMessage =
228
- 'Too many verification attempts. Please wait and try again.';
229
- } else if (
230
- errorStr.includes('Network error') ||
231
- errorStr.includes('fetch')
232
- ) {
233
- userMessage =
234
- 'Network error. Please check your connection and try again.';
235
- } else if (errorStr.includes('Server Error')) {
236
- userMessage =
237
- 'Server temporarily unavailable. Please try again in a moment.';
238
- }
239
-
240
- // Log technical error for debugging
241
- handleError(error, {
242
- feature: 'auth.verifyOtp',
243
- fallbackMessage: userMessage,
244
- });
245
-
246
- return {
247
- success: false,
248
- error: userMessage,
249
- };
250
- }
251
- };
252
-
253
- const resendOtp = async (
254
- email: string,
255
- password?: string,
256
- name?: string,
257
- ): Promise<{ success: boolean; error?: string }> => {
258
- try {
259
- const result = await signUpWithOtpAction({
260
- email,
261
- password: password || '',
262
- name,
263
- });
264
- return {
265
- success: result.navigateToOtp,
266
- error: result.navigateToOtp ? undefined : 'Failed to resend OTP',
267
- };
268
- } catch (error) {
269
- // Sanitize technical errors for user-friendly display
270
- const errorStr = error instanceof Error ? error.message : String(error);
271
- let userMessage = 'Failed to resend verification code. Please try again.';
272
-
273
- if (
274
- errorStr.includes('Too many requests') ||
275
- errorStr.includes('rate limit')
276
- ) {
277
- userMessage =
278
- 'Too many requests. Please wait a moment before trying again.';
279
- } else if (
280
- errorStr.includes('Network error') ||
281
- errorStr.includes('fetch')
282
- ) {
283
- userMessage =
284
- 'Network error. Please check your connection and try again.';
285
- } else if (errorStr.includes('Server Error')) {
286
- userMessage =
287
- 'Server temporarily unavailable. Please try again in a moment.';
288
- }
289
-
290
- // Log technical error for debugging
291
- handleError(error, {
292
- feature: 'auth.resendOtp',
293
- fallbackMessage: userMessage,
294
- });
295
-
296
- return {
297
- success: false,
298
- error: userMessage,
299
- };
300
- }
301
- };
302
-
303
- const signOut = async (): Promise<void> => {
304
- await convexSignOut();
305
- };
306
-
307
- const initiateGuestSession = async (): Promise<User> => {
308
- const deviceId = await getDeviceId();
309
-
310
- await convexSignIn('anonymous', { deviceId });
311
-
312
- return { id: 'guest', email: '', isAnonymous: true };
313
- };
314
-
315
- const requestPasswordReset = async (
316
- email: string,
317
- ): Promise<{ success: boolean; error?: string }> => {
318
- try {
319
- const scheme = Env.SCHEME;
320
- const resetUrlTemplate = `${scheme}://reset-password?token=__TOKEN__`;
321
- const result = await requestPasswordResetAction({
322
- email,
323
- resetUrlTemplate,
324
- });
325
- return {
326
- success: result.success,
327
- error: result.success ? undefined : 'Failed to send reset email',
328
- };
329
- } catch (error) {
330
- // Sanitize technical errors for user-friendly display
331
- const errorStr = error instanceof Error ? error.message : String(error);
332
- let userMessage =
333
- 'Failed to send password reset email. Please try again.';
334
-
335
- if (
336
- errorStr.includes('Email not found') ||
337
- errorStr.includes('user not found')
338
- ) {
339
- userMessage =
340
- "If this email is registered, you'll receive a reset link shortly.";
341
- } else if (
342
- errorStr.includes('Too many requests') ||
343
- errorStr.includes('rate limit')
344
- ) {
345
- userMessage =
346
- 'Too many reset attempts. Please wait a moment and try again.';
347
- } else if (
348
- errorStr.includes('Network error') ||
349
- errorStr.includes('fetch')
350
- ) {
351
- userMessage =
352
- 'Network error. Please check your connection and try again.';
353
- } else if (errorStr.includes('Server Error')) {
354
- userMessage =
355
- 'Server temporarily unavailable. Please try again in a moment.';
356
- }
357
-
358
- // Log technical error for debugging
359
- handleError(error, {
360
- feature: 'auth.requestPasswordReset',
361
- fallbackMessage: userMessage,
362
- });
363
-
364
- return {
365
- success: false,
366
- error: userMessage,
367
- };
368
- }
369
- };
370
-
371
- const resetPassword = async (details: {
372
- token: string;
373
- newPassword: string;
374
- }): Promise<{ success: boolean; error?: string }> => {
375
- try {
376
- const result = await resetPasswordAction({
377
- token: details.token,
378
- newPassword: details.newPassword,
379
- });
380
- return {
381
- success: result.success,
382
- error: result.success ? undefined : 'Failed to reset password',
383
- };
384
- } catch (error) {
385
- // Sanitize technical errors for user-friendly display
386
- const errorStr = error instanceof Error ? error.message : String(error);
387
- let userMessage = 'Failed to reset password. Please try again.';
388
-
389
- if (errorStr.includes('Invalid token') || errorStr.includes('expired')) {
390
- userMessage =
391
- 'Reset link has expired or is invalid. Please request a new one.';
392
- } else if (
393
- errorStr.includes('Weak password') ||
394
- errorStr.includes('password too weak')
395
- ) {
396
- userMessage =
397
- 'Password is too weak. Please choose a stronger password.';
398
- } else if (
399
- errorStr.includes('Too many requests') ||
400
- errorStr.includes('rate limit')
401
- ) {
402
- userMessage =
403
- 'Too many reset attempts. Please wait a moment and try again.';
404
- } else if (
405
- errorStr.includes('Network error') ||
406
- errorStr.includes('fetch')
407
- ) {
408
- userMessage =
409
- 'Network error. Please check your connection and try again.';
410
- } else if (errorStr.includes('Server Error')) {
411
- userMessage =
412
- 'Server temporarily unavailable. Please try again in a moment.';
413
- }
414
-
415
- // Log technical error for debugging
416
- handleError(error, {
417
- feature: 'auth.resetPassword',
418
- fallbackMessage: userMessage,
419
- });
420
-
421
- return {
422
- success: false,
423
- error: userMessage,
424
- };
425
- }
426
- };
427
-
428
- const verifyPasswordResetToken = async (
429
- token: string,
430
- ): Promise<{ valid: boolean; error?: string }> => {
431
- try {
432
- const result = await verifyPasswordResetTokenFn(token);
433
- return result;
434
- } catch (error) {
435
- // Sanitize technical errors for user-friendly display
436
- const errorStr = error instanceof Error ? error.message : String(error);
437
- let userMessage = 'Reset link is invalid or has expired.';
438
-
439
- if (errorStr.includes('Invalid token') || errorStr.includes('expired')) {
440
- userMessage =
441
- 'Reset link has expired or is invalid. Please request a new one.';
442
- } else if (
443
- errorStr.includes('Network error') ||
444
- errorStr.includes('fetch')
445
- ) {
446
- userMessage =
447
- 'Network error. Please check your connection and try again.';
448
- } else if (errorStr.includes('Server Error')) {
449
- userMessage =
450
- 'Server temporarily unavailable. Please try again in a moment.';
451
- }
452
-
453
- // Log technical error for debugging
454
- handleError(error, {
455
- feature: 'auth.verifyPasswordResetToken',
456
- fallbackMessage: userMessage,
457
- });
458
-
459
- return {
460
- valid: false,
461
- error: userMessage,
462
- };
463
- }
464
- };
465
-
466
- return {
467
- getCurrentUser,
468
- signIn,
469
- signUpWithOtp,
470
- verifyOtp,
471
- resendOtp,
472
- signOut,
473
- initiateGuestSession,
474
- requestPasswordReset,
475
- resetPassword,
476
- verifyPasswordResetToken,
477
- isAuthenticated,
478
- isLoading,
479
- authHydrated,
480
- userQuery,
481
- transformUser,
482
- };
483
- };
484
-
485
- /**
486
-
487
- ConvexAuthAdapter implements the AuthService interface using Convex authentication.
488
-
489
- This adapter bridges our abstract AuthService interface with @convex-dev/auth implementation.
490
-
491
- Note: This adapter is designed to work with React components. The methods here provide
492
-
493
- a bridge to the hook-based functionality but cannot be called directly outside of React
494
-
495
- component context. Use the AuthService via dependency injection in your React components.
496
- */
497
- // Removed ConvexAuthAdapterClass in favor of useConvexAuth hook
@@ -1,2 +0,0 @@
1
- // Note: adapter file uses RN-specific exports without TS types
2
- export { useConvexAuth } from './convex-auth.adapter';
@@ -1,185 +0,0 @@
1
- # Chart Components
2
-
3
- A collection of beautiful, animated chart components built with React Native SVG, d3-shape, and React Native Reanimated.
4
-
5
- ## 🚀 Features
6
-
7
- - **Fully Animated**: Smooth entrance animations with staggered effects
8
- - **Theme-Aware**: Automatically adapts to light/dark themes using `useThemeConfig`
9
- - **Responsive**: Horizontal scrolling support for charts that exceed screen width
10
- - **Accessible**: Proper contrast ratios and accessibility labels
11
- - **TypeScript**: Fully typed with comprehensive prop interfaces
12
- - **Customizable**: Extensive styling and behavior options
13
-
14
- ## 📊 Available Charts
15
-
16
- ### BarChart
17
-
18
- Animated bar charts with horizontal scrolling support.
19
-
20
- **Features:**
21
-
22
- - Staggered bar growth animations
23
- - Grid lines with proper contrast
24
- - Value labels above bars
25
- - Category labels below bars
26
- - Horizontal scrolling for wide datasets
27
- - Haptic feedback on press
28
-
29
- **Props:**
30
-
31
- - `data`: Array of chart data objects with `id`, `label`, `value`, and optional `color`
32
- - `height`: Chart height (default: 250)
33
- - `showValues`: Display values above bars (default: true)
34
- - `showLabels`: Display labels below bars (default: true)
35
- - `showGrid`: Show grid lines (default: true)
36
- - `valueFormatter`: Function to format displayed values
37
- - `barRadius`: Border radius of bars (default: 8)
38
- - `gap`: Space between bars (default: 12)
39
-
40
- ### LineChart
41
-
42
- Smooth animated line charts with area fills and data points.
43
-
44
- **Features:**
45
-
46
- - Animated path drawing with stroke-dash effects
47
- - Curved or linear line styles
48
- - Optional area fills
49
- - Animated data points
50
- - Grid overlay support
51
-
52
- **Props:**
53
-
54
- - `data`: Array of numeric values
55
- - `labels`: Array of string labels for x-axis
56
- - `height`: Chart height (default: 200)
57
- - `curved`: Use curved lines (default: true)
58
- - `showArea`: Show area fill (default: true)
59
- - `showDots`: Show data points (default: true)
60
- - `valueFormatter`: Function to format displayed values
61
-
62
- ### PieChart
63
-
64
- Animated pie charts with detailed legends.
65
-
66
- **Features:**
67
-
68
- - Slice-by-slice animation with staggered timing
69
- - Interactive legend with slide-in effects
70
- - Support for custom colors
71
- - Touch interactions with haptic feedback
72
-
73
- **Props:**
74
-
75
- - `data`: Array of chart data objects
76
- - `height`: Chart height (default: 300)
77
- - `radius`: Chart radius (auto-calculated if not provided)
78
- - `showLegend`: Display legend (default: true)
79
- - `valueFormatter`: Function to format displayed values
80
-
81
- ### DonutChart
82
-
83
- Specialized donut charts with center labels.
84
-
85
- **Features:**
86
-
87
- - All PieChart features
88
- - Customizable inner radius ratio
89
- - Center total display for donut charts
90
- - Enhanced visual hierarchy
91
-
92
- **Props:**
93
-
94
- - All PieChart props except `innerRadius`
95
- - `innerRadiusRatio`: Inner radius as percentage of outer radius (default: 0.6)
96
-
97
- ## 🎨 Theme Integration
98
-
99
- All charts use the `useThemeConfig` hook for consistent theming:
100
-
101
- ```typescript
102
- // Text colors
103
- theme.colors.foreground; // Primary text
104
- theme.colors.mutedForeground; // Secondary text
105
-
106
- // Background colors
107
- theme.colors.background; // Chart background
108
- theme.colors.card; // Card backgrounds
109
- theme.colors.muted; // Legend item backgrounds
110
-
111
- // Border colors
112
- theme.colors.outline; // Grid lines and borders
113
- ```
114
-
115
- ## 🔧 Usage Examples
116
-
117
- ### Bar Chart with Horizontal Scrolling
118
-
119
- ```tsx
120
- <BarChart
121
- data={salesData}
122
- height={350}
123
- showValues={true}
124
- showGrid={true}
125
- showLabels={true}
126
- valueFormatter={(value) => `$${value.toLocaleString()}`}
127
- />
128
- ```
129
-
130
- ### Animated Line Chart
131
-
132
- ```tsx
133
- <LineChart
134
- data={monthlyActiveUsers}
135
- labels={monthLabels}
136
- height={250}
137
- curved={true}
138
- showArea={true}
139
- showDots={true}
140
- valueFormatter={(value) => value.toLocaleString()}
141
- />
142
- ```
143
-
144
- ### Donut Chart with Custom Styling
145
-
146
- ```tsx
147
- <DonutChart
148
- data={expensesData}
149
- height={450}
150
- radius={130}
151
- innerRadiusRatio={0.65}
152
- showLegend={true}
153
- valueFormatter={(value) => `$${value}k`}
154
- />
155
- ```
156
-
157
- ## 🎭 Animation Details
158
-
159
- - **Bar Charts**: Staggered bar growth with 100ms delays between bars
160
- - **Line Charts**: Stroke-dash animation followed by area fill and dot appearance
161
- - **Pie Charts**: Radial growth animation with 150ms delays between slices
162
- - **Legends**: Slide-in animations with opacity transitions
163
-
164
- ## 📱 Responsive Design
165
-
166
- Charts automatically adapt to different screen sizes:
167
-
168
- - Bar charts enable horizontal scrolling when content exceeds screen width
169
- - Minimum bar widths ensure readability on all devices
170
- - Dynamic font sizing based on chart dimensions
171
- - Proper padding and margins for touch interactions
172
-
173
- ## 🔄 Performance Optimizations
174
-
175
- - React Native Reanimated for smooth 60fps animations
176
- - Efficient re-renders using `useCallback` and `useMemo`
177
- - SVG path caching for complex shapes
178
- - Minimal re-animations on data updates
179
-
180
- ## 🎯 Accessibility
181
-
182
- - High contrast color schemes for both light and dark themes
183
- - Proper accessibility labels and roles
184
- - Touch target sizes meet accessibility guidelines
185
- - Screen reader friendly value announcements