vibefast-cli 0.7.0 → 0.7.2

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 (907) 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 +6 -3
  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 +65 -10
  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/recipe.json +2 -2
  36. package/recipes/audio-recorder@latest.zip +0 -0
  37. package/recipes/charts/apps/native/src/app/charts/index.tsx +3 -3
  38. package/recipes/charts/apps/native/src/features/charts/app/preview.tsx +3 -3
  39. package/recipes/charts/apps/native/src/features/charts/components/area-chart.tsx +3 -3
  40. package/recipes/charts/apps/native/src/features/charts/components/bar-chart.tsx +3 -3
  41. package/recipes/charts/apps/native/src/features/charts/components/candlestick-chart.tsx +3 -3
  42. package/recipes/charts/apps/native/src/features/charts/components/chart-card.tsx +3 -3
  43. package/recipes/charts/apps/native/src/features/charts/components/column-chart.tsx +3 -3
  44. package/recipes/charts/apps/native/src/features/charts/components/doughnut-chart.tsx +32 -21
  45. package/recipes/charts/apps/native/src/features/charts/components/index.ts +3 -3
  46. package/recipes/charts/apps/native/src/features/charts/components/line-chart.tsx +3 -3
  47. package/recipes/charts/apps/native/src/features/charts/components/radar-chart.tsx +3 -3
  48. package/recipes/charts/apps/native/src/features/charts/components/radial-bar-chart.tsx +3 -3
  49. package/recipes/charts/apps/native/src/features/charts/components/stacked-area-chart.tsx +3 -3
  50. package/recipes/charts/apps/native/src/features/charts/components/stacked-bar-chart.tsx +3 -3
  51. package/recipes/charts/apps/native/src/features/charts/data/mock-data.ts +3 -3
  52. package/recipes/charts/apps/native/src/features/charts/types/index.ts +3 -3
  53. package/recipes/charts/recipe.json +2 -2
  54. package/recipes/charts@latest.zip +0 -0
  55. package/recipes/chatbot/apps/native/src/app/chatbot/index.tsx +1 -1
  56. package/recipes/chatbot/apps/native/src/features/chatbot/app/index.tsx +1 -1
  57. package/recipes/chatbot/apps/native/src/features/chatbot/components/chat-header-buttons.tsx +1 -1
  58. package/recipes/chatbot/apps/native/src/features/chatbot/components/chat-input-bar.tsx +1 -1
  59. package/recipes/chatbot/apps/native/src/features/chatbot/components/chat-markdown.tsx +1 -1
  60. package/recipes/chatbot/apps/native/src/features/chatbot/components/chat-message-bubble.tsx +1 -1
  61. package/recipes/chatbot/apps/native/src/features/chatbot/components/chat-settings-modal.tsx +1 -1
  62. package/recipes/chatbot/apps/native/src/features/chatbot/components/image-preview-list.tsx +1 -1
  63. package/recipes/chatbot/apps/native/src/features/chatbot/components/markdown/code-block.tsx +1 -1
  64. package/recipes/chatbot/apps/native/src/features/chatbot/components/markdown/index.ts +1 -1
  65. package/recipes/chatbot/apps/native/src/features/chatbot/components/markdown/table-renderer.tsx +1 -1
  66. package/recipes/chatbot/apps/native/src/features/chatbot/components/message-error-boundary.tsx +1 -1
  67. package/recipes/chatbot/apps/native/src/features/chatbot/components/message-list.tsx +2 -2
  68. package/recipes/chatbot/apps/native/src/features/chatbot/components/model-selector.tsx +1 -1
  69. package/recipes/chatbot/apps/native/src/features/chatbot/components/report-content-modal.tsx +1 -1
  70. package/recipes/chatbot/apps/native/src/features/chatbot/components/suggested-messages.tsx +1 -1
  71. package/recipes/chatbot/apps/native/src/features/chatbot/constants/models.ts +1 -1
  72. package/recipes/chatbot/apps/native/src/features/chatbot/constants/report-reasons.ts +1 -1
  73. package/recipes/chatbot/apps/native/src/features/chatbot/hooks/use-attachment-cache.ts +1 -1
  74. package/recipes/chatbot/apps/native/src/features/chatbot/hooks/use-chat-config.ts +1 -1
  75. package/recipes/chatbot/apps/native/src/features/chatbot/hooks/use-chat-handlers.ts +1 -1
  76. package/recipes/chatbot/apps/native/src/features/chatbot/hooks/use-chatbot-settings.ts +1 -1
  77. package/recipes/chatbot/apps/native/src/features/chatbot/hooks/use-conversation.ts +1 -1
  78. package/recipes/chatbot/apps/native/src/features/chatbot/hooks/use-image-picker.ts +1 -1
  79. package/recipes/chatbot/apps/native/src/features/chatbot/hooks/use-keyboard-coordinator.ts +1 -1
  80. package/recipes/chatbot/apps/native/src/features/chatbot/hooks/use-smart-scroll-manager.ts +7 -1
  81. package/recipes/chatbot/apps/native/src/features/chatbot/models/index.ts +1 -1
  82. package/recipes/chatbot/apps/native/src/features/chatbot/models/models.ts +1 -1
  83. package/recipes/chatbot/apps/native/src/features/chatbot/models/providers.ts +1 -1
  84. package/recipes/chatbot/apps/native/src/features/chatbot/models/types.ts +1 -1
  85. package/recipes/chatbot/apps/native/src/features/chatbot/services/file-uploader.ts +1 -1
  86. package/recipes/chatbot/apps/native/src/features/chatbot/services/message-handler-service.ts +1 -1
  87. package/recipes/chatbot/apps/native/src/features/chatbot/types/index.ts +1 -1
  88. package/recipes/chatbot/apps/native/src/features/chatbot/utils/chat-telemetry.ts +1 -1
  89. package/recipes/chatbot/recipe.json +22 -6
  90. package/recipes/chatbot@latest.zip +0 -0
  91. package/recipes/glowing-button@latest.zip +0 -0
  92. package/recipes/image-analysis/recipe.json +38 -21
  93. package/recipes/image-analysis@latest.zip +0 -0
  94. package/recipes/image-generator/apps/native/src/features/image-generator/app/_layout.tsx +1 -0
  95. package/recipes/image-generator/apps/native/src/features/image-generator/app/gallery.tsx +1 -1
  96. package/recipes/image-generator/apps/native/src/features/image-generator/components/gallery-image.tsx +2 -3
  97. package/recipes/image-generator/recipe.json +8 -6
  98. package/recipes/image-generator@latest.zip +0 -0
  99. package/recipes/ios-widget/recipe.json +24 -0
  100. package/recipes/ios-widget@latest.zip +0 -0
  101. package/recipes/number-stepper/recipe.json +15 -0
  102. package/recipes/number-stepper@latest.zip +0 -0
  103. package/recipes/payments/recipe.json +30 -0
  104. package/recipes/payments@latest.zip +0 -0
  105. package/recipes/posthog.json +2 -1
  106. package/recipes/progress-circle/recipe.json +15 -0
  107. package/recipes/progress-circle@latest.zip +0 -0
  108. package/recipes/quiz/recipe.json +2 -2
  109. package/recipes/quiz@latest.zip +0 -0
  110. package/recipes/sentry.json +2 -1
  111. package/recipes/swipe-slider/recipe.json +15 -0
  112. package/recipes/swipe-slider@latest.zip +0 -0
  113. package/recipes/{0 → timeline}/recipe.json +3 -6
  114. package/recipes/timeline@latest.zip +0 -0
  115. package/recipes/tracker-app/recipe.json +2 -2
  116. package/recipes/tracker-app@latest.zip +0 -0
  117. package/recipes/upload-all.sh +14 -3
  118. package/recipes/voice-bot/recipe.json +16 -3
  119. package/recipes/voice-bot@latest.zip +0 -0
  120. package/recipes/wake-word/apps/native/src/app/(root)/(protected)/test-wake-word.tsx +0 -2
  121. package/recipes/wake-word/recipe.json +2 -2
  122. package/recipes/wake-word@latest.zip +0 -0
  123. package/src/__tests__/recipes.test.ts +5 -5
  124. package/src/commands/add.ts +230 -54
  125. package/src/commands/init.ts +118 -102
  126. package/src/commands/remove.ts +1 -1
  127. package/src/core/__tests__/fsx.test.ts +6 -3
  128. package/src/core/__tests__/prompt.test.ts +12 -12
  129. package/src/core/__tests__/validate.test.ts +4 -3
  130. package/src/core/auth.ts +8 -0
  131. package/src/core/codemod.ts +66 -0
  132. package/src/core/errors.ts +1 -1
  133. package/src/core/fsx.ts +1 -1
  134. package/src/core/recipes.ts +67 -11
  135. package/2/.claude/agents/architect.md +0 -74
  136. package/2/.claude/agents/convex-reviewer.md +0 -267
  137. package/2/.claude/agents/debug-detective.md +0 -62
  138. package/2/.claude/agents/learner.md +0 -64
  139. package/2/.claude/agents/perf-optimizer.md +0 -71
  140. package/2/.claude/agents/security-researcher.md +0 -42
  141. package/2/.claude/agents/tech-researcher.md +0 -46
  142. package/2/.claude/agents/ux-designer.md +0 -45
  143. package/2/.claude/commands/create-app-design.md +0 -279
  144. package/2/.claude/commands/create-prd-interactive.md +0 -113
  145. package/2/.claude/commands/create-prd.md +0 -111
  146. package/2/.claude/commands/create-tech-stack.md +0 -345
  147. package/2/.claude/commands/update-app-design.md +0 -298
  148. package/2/.claude/commands/update-project-structure.md +0 -14
  149. package/2/.claude/commands/update-tech-stack.md +0 -325
  150. package/2/.claude/docs/CONVEX_FEATURES_PLAN.md +0 -249
  151. package/2/.claude/docs/app-design-document.md +0 -0
  152. package/2/.claude/docs/project-status.md +0 -25
  153. package/2/.claude/docs/project-structure.md +0 -7
  154. package/2/.claude/docs/tech-stack.md +0 -157
  155. package/2/.claude/scripts/tree.sh +0 -70
  156. package/2/.claude/settings.json +0 -30
  157. package/2/.cursor/commands/code-review-high.md +0 -190
  158. package/2/.cursorignore +0 -3
  159. package/2/.github/ISSUE_TEMPLATE.md +0 -13
  160. package/2/.github/PULL_REQUEST_TEMPLATE.md +0 -23
  161. package/2/.github/actions/eas-build/action.yml +0 -85
  162. package/2/.github/actions/setup-jdk-generate-apk/action.yml +0 -48
  163. package/2/.github/actions/setup-node-pnpm-install/action.yml +0 -29
  164. package/2/.github/scripts/expo-doctor.sh +0 -26
  165. package/2/.github/workflows/compress-images.yml +0 -48
  166. package/2/.github/workflows/e2e-android-eas-build.yml +0 -111
  167. package/2/.github/workflows/e2e-android-maestro.yml +0 -52
  168. package/2/.github/workflows/e2e-android.yml +0 -119
  169. package/2/.github/workflows/eas-build-prod.yml +0 -43
  170. package/2/.github/workflows/eas-build-qa.yml +0 -47
  171. package/2/.github/workflows/expo-doctor.yml +0 -61
  172. package/2/.github/workflows/lint-ts.yml +0 -49
  173. package/2/.github/workflows/new-app-version.yml +0 -65
  174. package/2/.github/workflows/new-github-release.yml +0 -34
  175. package/2/.github/workflows/stale.yml +0 -24
  176. package/2/.github/workflows/test.yml +0 -50
  177. package/2/.github/workflows/type-check.yml +0 -54
  178. package/2/.husky/commit-msg +0 -1
  179. package/2/.husky/common.sh +0 -8
  180. package/2/.husky/post-merge +0 -18
  181. package/2/.husky/pre-commit +0 -24
  182. package/2/.prettierignore +0 -14
  183. package/2/.prettierrc.json +0 -10
  184. package/2/.vibefast/README.md +0 -59
  185. package/2/.vibefast/config.json +0 -4
  186. package/2/.vibefast/journal.json +0 -234
  187. package/2/.vibefast/starter.json +0 -5
  188. package/2/AGENTS.md +0 -48
  189. package/2/LICENSE +0 -21
  190. package/2/README.md +0 -127
  191. package/2/apps/native/__mocks__/bottom-sheet.js +0 -6
  192. package/2/apps/native/__mocks__/expo-router.js +0 -16
  193. package/2/apps/native/__mocks__/react-native-gesture-handler.ts +0 -17
  194. package/2/apps/native/app-env.d.ts +0 -2
  195. package/2/apps/native/app.config.ts +0 -167
  196. package/2/apps/native/assets/adaptive-icon.png +0 -0
  197. package/2/apps/native/assets/favicon.png +0 -0
  198. package/2/apps/native/assets/fonts/Inter.ttf +0 -0
  199. package/2/apps/native/assets/fonts/SF-Pro-Display-Bold.otf +0 -0
  200. package/2/apps/native/assets/fonts/SF-Pro-Display-Medium.otf +0 -0
  201. package/2/apps/native/assets/fonts/SF-Pro-Display-Regular.otf +0 -0
  202. package/2/apps/native/assets/fonts/SF-Pro-Display-Semibold.otf +0 -0
  203. package/2/apps/native/assets/fonts/SpaceMono-Regular.ttf +0 -0
  204. package/2/apps/native/assets/icon.png +0 -0
  205. package/2/apps/native/assets/images/cover-image.png +0 -0
  206. package/2/apps/native/assets/lottie-animations/onboarding-1.json +0 -6504
  207. package/2/apps/native/assets/lottie-animations/onboarding-2.json +0 -1993
  208. package/2/apps/native/assets/lottie-animations/onboarding-3.json +0 -50159
  209. package/2/apps/native/assets/lottie-animations/onboarding-4.json +0 -735
  210. package/2/apps/native/assets/lottie-animations/onboarding-6.json +0 -2167
  211. package/2/apps/native/assets/splash-icon.png +0 -0
  212. package/2/apps/native/babel.config.js +0 -39
  213. package/2/apps/native/eas.json +0 -75
  214. package/2/apps/native/env.js +0 -196
  215. package/2/apps/native/global.css +0 -51
  216. package/2/apps/native/index.ts +0 -5
  217. package/2/apps/native/jest-setup.ts +0 -7
  218. package/2/apps/native/jest.config.js +0 -72
  219. package/2/apps/native/metro.config.js +0 -85
  220. package/2/apps/native/nativewind-env.d.ts +0 -1
  221. package/2/apps/native/package.json +0 -232
  222. package/2/apps/native/scripts/DRY_RUN_REPORT.md +0 -0
  223. package/2/apps/native/scripts/QUICK_START.md +0 -76
  224. package/2/apps/native/scripts/README.md +0 -187
  225. package/2/apps/native/scripts/convex-setup.js +0 -48
  226. package/2/apps/native/scripts/genrate-apk-and-install +0 -39
  227. package/2/apps/native/scripts/i18next-syntax-validation.js +0 -23
  228. package/2/apps/native/scripts/starter-setup.mjs +0 -246
  229. package/2/apps/native/src/api-client/auth.ts +0 -68
  230. package/2/apps/native/src/api-client/chatbot.ts +0 -83
  231. package/2/apps/native/src/api-client/client.ts +0 -4
  232. package/2/apps/native/src/api-client/image-generator.ts +0 -34
  233. package/2/apps/native/src/api-client/index.ts +0 -27
  234. package/2/apps/native/src/api-client/payments.ts +0 -44
  235. package/2/apps/native/src/api-client/reporting.ts +0 -29
  236. package/2/apps/native/src/api-client/shared.ts +0 -43
  237. package/2/apps/native/src/app/(root)/(protected)/(tabs)/_layout.tsx +0 -166
  238. package/2/apps/native/src/app/(root)/(protected)/(tabs)/index.tsx +0 -174
  239. package/2/apps/native/src/app/(root)/(protected)/(tabs)/profile.tsx +0 -320
  240. package/2/apps/native/src/app/(root)/(protected)/(tabs)/settings.tsx +0 -344
  241. package/2/apps/native/src/app/(root)/(protected)/(tabs)/style/_layout.tsx +0 -198
  242. package/2/apps/native/src/app/(root)/(protected)/(tabs)/style/accordion.tsx +0 -60
  243. package/2/apps/native/src/app/(root)/(protected)/(tabs)/style/advanced.tsx +0 -24
  244. package/2/apps/native/src/app/(root)/(protected)/(tabs)/style/avatar.tsx +0 -154
  245. package/2/apps/native/src/app/(root)/(protected)/(tabs)/style/badge-chips-toggle.tsx +0 -81
  246. package/2/apps/native/src/app/(root)/(protected)/(tabs)/style/buttons.tsx +0 -24
  247. package/2/apps/native/src/app/(root)/(protected)/(tabs)/style/charts.tsx +0 -3
  248. package/2/apps/native/src/app/(root)/(protected)/(tabs)/style/date-picker.tsx +0 -120
  249. package/2/apps/native/src/app/(root)/(protected)/(tabs)/style/file-picker.tsx +0 -133
  250. package/2/apps/native/src/app/(root)/(protected)/(tabs)/style/gallery-video.tsx +0 -119
  251. package/2/apps/native/src/app/(root)/(protected)/(tabs)/style/index.tsx +0 -69
  252. package/2/apps/native/src/app/(root)/(protected)/(tabs)/style/inputs-stepper.tsx +0 -78
  253. package/2/apps/native/src/app/(root)/(protected)/(tabs)/style/picker-dropdown.tsx +0 -56
  254. package/2/apps/native/src/app/(root)/(protected)/(tabs)/style/popover-bottomsheet.tsx +0 -229
  255. package/2/apps/native/src/app/(root)/(protected)/(tabs)/style/progress.tsx +0 -38
  256. package/2/apps/native/src/app/(root)/(protected)/(tabs)/style/searchbar.tsx +0 -70
  257. package/2/apps/native/src/app/(root)/(protected)/(tabs)/style/sliders.tsx +0 -93
  258. package/2/apps/native/src/app/(root)/(protected)/(tabs)/style/spinner.tsx +0 -80
  259. package/2/apps/native/src/app/(root)/(protected)/(tabs)/style/switch.tsx +0 -47
  260. package/2/apps/native/src/app/(root)/(protected)/(tabs)/style/table.tsx +0 -352
  261. package/2/apps/native/src/app/(root)/(protected)/(tabs)/style/tabs-timeline.tsx +0 -122
  262. package/2/apps/native/src/app/(root)/(protected)/_layout.tsx +0 -143
  263. package/2/apps/native/src/app/(root)/(protected)/audio-recorder/index.tsx +0 -5
  264. package/2/apps/native/src/app/(root)/(protected)/charts/index.tsx +0 -6
  265. package/2/apps/native/src/app/(root)/(protected)/chatbot/index.tsx +0 -2
  266. package/2/apps/native/src/app/(root)/(protected)/image-generator/gallery.tsx +0 -3
  267. package/2/apps/native/src/app/(root)/(protected)/image-generator/index.tsx +0 -3
  268. package/2/apps/native/src/app/(root)/(protected)/paywall/index.tsx +0 -74
  269. package/2/apps/native/src/app/(root)/(protected)/paywall/local.tsx +0 -25
  270. package/2/apps/native/src/app/(root)/(protected)/paywall/remote.tsx +0 -23
  271. package/2/apps/native/src/app/(root)/(protected)/quick-actions-demo/index.tsx +0 -32
  272. package/2/apps/native/src/app/(root)/(protected)/quiz/index.tsx +0 -47
  273. package/2/apps/native/src/app/(root)/(protected)/test-wake-word.tsx +0 -214
  274. package/2/apps/native/src/app/(root)/(protected)/tracker-app/index.tsx +0 -1
  275. package/2/apps/native/src/app/(root)/(protected)/voice-bot/index.tsx +0 -27
  276. package/2/apps/native/src/app/(root)/(public)/(auth)/_layout.tsx +0 -44
  277. package/2/apps/native/src/app/(root)/(public)/(auth)/forgot-password.tsx +0 -185
  278. package/2/apps/native/src/app/(root)/(public)/(auth)/login.tsx +0 -219
  279. package/2/apps/native/src/app/(root)/(public)/(auth)/otp-verification.tsx +0 -369
  280. package/2/apps/native/src/app/(root)/(public)/(auth)/reset-password.tsx +0 -247
  281. package/2/apps/native/src/app/(root)/(public)/(auth)/signup.tsx +0 -207
  282. package/2/apps/native/src/app/(root)/(public)/_layout.tsx +0 -60
  283. package/2/apps/native/src/app/(root)/(public)/onboarding/demo-one.tsx +0 -5
  284. package/2/apps/native/src/app/(root)/(public)/onboarding/demo-two.tsx +0 -52
  285. package/2/apps/native/src/app/(root)/(public)/onboarding/index.tsx +0 -82
  286. package/2/apps/native/src/app/(root)/_layout.tsx +0 -30
  287. package/2/apps/native/src/app/+html.tsx +0 -46
  288. package/2/apps/native/src/app/[...messing].tsx +0 -24
  289. package/2/apps/native/src/app/_layout.tsx +0 -56
  290. package/2/apps/native/src/app/tsconfig.json +0 -3
  291. package/2/apps/native/src/components/advanced-ui/buttons/glowing-button.tsx +0 -366
  292. package/2/apps/native/src/components/analytics/navigation-tracker.tsx +0 -10
  293. package/2/apps/native/src/components/demo/advanced-ui-components.tsx +0 -46
  294. package/2/apps/native/src/components/demo/buttons-demo.tsx +0 -56
  295. package/2/apps/native/src/components/demo/colors-demo.tsx +0 -52
  296. package/2/apps/native/src/components/demo/dropdown-picker-demo.tsx +0 -274
  297. package/2/apps/native/src/components/demo/inputs-demo.tsx +0 -99
  298. package/2/apps/native/src/components/demo/notification-demo.tsx +0 -434
  299. package/2/apps/native/src/components/demo/title-demo.tsx +0 -16
  300. package/2/apps/native/src/components/demo/toast-demo.tsx +0 -81
  301. package/2/apps/native/src/components/demo/typography-demo.tsx +0 -28
  302. package/2/apps/native/src/components/performance/render-performance-monitor.tsx +0 -36
  303. package/2/apps/native/src/components/ui/accordion.tsx +0 -138
  304. package/2/apps/native/src/components/ui/avatar.tsx +0 -66
  305. package/2/apps/native/src/components/ui/badge.tsx +0 -68
  306. package/2/apps/native/src/components/ui/bottom-sheet.tsx +0 -61
  307. package/2/apps/native/src/components/ui/colors.js +0 -290
  308. package/2/apps/native/src/components/ui/core/button.tsx +0 -317
  309. package/2/apps/native/src/components/ui/core/card.tsx +0 -40
  310. package/2/apps/native/src/components/ui/core/checkbox.tsx +0 -264
  311. package/2/apps/native/src/components/ui/core/feature-button.tsx +0 -162
  312. package/2/apps/native/src/components/ui/core/focus-aware-status-bar.tsx +0 -21
  313. package/2/apps/native/src/components/ui/core/image.tsx +0 -30
  314. package/2/apps/native/src/components/ui/core/inputs/floating-text-input.tsx +0 -369
  315. package/2/apps/native/src/components/ui/core/inputs/input-otp.tsx +0 -304
  316. package/2/apps/native/src/components/ui/core/inputs/input.tsx +0 -373
  317. package/2/apps/native/src/components/ui/core/list.tsx +0 -60
  318. package/2/apps/native/src/components/ui/core/navigation/animated-header.tsx +0 -87
  319. package/2/apps/native/src/components/ui/core/navigation/screen-footer.tsx +0 -67
  320. package/2/apps/native/src/components/ui/core/overlays/dropdown.tsx +0 -290
  321. package/2/apps/native/src/components/ui/core/overlays/full-screen-loading.tsx +0 -15
  322. package/2/apps/native/src/components/ui/core/overlays/modal-keyboard-aware-scroll-view.tsx +0 -46
  323. package/2/apps/native/src/components/ui/core/overlays/modal.tsx +0 -247
  324. package/2/apps/native/src/components/ui/core/pagination-dots.tsx +0 -231
  325. package/2/apps/native/src/components/ui/core/pressable.tsx +0 -48
  326. package/2/apps/native/src/components/ui/core/progress-bar.tsx +0 -47
  327. package/2/apps/native/src/components/ui/core/progress.tsx +0 -149
  328. package/2/apps/native/src/components/ui/core/select.tsx +0 -261
  329. package/2/apps/native/src/components/ui/core/spinner.tsx +0 -387
  330. package/2/apps/native/src/components/ui/core/text.tsx +0 -45
  331. package/2/apps/native/src/components/ui/core/toast.tsx +0 -190
  332. package/2/apps/native/src/components/ui/custom-switch.tsx +0 -90
  333. package/2/apps/native/src/components/ui/date-time-picker.tsx +0 -268
  334. package/2/apps/native/src/components/ui/debug.ts +0 -2
  335. package/2/apps/native/src/components/ui/extras/debug-credit-tester.tsx +0 -107
  336. package/2/apps/native/src/components/ui/extras/debug-mmkv-state.tsx +0 -53
  337. package/2/apps/native/src/components/ui/extras/handle-error.ts +0 -191
  338. package/2/apps/native/src/components/ui/extras/hello-wave.tsx +0 -70
  339. package/2/apps/native/src/components/ui/extras/icon.tsx +0 -36
  340. package/2/apps/native/src/components/ui/extras/network-connectivity-wrapper.tsx +0 -36
  341. package/2/apps/native/src/components/ui/extras/offline-indicator.tsx +0 -55
  342. package/2/apps/native/src/components/ui/extras/social-login-buttons.tsx +0 -296
  343. package/2/apps/native/src/components/ui/file-picker.tsx +0 -177
  344. package/2/apps/native/src/components/ui/gallery.tsx +0 -79
  345. package/2/apps/native/src/components/ui/icons/apple.tsx +0 -19
  346. package/2/apps/native/src/components/ui/icons/arrow-right.tsx +0 -26
  347. package/2/apps/native/src/components/ui/icons/camera.tsx +0 -26
  348. package/2/apps/native/src/components/ui/icons/caret-down.tsx +0 -20
  349. package/2/apps/native/src/components/ui/icons/chevron-up.tsx +0 -21
  350. package/2/apps/native/src/components/ui/icons/claude.tsx +0 -15
  351. package/2/apps/native/src/components/ui/icons/copy.tsx +0 -27
  352. package/2/apps/native/src/components/ui/icons/deepseek.tsx +0 -15
  353. package/2/apps/native/src/components/ui/icons/download.tsx +0 -32
  354. package/2/apps/native/src/components/ui/icons/feed.tsx +0 -12
  355. package/2/apps/native/src/components/ui/icons/gemini.tsx +0 -15
  356. package/2/apps/native/src/components/ui/icons/github.tsx +0 -30
  357. package/2/apps/native/src/components/ui/icons/google.tsx +0 -24
  358. package/2/apps/native/src/components/ui/icons/groq.tsx +0 -15
  359. package/2/apps/native/src/components/ui/icons/home.tsx +0 -19
  360. package/2/apps/native/src/components/ui/icons/index.tsx +0 -26
  361. package/2/apps/native/src/components/ui/icons/language.tsx +0 -33
  362. package/2/apps/native/src/components/ui/icons/llama.tsx +0 -15
  363. package/2/apps/native/src/components/ui/icons/microphone.tsx +0 -20
  364. package/2/apps/native/src/components/ui/icons/mistral.tsx +0 -22
  365. package/2/apps/native/src/components/ui/icons/nutrition.tsx +0 -15
  366. package/2/apps/native/src/components/ui/icons/openai.tsx +0 -15
  367. package/2/apps/native/src/components/ui/icons/perplexity.tsx +0 -22
  368. package/2/apps/native/src/components/ui/icons/qwen.tsx +0 -15
  369. package/2/apps/native/src/components/ui/icons/rate.tsx +0 -24
  370. package/2/apps/native/src/components/ui/icons/report.tsx +0 -20
  371. package/2/apps/native/src/components/ui/icons/send-horizontal.tsx +0 -26
  372. package/2/apps/native/src/components/ui/icons/settings.tsx +0 -12
  373. package/2/apps/native/src/components/ui/icons/share.tsx +0 -16
  374. package/2/apps/native/src/components/ui/icons/square.tsx +0 -9
  375. package/2/apps/native/src/components/ui/icons/style.tsx +0 -22
  376. package/2/apps/native/src/components/ui/icons/support.tsx +0 -27
  377. package/2/apps/native/src/components/ui/icons/trash2.tsx +0 -42
  378. package/2/apps/native/src/components/ui/icons/user.tsx +0 -12
  379. package/2/apps/native/src/components/ui/icons/website.tsx +0 -28
  380. package/2/apps/native/src/components/ui/icons/wifi-off.tsx +0 -17
  381. package/2/apps/native/src/components/ui/index.tsx +0 -14
  382. package/2/apps/native/src/components/ui/nav-item.tsx +0 -42
  383. package/2/apps/native/src/components/ui/patterns/index.ts +0 -16
  384. package/2/apps/native/src/components/ui/picker.tsx +0 -244
  385. package/2/apps/native/src/components/ui/popover.tsx +0 -313
  386. package/2/apps/native/src/components/ui/primitives/index.ts +0 -38
  387. package/2/apps/native/src/components/ui/radio-group.tsx +0 -47
  388. package/2/apps/native/src/components/ui/searchbar.tsx +0 -118
  389. package/2/apps/native/src/components/ui/sheet.tsx +0 -93
  390. package/2/apps/native/src/components/ui/switch.tsx +0 -37
  391. package/2/apps/native/src/components/ui/table.tsx +0 -296
  392. package/2/apps/native/src/components/ui/tabs.tsx +0 -115
  393. package/2/apps/native/src/components/ui/toggle.tsx +0 -50
  394. package/2/apps/native/src/components/ui/utils.tsx +0 -34
  395. package/2/apps/native/src/components/ui/video.tsx +0 -39
  396. package/2/apps/native/src/core/analytics/analytics-service.ts +0 -94
  397. package/2/apps/native/src/core/analytics/index.ts +0 -2
  398. package/2/apps/native/src/core/analytics/posthog-analytics-adapter.ts +0 -192
  399. package/2/apps/native/src/core/auth/auth-service.ts +0 -33
  400. package/2/apps/native/src/core/auth/index.ts +0 -1
  401. package/2/apps/native/src/core/cache/__tests__/cache-service.test.ts +0 -599
  402. package/2/apps/native/src/core/cache/cache-service.ts +0 -89
  403. package/2/apps/native/src/core/cache/index.ts +0 -45
  404. package/2/apps/native/src/core/config/config.service.ts +0 -153
  405. package/2/apps/native/src/core/config/index.ts +0 -2
  406. package/2/apps/native/src/core/config/telemetry.ts +0 -38
  407. package/2/apps/native/src/core/local-notifications/local-notification-manager.ts +0 -409
  408. package/2/apps/native/src/core/logging/custom-transports.ts +0 -126
  409. package/2/apps/native/src/core/logging/index.ts +0 -1
  410. package/2/apps/native/src/core/logging/logger.ts +0 -182
  411. package/2/apps/native/src/core/navigation/deep-link-handler.ts +0 -295
  412. package/2/apps/native/src/core/navigation/navigation-types.ts +0 -53
  413. package/2/apps/native/src/core/payments/index.ts +0 -1
  414. package/2/apps/native/src/core/payments/payment-service.ts +0 -32
  415. package/2/apps/native/src/core/quick-actions/index.ts +0 -2
  416. package/2/apps/native/src/core/quick-actions/quick-actions-adapter.ts +0 -54
  417. package/2/apps/native/src/core/quick-actions/types.ts +0 -29
  418. package/2/apps/native/src/core/storage/index.ts +0 -1
  419. package/2/apps/native/src/core/storage/mmkv.ts +0 -62
  420. package/2/apps/native/src/core/storage/notification-storage.ts +0 -312
  421. package/2/apps/native/src/core/types/common.ts +0 -0
  422. package/2/apps/native/src/core/utils/convex-http-api.ts +0 -30
  423. package/2/apps/native/src/features/audio-recorder/components/audio-player.tsx +0 -301
  424. package/2/apps/native/src/features/audio-recorder/components/audio-recorder.tsx +0 -373
  425. package/2/apps/native/src/features/audio-recorder/components/audio-waveform.tsx +0 -270
  426. package/2/apps/native/src/features/audio-recorder/components/index.ts +0 -4
  427. package/2/apps/native/src/features/audio-recorder/components/recording-list.tsx +0 -89
  428. package/2/apps/native/src/features/audio-recorder/demo/audio-player-demo.tsx +0 -66
  429. package/2/apps/native/src/features/audio-recorder/demo/audio-recorder-cloud.tsx +0 -68
  430. package/2/apps/native/src/features/audio-recorder/demo/audio-recorder-interview.tsx +0 -102
  431. package/2/apps/native/src/features/audio-recorder/demo/basic.tsx +0 -27
  432. package/2/apps/native/src/features/audio-recorder/demo/index.ts +0 -5
  433. package/2/apps/native/src/features/audio-recorder/demo/with-recording-list-demo.tsx +0 -82
  434. package/2/apps/native/src/features/authentication/components/auth-watcher.tsx +0 -115
  435. package/2/apps/native/src/features/authentication/components/login-form.tsx +0 -85
  436. package/2/apps/native/src/features/authentication/services/__tests__/convex-auth.adapter.test.ts +0 -399
  437. package/2/apps/native/src/features/authentication/services/convex-auth.adapter.ts +0 -497
  438. package/2/apps/native/src/features/authentication/services/index.ts +0 -2
  439. package/2/apps/native/src/features/charts/README.md +0 -185
  440. package/2/apps/native/src/features/charts/app/preview.tsx +0 -226
  441. package/2/apps/native/src/features/charts/components/area-chart.tsx +0 -43
  442. package/2/apps/native/src/features/charts/components/bar-chart.tsx +0 -146
  443. package/2/apps/native/src/features/charts/components/candlestick-chart.tsx +0 -199
  444. package/2/apps/native/src/features/charts/components/chart-card.tsx +0 -68
  445. package/2/apps/native/src/features/charts/components/column-chart.tsx +0 -146
  446. package/2/apps/native/src/features/charts/components/doughnut-chart.tsx +0 -260
  447. package/2/apps/native/src/features/charts/components/index.ts +0 -13
  448. package/2/apps/native/src/features/charts/components/line-chart.tsx +0 -311
  449. package/2/apps/native/src/features/charts/components/radar-chart.tsx +0 -183
  450. package/2/apps/native/src/features/charts/components/radial-bar-chart.tsx +0 -191
  451. package/2/apps/native/src/features/charts/components/stacked-area-chart.tsx +0 -268
  452. package/2/apps/native/src/features/charts/components/stacked-bar-chart.tsx +0 -325
  453. package/2/apps/native/src/features/charts/data/mock-data.ts +0 -186
  454. package/2/apps/native/src/features/charts/types/index.ts +0 -69
  455. package/2/apps/native/src/features/chatbot/app/index.tsx +0 -303
  456. package/2/apps/native/src/features/chatbot/components/chat-header-buttons.tsx +0 -60
  457. package/2/apps/native/src/features/chatbot/components/chat-input-bar.tsx +0 -470
  458. package/2/apps/native/src/features/chatbot/components/chat-markdown.tsx +0 -576
  459. package/2/apps/native/src/features/chatbot/components/chat-message-bubble.tsx +0 -247
  460. package/2/apps/native/src/features/chatbot/components/chat-settings-modal.tsx +0 -162
  461. package/2/apps/native/src/features/chatbot/components/image-preview-list.tsx +0 -116
  462. package/2/apps/native/src/features/chatbot/components/markdown/code-block.tsx +0 -166
  463. package/2/apps/native/src/features/chatbot/components/markdown/index.ts +0 -11
  464. package/2/apps/native/src/features/chatbot/components/markdown/table-renderer.tsx +0 -130
  465. package/2/apps/native/src/features/chatbot/components/message-error-boundary.tsx +0 -79
  466. package/2/apps/native/src/features/chatbot/components/message-list.tsx +0 -174
  467. package/2/apps/native/src/features/chatbot/components/model-selector.tsx +0 -284
  468. package/2/apps/native/src/features/chatbot/components/report-content-modal.tsx +0 -189
  469. package/2/apps/native/src/features/chatbot/components/suggested-messages.tsx +0 -68
  470. package/2/apps/native/src/features/chatbot/constants/models.ts +0 -21
  471. package/2/apps/native/src/features/chatbot/constants/report-reasons.ts +0 -10
  472. package/2/apps/native/src/features/chatbot/hooks/use-attachment-cache.ts +0 -144
  473. package/2/apps/native/src/features/chatbot/hooks/use-chat-config.ts +0 -665
  474. package/2/apps/native/src/features/chatbot/hooks/use-chat-handlers.ts +0 -360
  475. package/2/apps/native/src/features/chatbot/hooks/use-chatbot-settings.ts +0 -90
  476. package/2/apps/native/src/features/chatbot/hooks/use-conversation.ts +0 -80
  477. package/2/apps/native/src/features/chatbot/hooks/use-image-picker.ts +0 -123
  478. package/2/apps/native/src/features/chatbot/hooks/use-keyboard-coordinator.ts +0 -162
  479. package/2/apps/native/src/features/chatbot/hooks/use-smart-scroll-manager.ts +0 -214
  480. package/2/apps/native/src/features/chatbot/models/index.ts +0 -87
  481. package/2/apps/native/src/features/chatbot/models/models.ts +0 -163
  482. package/2/apps/native/src/features/chatbot/models/providers.ts +0 -63
  483. package/2/apps/native/src/features/chatbot/models/types.ts +0 -41
  484. package/2/apps/native/src/features/chatbot/services/file-uploader.ts +0 -239
  485. package/2/apps/native/src/features/chatbot/services/message-handler-service.ts +0 -181
  486. package/2/apps/native/src/features/chatbot/types/index.ts +0 -61
  487. package/2/apps/native/src/features/chatbot/utils/chat-telemetry.ts +0 -92
  488. package/2/apps/native/src/features/image-generator/app/_layout.tsx +0 -26
  489. package/2/apps/native/src/features/image-generator/app/gallery.tsx +0 -217
  490. package/2/apps/native/src/features/image-generator/app/index.tsx +0 -237
  491. package/2/apps/native/src/features/image-generator/components/gallery-image.tsx +0 -25
  492. package/2/apps/native/src/features/image-generator/components/image-detail-modal.tsx +0 -215
  493. package/2/apps/native/src/features/image-generator/components/image-model-selector.tsx +0 -210
  494. package/2/apps/native/src/features/image-generator/components/image-placeholder.tsx +0 -26
  495. package/2/apps/native/src/features/image-generator/hooks/use-image-gallery.ts +0 -71
  496. package/2/apps/native/src/features/image-generator/hooks/use-image-generator-settings.ts +0 -152
  497. package/2/apps/native/src/features/image-generator/hooks/use-image-generator.ts +0 -93
  498. package/2/apps/native/src/features/image-generator/models/models.ts +0 -66
  499. package/2/apps/native/src/features/image-generator/services/image-gallery-service.ts +0 -98
  500. package/2/apps/native/src/features/image-generator/services/image-save-service.ts +0 -121
  501. package/2/apps/native/src/features/onboarding/analytics/index.ts +0 -9
  502. package/2/apps/native/src/features/onboarding/components/onboarding-with-analytics.tsx +0 -141
  503. package/2/apps/native/src/features/onboarding/components/onboarding.tsx +0 -173
  504. package/2/apps/native/src/features/onboarding/config/onboarding-flow-config.ts +0 -189
  505. package/2/apps/native/src/features/onboarding/demo-one/app/index.tsx +0 -43
  506. package/2/apps/native/src/features/onboarding/demo-one/data.ts +0 -32
  507. package/2/apps/native/src/features/onboarding/hooks/use-onboarding-analytics.ts +0 -323
  508. package/2/apps/native/src/features/onboarding/services/onboarding-analytics.ts +0 -432
  509. package/2/apps/native/src/features/payments/README.md +0 -200
  510. package/2/apps/native/src/features/payments/app/local-paywall.tsx +0 -194
  511. package/2/apps/native/src/features/payments/app/remote-paywall.tsx +0 -79
  512. package/2/apps/native/src/features/payments/components/payment-initializer.tsx +0 -95
  513. package/2/apps/native/src/features/payments/components/paywall-error-state.tsx +0 -60
  514. package/2/apps/native/src/features/payments/components/paywall-local-mode.tsx +0 -116
  515. package/2/apps/native/src/features/payments/components/paywall-product-card.tsx +0 -133
  516. package/2/apps/native/src/features/payments/components/paywall-remote-mode.tsx +0 -146
  517. package/2/apps/native/src/features/payments/hooks/use-entitlement.ts +0 -63
  518. package/2/apps/native/src/features/payments/index.ts +0 -8
  519. package/2/apps/native/src/features/payments/services/revenuecat-adapter.ts +0 -407
  520. package/2/apps/native/src/features/quick-actions/components/quick-actions-demo.tsx +0 -139
  521. package/2/apps/native/src/features/quick-actions/config/default-actions.ts +0 -83
  522. package/2/apps/native/src/features/quick-actions/hooks/use-quick-actions.ts +0 -45
  523. package/2/apps/native/src/features/quick-actions/index.ts +0 -4
  524. package/2/apps/native/src/features/quick-actions/utils/quick-actions-manager.ts +0 -105
  525. package/2/apps/native/src/features/quiz/components/question.tsx +0 -67
  526. package/2/apps/native/src/features/quiz/config.ts +0 -11
  527. package/2/apps/native/src/features/quiz/index.tsx +0 -133
  528. package/2/apps/native/src/features/settings/ui/debug-info.tsx +0 -75
  529. package/2/apps/native/src/features/settings/ui/dev-tools.tsx +0 -1
  530. package/2/apps/native/src/features/settings/ui/item.tsx +0 -45
  531. package/2/apps/native/src/features/settings/ui/items-container.tsx +0 -23
  532. package/2/apps/native/src/features/settings/ui/language-item.tsx +0 -52
  533. package/2/apps/native/src/features/settings/ui/notification-item.tsx +0 -59
  534. package/2/apps/native/src/features/settings/ui/theme-item.tsx +0 -45
  535. package/2/apps/native/src/features/tracker-app/app/index.tsx +0 -108
  536. package/2/apps/native/src/features/tracker-app/components/animated-number.tsx +0 -102
  537. package/2/apps/native/src/features/tracker-app/components/calorie-card.tsx +0 -66
  538. package/2/apps/native/src/features/tracker-app/components/circular-progress.tsx +0 -97
  539. package/2/apps/native/src/features/tracker-app/components/floating-add-button.tsx +0 -27
  540. package/2/apps/native/src/features/tracker-app/components/macro-card.tsx +0 -80
  541. package/2/apps/native/src/features/tracker-app/components/promo-banner.tsx +0 -98
  542. package/2/apps/native/src/features/tracker-app/components/recently-logged.tsx +0 -64
  543. package/2/apps/native/src/features/tracker-app/components/week-calendar.tsx +0 -68
  544. package/2/apps/native/src/features/vibefast-features.ts +0 -42
  545. package/2/apps/native/src/features/voice-bot/README.md +0 -185
  546. package/2/apps/native/src/features/voice-bot/components/conversation-status.tsx +0 -76
  547. package/2/apps/native/src/features/voice-bot/components/index.ts +0 -4
  548. package/2/apps/native/src/features/voice-bot/components/message-input.tsx +0 -98
  549. package/2/apps/native/src/features/voice-bot/components/voice-bot-screen.tsx +0 -173
  550. package/2/apps/native/src/features/voice-bot/components/voice-controls.tsx +0 -73
  551. package/2/apps/native/src/features/voice-bot/index.ts +0 -3
  552. package/2/apps/native/src/features/voice-bot/services/index.ts +0 -1
  553. package/2/apps/native/src/features/voice-bot/services/use-voice-bot.ts +0 -161
  554. package/2/apps/native/src/features/voice-bot/types.ts +0 -29
  555. package/2/apps/native/src/features/wake-word/components/index.ts +0 -1
  556. package/2/apps/native/src/features/wake-word/components/wake-word-indicator.tsx +0 -61
  557. package/2/apps/native/src/features/wake-word/constants.ts +0 -10
  558. package/2/apps/native/src/features/wake-word/hooks/use-wake-word.ts +0 -181
  559. package/2/apps/native/src/features/wake-word/index.ts +0 -22
  560. package/2/apps/native/src/features/wake-word/services/audio-session.ts +0 -40
  561. package/2/apps/native/src/features/wake-word/services/event-bus.ts +0 -31
  562. package/2/apps/native/src/features/wake-word/services/keywords.ts +0 -88
  563. package/2/apps/native/src/features/wake-word/services/wake-word-manager.ts +0 -249
  564. package/2/apps/native/src/features/wake-word/types.ts +0 -22
  565. package/2/apps/native/src/lib/env.js +0 -13
  566. package/2/apps/native/src/lib/hooks/index.tsx +0 -6
  567. package/2/apps/native/src/lib/hooks/use-device-identifier.tsx +0 -80
  568. package/2/apps/native/src/lib/hooks/use-gradual-animation.ts +0 -28
  569. package/2/apps/native/src/lib/hooks/use-is-first-time.tsx +0 -25
  570. package/2/apps/native/src/lib/hooks/use-navigation-analytics.ts +0 -44
  571. package/2/apps/native/src/lib/hooks/use-navigation-options.tsx +0 -87
  572. package/2/apps/native/src/lib/hooks/use-push-notifications.ts +0 -250
  573. package/2/apps/native/src/lib/hooks/use-responsive-size.tsx +0 -37
  574. package/2/apps/native/src/lib/hooks/use-selected-theme.tsx +0 -38
  575. package/2/apps/native/src/lib/hooks/use-viewport-lazy-loading.tsx +0 -124
  576. package/2/apps/native/src/lib/i18n/index.tsx +0 -30
  577. package/2/apps/native/src/lib/i18n/react-i18next.d.ts +0 -9
  578. package/2/apps/native/src/lib/i18n/resources.ts +0 -25
  579. package/2/apps/native/src/lib/i18n/types.ts +0 -23
  580. package/2/apps/native/src/lib/i18n/utils.tsx +0 -112
  581. package/2/apps/native/src/lib/index.tsx +0 -3
  582. package/2/apps/native/src/lib/state/auth-client-slice.ts +0 -34
  583. package/2/apps/native/src/lib/state/index.ts +0 -1
  584. package/2/apps/native/src/lib/storage.tsx +0 -7
  585. package/2/apps/native/src/lib/test-utils.tsx +0 -43
  586. package/2/apps/native/src/lib/use-theme-config.tsx +0 -108
  587. package/2/apps/native/src/lib/utils.ts +0 -29
  588. package/2/apps/native/src/polyfills.ts +0 -61
  589. package/2/apps/native/src/providers/convex-provider.tsx +0 -31
  590. package/2/apps/native/src/providers/index.tsx +0 -6
  591. package/2/apps/native/src/providers/notification-provider.tsx +0 -168
  592. package/2/apps/native/src/providers/posthog-provider.tsx +0 -47
  593. package/2/apps/native/src/providers/root-providers.tsx +0 -46
  594. package/2/apps/native/src/providers/sentry-provider.tsx +0 -62
  595. package/2/apps/native/src/providers/splash-screen-provider.tsx +0 -122
  596. package/2/apps/native/src/providers/theme-provider.tsx +0 -67
  597. package/2/apps/native/src/translations/ar.json +0 -394
  598. package/2/apps/native/src/translations/de.json +0 -394
  599. package/2/apps/native/src/translations/en.json +0 -394
  600. package/2/apps/native/src/translations/es.json +0 -394
  601. package/2/apps/native/src/translations/fr.json +0 -394
  602. package/2/apps/native/src/types/flash-list.d.ts +0 -3
  603. package/2/apps/native/src/types/index.ts +0 -3
  604. package/2/apps/native/src/types/react-native-reanimated.d.ts +0 -5
  605. package/2/apps/native/tailwind.config.js +0 -57
  606. package/2/apps/native/targets/widget/AppIntent.swift +0 -46
  607. package/2/apps/native/targets/widget/Assets.xcassets/AppIcon.appiconset/App-Icon-20x20@1x.png +0 -0
  608. package/2/apps/native/targets/widget/Assets.xcassets/AppIcon.appiconset/App-Icon-20x20@2x.png +0 -0
  609. package/2/apps/native/targets/widget/Assets.xcassets/AppIcon.appiconset/App-Icon-20x20@3x.png +0 -0
  610. package/2/apps/native/targets/widget/Assets.xcassets/AppIcon.appiconset/App-Icon-29x29@1x.png +0 -0
  611. package/2/apps/native/targets/widget/Assets.xcassets/AppIcon.appiconset/App-Icon-29x29@2x.png +0 -0
  612. package/2/apps/native/targets/widget/Assets.xcassets/AppIcon.appiconset/App-Icon-29x29@3x.png +0 -0
  613. package/2/apps/native/targets/widget/Assets.xcassets/AppIcon.appiconset/App-Icon-40x40@1x.png +0 -0
  614. package/2/apps/native/targets/widget/Assets.xcassets/AppIcon.appiconset/App-Icon-40x40@2x.png +0 -0
  615. package/2/apps/native/targets/widget/Assets.xcassets/AppIcon.appiconset/App-Icon-40x40@3x.png +0 -0
  616. package/2/apps/native/targets/widget/Assets.xcassets/AppIcon.appiconset/App-Icon-60x60@2x.png +0 -0
  617. package/2/apps/native/targets/widget/Assets.xcassets/AppIcon.appiconset/App-Icon-60x60@3x.png +0 -0
  618. package/2/apps/native/targets/widget/Assets.xcassets/AppIcon.appiconset/App-Icon-76x76@1x.png +0 -0
  619. package/2/apps/native/targets/widget/Assets.xcassets/AppIcon.appiconset/App-Icon-76x76@2x.png +0 -0
  620. package/2/apps/native/targets/widget/Assets.xcassets/AppIcon.appiconset/App-Icon-83.5x83.5@2x.png +0 -0
  621. package/2/apps/native/targets/widget/Assets.xcassets/AppIcon.appiconset/Contents.json +0 -122
  622. package/2/apps/native/targets/widget/Assets.xcassets/AppIcon.appiconset/ItunesArtwork@2x.png +0 -0
  623. package/2/apps/native/targets/widget/CalorieTrackerWidget.swift +0 -424
  624. package/2/apps/native/targets/widget/HabitTrackerWidget.swift +0 -305
  625. package/2/apps/native/targets/widget/Info.plist +0 -11
  626. package/2/apps/native/targets/widget/WidgetLiveActivity.swift +0 -75
  627. package/2/apps/native/targets/widget/expo-target.config.js +0 -10
  628. package/2/apps/native/targets/widget/generated.entitlements +0 -5
  629. package/2/apps/native/targets/widget/index.swift +0 -18
  630. package/2/apps/native/targets/widget/widgets.swift +0 -96
  631. package/2/apps/native/tsconfig.json +0 -88
  632. package/2/apps/native/vitest.config.mts +0 -14
  633. package/2/apps/web/README.md +0 -36
  634. package/2/apps/web/app/favicon.ico +0 -0
  635. package/2/apps/web/app/globals.css +0 -122
  636. package/2/apps/web/app/layout.tsx +0 -38
  637. package/2/apps/web/app/page.tsx +0 -35
  638. package/2/apps/web/app/users/page.tsx +0 -301
  639. package/2/apps/web/components/AdminDashboard.tsx +0 -336
  640. package/2/apps/web/components/AppleLogo.tsx +0 -15
  641. package/2/apps/web/components/GitHubLogo.tsx +0 -11
  642. package/2/apps/web/components/GoogleLogo.tsx +0 -23
  643. package/2/apps/web/components/Layout.tsx +0 -77
  644. package/2/apps/web/components/ThemeToggle.tsx +0 -23
  645. package/2/apps/web/components/UserMenu.tsx +0 -66
  646. package/2/apps/web/components/auth/CodeInput.tsx +0 -24
  647. package/2/apps/web/components/auth/ResetPasswordWithEmailCode.tsx +0 -85
  648. package/2/apps/web/components/auth/SignInFormEmailCode.tsx +0 -72
  649. package/2/apps/web/components/auth/SignInFormEmailLink.tsx +0 -81
  650. package/2/apps/web/components/auth/SignInFormPassword.tsx +0 -17
  651. package/2/apps/web/components/auth/SignInFormPasswordAndCustomField.tsx +0 -42
  652. package/2/apps/web/components/auth/SignInFormPasswordAndResetViaCode.tsx +0 -32
  653. package/2/apps/web/components/auth/SignInFormPasswordAndVerifyViaCode.tsx +0 -86
  654. package/2/apps/web/components/auth/SignInFormPhoneCode.tsx +0 -89
  655. package/2/apps/web/components/auth/SignInFormsShowcase.tsx +0 -64
  656. package/2/apps/web/components/auth/SignInMethodDivider.tsx +0 -17
  657. package/2/apps/web/components/auth/SignInWithEmailCode.tsx +0 -49
  658. package/2/apps/web/components/auth/SignInWithOAuth.tsx +0 -16
  659. package/2/apps/web/components/auth/SignInWithPassword.tsx +0 -100
  660. package/2/apps/web/components/auth/oauth/SignInWithApple.tsx +0 -27
  661. package/2/apps/web/components/auth/oauth/SignInWithGitHub.tsx +0 -27
  662. package/2/apps/web/components/auth/oauth/SignInWithGoogle.tsx +0 -27
  663. package/2/apps/web/components/ui/button.tsx +0 -60
  664. package/2/apps/web/components/ui/card.tsx +0 -92
  665. package/2/apps/web/components/ui/dialog.tsx +0 -143
  666. package/2/apps/web/components/ui/dropdown-menu.tsx +0 -257
  667. package/2/apps/web/components/ui/input-otp.tsx +0 -77
  668. package/2/apps/web/components/ui/input.tsx +0 -21
  669. package/2/apps/web/components/ui/skeleton.tsx +0 -13
  670. package/2/apps/web/components/ui/tabs.tsx +0 -66
  671. package/2/apps/web/components/ui/toast.tsx +0 -130
  672. package/2/apps/web/components/ui/toaster.tsx +0 -36
  673. package/2/apps/web/components/ui/toggle-group.tsx +0 -83
  674. package/2/apps/web/components/ui/toggle.tsx +0 -47
  675. package/2/apps/web/components/ui/use-toast.ts +0 -192
  676. package/2/apps/web/components.json +0 -22
  677. package/2/apps/web/eslint.config.mjs +0 -18
  678. package/2/apps/web/lib/convex-provider.tsx +0 -18
  679. package/2/apps/web/lib/utils.ts +0 -6
  680. package/2/apps/web/next.config.ts +0 -7
  681. package/2/apps/web/package.json +0 -46
  682. package/2/apps/web/postcss.config.mjs +0 -7
  683. package/2/apps/web/public/file.svg +0 -1
  684. package/2/apps/web/public/globe.svg +0 -1
  685. package/2/apps/web/public/next.svg +0 -1
  686. package/2/apps/web/public/vercel.svg +0 -1
  687. package/2/apps/web/public/window.svg +0 -1
  688. package/2/apps/web/tsconfig.json +0 -34
  689. package/2/bts.jsonc +0 -21
  690. package/2/commitlint.config.js +0 -1
  691. package/2/eslint.config.mjs +0 -182
  692. package/2/lint-staged.config.js +0 -16
  693. package/2/package.json +0 -64
  694. package/2/packages/backend/.env.example +0 -20
  695. package/2/packages/backend/convex/README.md +0 -90
  696. package/2/packages/backend/convex/_generated/api.d.ts +0 -2599
  697. package/2/packages/backend/convex/_generated/api.js +0 -23
  698. package/2/packages/backend/convex/_generated/dataModel.d.ts +0 -60
  699. package/2/packages/backend/convex/_generated/server.d.ts +0 -149
  700. package/2/packages/backend/convex/_generated/server.js +0 -90
  701. package/2/packages/backend/convex/agents.ts +0 -116
  702. package/2/packages/backend/convex/auth.config.ts +0 -8
  703. package/2/packages/backend/convex/auth.ts +0 -103
  704. package/2/packages/backend/convex/authCustomEmailOtpProvider.ts +0 -175
  705. package/2/packages/backend/convex/authOtp.ts +0 -144
  706. package/2/packages/backend/convex/authPasswordReset.ts +0 -367
  707. package/2/packages/backend/convex/authPasswordResetActions.ts +0 -150
  708. package/2/packages/backend/convex/chatbot/index.ts +0 -30
  709. package/2/packages/backend/convex/chatbotAgent.ts +0 -1085
  710. package/2/packages/backend/convex/chatbotHistory.ts +0 -307
  711. package/2/packages/backend/convex/convex.config.ts +0 -13
  712. package/2/packages/backend/convex/deviceGrants.ts +0 -58
  713. package/2/packages/backend/convex/grantFunctions.ts +0 -444
  714. package/2/packages/backend/convex/http.ts +0 -8
  715. package/2/packages/backend/convex/imageGeneration/index.ts +0 -12
  716. package/2/packages/backend/convex/imageGeneratorFunctions.ts +0 -290
  717. package/2/packages/backend/convex/lib/ai/analysisConfigs.ts +0 -257
  718. package/2/packages/backend/convex/lib/ai/config.ts +0 -71
  719. package/2/packages/backend/convex/lib/ai/geminiAdapter.ts +0 -43
  720. package/2/packages/backend/convex/lib/ai/openaiAdapter.ts +0 -43
  721. package/2/packages/backend/convex/lib/ai/schemas.ts +0 -79
  722. package/2/packages/backend/convex/lib/config.ts +0 -111
  723. package/2/packages/backend/convex/lib/rateLimit.ts +0 -100
  724. package/2/packages/backend/convex/lib/telemetry.ts +0 -29
  725. package/2/packages/backend/convex/paymentFunctions.ts +0 -119
  726. package/2/packages/backend/convex/payments/index.ts +0 -13
  727. package/2/packages/backend/convex/pushNotificationFunctions.ts +0 -342
  728. package/2/packages/backend/convex/ragKnowledge.ts +0 -714
  729. package/2/packages/backend/convex/rateLimit.ts +0 -13
  730. package/2/packages/backend/convex/recordingFunctions.ts +0 -98
  731. package/2/packages/backend/convex/reportFunctions.ts +0 -344
  732. package/2/packages/backend/convex/reporting/index.ts +0 -9
  733. package/2/packages/backend/convex/router.ts +0 -81
  734. package/2/packages/backend/convex/schema.ts +0 -237
  735. package/2/packages/backend/convex/shared/email.ts +0 -172
  736. package/2/packages/backend/convex/shared/files.ts +0 -96
  737. package/2/packages/backend/convex/shared/index.ts +0 -17
  738. package/2/packages/backend/convex/shared/templates/PasswordResetEmail.tsx +0 -72
  739. package/2/packages/backend/convex/shared/templates/VerificationCodeEmail.tsx +0 -65
  740. package/2/packages/backend/convex/sharedUsers.ts +0 -48
  741. package/2/packages/backend/convex/tools/index.ts +0 -18
  742. package/2/packages/backend/convex/tools/knowledgeRetrieval.ts +0 -92
  743. package/2/packages/backend/convex/tools/tavilySearch.ts +0 -83
  744. package/2/packages/backend/convex/tools/userProfile.ts +0 -72
  745. package/2/packages/backend/convex/tsconfig.json +0 -25
  746. package/2/packages/backend/convex/users.ts +0 -54
  747. package/2/packages/backend/index.ts +0 -20
  748. package/2/packages/backend/package.json +0 -32
  749. package/2/packages/ui/README.md +0 -63
  750. package/2/packages/ui/index.ts +0 -1
  751. package/2/packages/ui/package.json +0 -21
  752. package/2/packages/ui/src/components/SharedButton.tsx +0 -31
  753. package/2/packages/ui/src/components/SharedCard.tsx +0 -48
  754. package/2/packages/ui/src/components/index.ts +0 -2
  755. package/2/packages/ui/tsconfig.json +0 -10
  756. package/2/pnpm-lock.yaml +0 -23292
  757. package/2/pnpm-workspace.yaml +0 -3
  758. package/2/scripts/i18next-syntax-validation.js +0 -1
  759. package/2/tsconfig.json +0 -43
  760. package/2/turbo.json +0 -33
  761. package/2/vercel.json +0 -6
  762. package/2/vf-agent/agent-teams/team-vibefast.yaml +0 -14
  763. package/2/vf-agent/agents/analyst.md +0 -53
  764. package/2/vf-agent/agents/architect.md +0 -105
  765. package/2/vf-agent/agents/dev.md +0 -40
  766. package/2/vf-agent/agents/orchestrator.md +0 -181
  767. package/2/vf-agent/agents/pm.md +0 -48
  768. package/2/vf-agent/agents/po.md +0 -38
  769. package/2/vf-agent/agents/qa.md +0 -30
  770. package/2/vf-agent/agents/sm.md +0 -38
  771. package/2/vf-agent/agents/ux-expert.md +0 -33
  772. package/2/vf-agent/checklists/po-master-checklist.md +0 -73
  773. package/2/vf-agent/checklists/story-dod-checklist.md +0 -37
  774. package/2/vf-agent/core-config.yaml +0 -43
  775. package/2/vf-agent/data/knowledge_base/backend/convex-advanced.md +0 -43
  776. package/2/vf-agent/data/knowledge_base/backend/convex-database.md +0 -53
  777. package/2/vf-agent/data/knowledge_base/backend/convex-main.md +0 -65
  778. package/2/vf-agent/data/knowledge_base/backend/full-guidelines.md +0 -795
  779. package/2/vf-agent/data/knowledge_base/coding-standards.md +0 -253
  780. package/2/vf-agent/data/knowledge_base/frontend/full-guidelines.md +0 -254
  781. package/2/vf-agent/data/knowledge_base/frontend/image-handling.md +0 -48
  782. package/2/vf-agent/data/knowledge_base/frontend/react-native-main.md +0 -24
  783. package/2/vf-agent/data/knowledge_base/frontend/ui-and-styling.md +0 -169
  784. package/2/vf-agent/data/knowledge_base/general-principles.md +0 -26
  785. package/2/vf-agent/data/knowledge_base/master-rulebook.md +0 -42
  786. package/2/vf-agent/data/knowledge_base/starter-docs/audio-recorder-reference.md +0 -98
  787. package/2/vf-agent/data/knowledge_base/starter-docs/authentication-reference.md +0 -155
  788. package/2/vf-agent/data/knowledge_base/starter-docs/charts-reference.md +0 -149
  789. package/2/vf-agent/data/knowledge_base/starter-docs/chatbot-reference.md +0 -123
  790. package/2/vf-agent/data/knowledge_base/starter-docs/feature-reference-index.md +0 -211
  791. package/2/vf-agent/data/knowledge_base/starter-docs/features-overview.md +0 -221
  792. package/2/vf-agent/data/knowledge_base/starter-docs/image-analyzer-reference.md +0 -118
  793. package/2/vf-agent/data/knowledge_base/starter-docs/image-generator-reference.md +0 -110
  794. package/2/vf-agent/data/knowledge_base/starter-docs/index.md +0 -28
  795. package/2/vf-agent/data/knowledge_base/starter-docs/onboarding-reference.md +0 -96
  796. package/2/vf-agent/data/knowledge_base/starter-docs/payments-reference.md +0 -148
  797. package/2/vf-agent/data/knowledge_base/starter-docs/prd.md +0 -82
  798. package/2/vf-agent/data/knowledge_base/starter-docs/push-notifications-reference.md +0 -453
  799. package/2/vf-agent/data/knowledge_base/starter-docs/quick-actions-reference.md +0 -253
  800. package/2/vf-agent/data/knowledge_base/starter-docs/quiz-reference.md +0 -169
  801. package/2/vf-agent/data/knowledge_base/starter-docs/settings-reference.md +0 -146
  802. package/2/vf-agent/data/knowledge_base/starter-docs/tech-stack.md +0 -159
  803. package/2/vf-agent/data/knowledge_base/starter-docs/tracker-app-reference.md +0 -150
  804. package/2/vf-agent/data/knowledge_base/starter-docs/unified-project-structure.md +0 -98
  805. package/2/vf-agent/data/knowledge_base/testing/backend-testing.md +0 -54
  806. package/2/vf-agent/data/knowledge_base/testing/frontend-testing.md +0 -71
  807. package/2/vf-agent/data/knowledge_base/testing/testing-strategy.md +0 -31
  808. package/2/vf-agent/tasks/advanced-elicitation.md +0 -117
  809. package/2/vf-agent/tasks/brownfield-create-epic.md +0 -160
  810. package/2/vf-agent/tasks/create-deep-research-prompt.md +0 -278
  811. package/2/vf-agent/tasks/create-doc.md +0 -42
  812. package/2/vf-agent/tasks/create-story.md +0 -43
  813. package/2/vf-agent/tasks/document-project.md +0 -343
  814. package/2/vf-agent/tasks/facilitate-brainstorming-session.md +0 -136
  815. package/2/vf-agent/tasks/index-docs.md +0 -173
  816. package/2/vf-agent/tasks/kb-mode-interaction.md +0 -75
  817. package/2/vf-agent/tasks/review-story.md +0 -154
  818. package/2/vf-agent/tasks/shard-doc.md +0 -185
  819. package/2/vf-agent/tasks/troubleshoot-issue.md +0 -65
  820. package/2/vf-agent/tasks/validate-next-story.md +0 -47
  821. package/2/vf-agent/templates/brainstorming-output-tmpl.yaml +0 -156
  822. package/2/vf-agent/templates/brownfield-architecture-tmpl.yaml +0 -111
  823. package/2/vf-agent/templates/brownfield-prd-tmpl.yaml +0 -247
  824. package/2/vf-agent/templates/competitor-analysis-tmpl.yaml +0 -293
  825. package/2/vf-agent/templates/market-research-tmpl.yaml +0 -252
  826. package/2/vf-agent/templates/project-brief-tmpl.yaml +0 -221
  827. package/2/vf-agent/templates/story-tmpl.yaml +0 -143
  828. package/recipes/0/apps/native/src/components/advanced-ui/timeline/demo.tsx +0 -444
  829. package/recipes/0/apps/native/src/components/advanced-ui/timeline/timeline-view.tsx +0 -355
  830. package/recipes/0/apps/native/src/components/advanced-ui/timeline/types.ts +0 -31
  831. package/recipes/wake-word/scripts/download-vosk-model.mjs +0 -121
  832. /package/{2 → recipes/animated-chip}/apps/native/src/components/advanced-ui/chip/animated-chip.tsx +0 -0
  833. /package/{2 → recipes/animated-chip}/apps/native/src/components/advanced-ui/chip/chip.tsx +0 -0
  834. /package/{2 → recipes/animated-chip}/apps/native/src/components/advanced-ui/chip/demo.tsx +0 -0
  835. /package/{2 → recipes/animated-chip}/apps/native/src/components/advanced-ui/chip/types.ts +0 -0
  836. /package/{2 → recipes/animated-switch}/apps/native/src/components/advanced-ui/switch/animated-switch.tsx +0 -0
  837. /package/{2 → recipes/animated-switch}/apps/native/src/components/advanced-ui/switch/demo.tsx +0 -0
  838. /package/{2 → recipes/animated-switch}/apps/native/src/components/advanced-ui/switch/types.ts +0 -0
  839. /package/{2 → recipes/glowing-button}/apps/native/src/components/advanced-ui/buttons/demo.tsx +0 -0
  840. /package/{2 → recipes/image-analysis}/apps/native/assets/features/image-analyzer/front.jpg +0 -0
  841. /package/{2 → recipes/image-analysis}/apps/native/assets/features/image-analyzer/side.jpg +0 -0
  842. /package/{2 → recipes/image-analysis}/apps/native/assets/features/image-analyzer/threeQuarter.jpg +0 -0
  843. /package/{2 → recipes/image-analysis}/apps/native/src/api-client/image-analyzer.ts +0 -0
  844. /package/{2 → recipes/image-analysis}/apps/native/src/app/(root)/(protected)/analysis/[type]/_layout.tsx +0 -0
  845. /package/{2 → recipes/image-analysis}/apps/native/src/app/(root)/(protected)/analysis/[type]/analysis-options.tsx +0 -0
  846. /package/{2 → recipes/image-analysis}/apps/native/src/app/(root)/(protected)/analysis/[type]/camera.tsx +0 -0
  847. /package/{2 → recipes/image-analysis}/apps/native/src/app/(root)/(protected)/analysis/[type]/index.tsx +0 -0
  848. /package/{2 → recipes/image-analysis}/apps/native/src/app/(root)/(protected)/analysis/[type]/loading.tsx +0 -0
  849. /package/{2 → recipes/image-analysis}/apps/native/src/app/(root)/(protected)/analysis/[type]/results.tsx +0 -0
  850. /package/{2 → recipes/image-analysis}/apps/native/src/app/(root)/(protected)/analysis/[type]/trait-details.tsx +0 -0
  851. /package/{2 → recipes/image-analysis}/apps/native/src/features/image-analyzer/app/analysis-options-screen.tsx +0 -0
  852. /package/{2 → recipes/image-analysis}/apps/native/src/features/image-analyzer/app/camera.tsx +0 -0
  853. /package/{2 → recipes/image-analysis}/apps/native/src/features/image-analyzer/app/image-capture-screen.tsx +0 -0
  854. /package/{2 → recipes/image-analysis}/apps/native/src/features/image-analyzer/app/loading-screen.tsx +0 -0
  855. /package/{2 → recipes/image-analysis}/apps/native/src/features/image-analyzer/app/loading.tsx +0 -0
  856. /package/{2 → recipes/image-analysis}/apps/native/src/features/image-analyzer/app/results.tsx +0 -0
  857. /package/{2 → recipes/image-analysis}/apps/native/src/features/image-analyzer/app/trait-details.tsx +0 -0
  858. /package/{2 → recipes/image-analysis}/apps/native/src/features/image-analyzer/app/use-analysis-data.ts +0 -0
  859. /package/{2 → recipes/image-analysis}/apps/native/src/features/image-analyzer/app/use-results-screen.ts +0 -0
  860. /package/{2 → recipes/image-analysis}/apps/native/src/features/image-analyzer/components/results/achievement-badge.tsx +0 -0
  861. /package/{2 → recipes/image-analysis}/apps/native/src/features/image-analyzer/components/results/achievement-card.tsx +0 -0
  862. /package/{2 → recipes/image-analysis}/apps/native/src/features/image-analyzer/components/results/achievement-unlocked-modal.tsx +0 -0
  863. /package/{2 → recipes/image-analysis}/apps/native/src/features/image-analyzer/components/results/achievements-section.tsx +0 -0
  864. /package/{2 → recipes/image-analysis}/apps/native/src/features/image-analyzer/components/results/advice-list.tsx +0 -0
  865. /package/{2 → recipes/image-analysis}/apps/native/src/features/image-analyzer/components/results/circular-progress.tsx +0 -0
  866. /package/{2 → recipes/image-analysis}/apps/native/src/features/image-analyzer/components/results/content-card.tsx +0 -0
  867. /package/{2 → recipes/image-analysis}/apps/native/src/features/image-analyzer/components/results/error-state.tsx +0 -0
  868. /package/{2 → recipes/image-analysis}/apps/native/src/features/image-analyzer/components/results/index.ts +0 -0
  869. /package/{2 → recipes/image-analysis}/apps/native/src/features/image-analyzer/components/results/loading-state.tsx +0 -0
  870. /package/{2 → recipes/image-analysis}/apps/native/src/features/image-analyzer/components/results/profile-image.tsx +0 -0
  871. /package/{2 → recipes/image-analysis}/apps/native/src/features/image-analyzer/components/results/results-header.tsx +0 -0
  872. /package/{2 → recipes/image-analysis}/apps/native/src/features/image-analyzer/components/results/score-display.tsx +0 -0
  873. /package/{2 → recipes/image-analysis}/apps/native/src/features/image-analyzer/components/results/share-options-modal.tsx +0 -0
  874. /package/{2 → recipes/image-analysis}/apps/native/src/features/image-analyzer/components/results/traits-grid.tsx +0 -0
  875. /package/{2 → recipes/image-analysis}/apps/native/src/features/image-analyzer/config/analysis-config.ts +0 -0
  876. /package/{2 → recipes/image-analysis}/apps/native/src/features/image-analyzer/config/master-analysis-config.ts +0 -0
  877. /package/{2 → recipes/image-analysis}/apps/native/src/features/image-analyzer/hooks/index.ts +0 -0
  878. /package/{2 → recipes/image-analysis}/apps/native/src/features/image-analyzer/hooks/use-analysis.ts +0 -0
  879. /package/{2 → recipes/image-analysis}/apps/native/src/features/image-analyzer/hooks/use-image-analysis.ts +0 -0
  880. /package/{2 → recipes/image-analysis}/apps/native/src/features/image-analyzer/services/analysis-service.ts +0 -0
  881. /package/{2 → recipes/image-analysis}/apps/native/src/features/image-analyzer/services/share-service.ts +0 -0
  882. /package/{2 → recipes/image-analysis}/apps/native/src/features/image-analyzer/services/trait-details-service.ts +0 -0
  883. /package/{2 → recipes/image-analysis}/packages/backend/convex/imageAnalysis/index.ts +0 -0
  884. /package/{2 → recipes/image-analysis}/packages/backend/convex/imageAnalysisFunctions.ts +0 -0
  885. /package/{2 → recipes/image-analysis}/packages/backend/convex/lib/ai/imageAnalysisAdapter.ts +0 -0
  886. /package/{2 → recipes/number-stepper}/apps/native/src/components/advanced-ui/stepper/children/button/stepper-button.tsx +0 -0
  887. /package/{2 → recipes/number-stepper}/apps/native/src/components/advanced-ui/stepper/children/button/types.ts +0 -0
  888. /package/{2 → recipes/number-stepper}/apps/native/src/components/advanced-ui/stepper/children/content/stepper-content.tsx +0 -0
  889. /package/{2 → recipes/number-stepper}/apps/native/src/components/advanced-ui/stepper/children/content/types.ts +0 -0
  890. /package/{2 → recipes/number-stepper}/apps/native/src/components/advanced-ui/stepper/children/value/stepper-value.tsx +0 -0
  891. /package/{2 → recipes/number-stepper}/apps/native/src/components/advanced-ui/stepper/children/value/types.ts +0 -0
  892. /package/{2 → recipes/number-stepper}/apps/native/src/components/advanced-ui/stepper/context/stepper-context.ts +0 -0
  893. /package/{2 → recipes/number-stepper}/apps/native/src/components/advanced-ui/stepper/context/types.ts +0 -0
  894. /package/{2 → recipes/number-stepper}/apps/native/src/components/advanced-ui/stepper/demo.tsx +0 -0
  895. /package/{2 → recipes/number-stepper}/apps/native/src/components/advanced-ui/stepper/index.ts +0 -0
  896. /package/{2 → recipes/number-stepper}/apps/native/src/components/advanced-ui/stepper/stepper.tsx +0 -0
  897. /package/{2 → recipes/number-stepper}/apps/native/src/components/advanced-ui/stepper/types.ts +0 -0
  898. /package/{2 → recipes/progress-circle}/apps/native/src/components/advanced-ui/progress-bars/animated-progress-bar.tsx +0 -0
  899. /package/{2 → recipes/progress-circle}/apps/native/src/components/advanced-ui/progress-bars/dropdown-picker-page.tsx +0 -0
  900. /package/{2 → recipes/progress-circle}/apps/native/src/components/advanced-ui/progress-bars/progress-circle-page.tsx +0 -0
  901. /package/{2 → recipes/progress-circle}/apps/native/src/components/advanced-ui/progress-bars/progress-circle.tsx +0 -0
  902. /package/{2 → recipes/swipe-slider}/apps/native/src/components/advanced-ui/sliders/swipe-slider-page.tsx +0 -0
  903. /package/{2 → recipes/swipe-slider}/apps/native/src/components/advanced-ui/sliders/swipe-slider.tsx +0 -0
  904. /package/{2 → recipes/timeline}/apps/native/src/components/advanced-ui/timeline/demo.tsx +0 -0
  905. /package/{2 → recipes/timeline}/apps/native/src/components/advanced-ui/timeline/timeline-view.tsx +0 -0
  906. /package/{2 → recipes/timeline}/apps/native/src/components/advanced-ui/timeline/types.ts +0 -0
  907. /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