create-disposabl-app 0.1.0 → 0.1.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 (390) hide show
  1. package/dist/index.js +21 -22
  2. package/dist/templates/default/apps/desktop/.oxfmtrc.json +5 -0
  3. package/dist/templates/default/apps/desktop/.oxlintrc.json +6 -0
  4. package/dist/templates/default/apps/desktop/README.md +58 -0
  5. package/dist/templates/default/apps/desktop/forge.config.mts +90 -0
  6. package/dist/templates/default/apps/desktop/index.html +12 -0
  7. package/dist/templates/default/apps/desktop/package.json +55 -1
  8. package/dist/templates/default/apps/desktop/src/declarations.d.ts +2 -0
  9. package/dist/templates/default/apps/desktop/src/index.css +8 -0
  10. package/dist/templates/default/apps/desktop/src/main.ts +58 -0
  11. package/dist/templates/default/apps/desktop/src/preload.ts +3 -0
  12. package/dist/templates/default/apps/desktop/src/renderer.ts +19 -0
  13. package/dist/templates/default/apps/desktop/tsconfig.json +14 -0
  14. package/dist/templates/default/apps/desktop/vite.main.config.mts +4 -0
  15. package/dist/templates/default/apps/desktop/vite.preload.config.mts +4 -0
  16. package/dist/templates/default/apps/desktop/vite.renderer.config.mts +4 -0
  17. package/dist/templates/default/apps/mobile/.agents/skills/agent-device/SKILL.md +22 -0
  18. package/dist/templates/default/apps/mobile/.agents/skills/android-emulator/SKILL.md +32 -0
  19. package/dist/templates/default/apps/mobile/.agents/skills/dogfood/SKILL.md +27 -0
  20. package/dist/templates/default/apps/mobile/.agents/skills/eas-app-stores/SKILL.md +176 -0
  21. package/dist/templates/default/apps/mobile/.agents/skills/eas-app-stores/agents/openai.yaml +4 -0
  22. package/dist/templates/default/apps/mobile/.agents/skills/eas-app-stores/references/app-store-metadata.md +497 -0
  23. package/dist/templates/default/apps/mobile/.agents/skills/eas-app-stores/references/ios-app-store.md +376 -0
  24. package/dist/templates/default/apps/mobile/.agents/skills/eas-app-stores/references/native-ios.md +167 -0
  25. package/dist/templates/default/apps/mobile/.agents/skills/eas-app-stores/references/play-store.md +244 -0
  26. package/dist/templates/default/apps/mobile/.agents/skills/eas-app-stores/references/testflight.md +62 -0
  27. package/dist/templates/default/apps/mobile/.agents/skills/eas-app-stores/references/workflows.md +120 -0
  28. package/dist/templates/default/apps/mobile/.agents/skills/eas-hosting/SKILL.md +431 -0
  29. package/dist/templates/default/apps/mobile/.agents/skills/eas-hosting/agents/openai.yaml +4 -0
  30. package/dist/templates/default/apps/mobile/.agents/skills/eas-observe/SKILL.md +46 -0
  31. package/dist/templates/default/apps/mobile/.agents/skills/eas-observe/agents/openai.yaml +4 -0
  32. package/dist/templates/default/apps/mobile/.agents/skills/eas-observe/references/metrics.md +98 -0
  33. package/dist/templates/default/apps/mobile/.agents/skills/eas-observe/references/queries.md +444 -0
  34. package/dist/templates/default/apps/mobile/.agents/skills/eas-observe/references/setup.md +529 -0
  35. package/dist/templates/default/apps/mobile/.agents/skills/eas-observe/references/third-party.md +136 -0
  36. package/dist/templates/default/apps/mobile/.agents/skills/eas-simulator/SKILL.md +237 -0
  37. package/dist/templates/default/apps/mobile/.agents/skills/eas-simulator/agents/openai.yaml +4 -0
  38. package/dist/templates/default/apps/mobile/.agents/skills/eas-simulator/references/controllers.md +139 -0
  39. package/dist/templates/default/apps/mobile/.agents/skills/eas-simulator/references/logs-and-crashes.md +101 -0
  40. package/dist/templates/default/apps/mobile/.agents/skills/eas-simulator/references/run-your-app.md +256 -0
  41. package/dist/templates/default/apps/mobile/.agents/skills/eas-simulator/references/troubleshooting.md +56 -0
  42. package/dist/templates/default/apps/mobile/.agents/skills/eas-update/SKILL.md +146 -0
  43. package/dist/templates/default/apps/mobile/.agents/skills/eas-update/agents/openai.yaml +4 -0
  44. package/dist/templates/default/apps/mobile/.agents/skills/eas-update-insights/SKILL.md +238 -0
  45. package/dist/templates/default/apps/mobile/.agents/skills/eas-update-insights/agents/openai.yaml +4 -0
  46. package/dist/templates/default/apps/mobile/.agents/skills/eas-update-insights/references/channel-insights-schema.md +47 -0
  47. package/dist/templates/default/apps/mobile/.agents/skills/eas-update-insights/references/update-insights-schema.md +69 -0
  48. package/dist/templates/default/apps/mobile/.agents/skills/eas-workflows/SKILL.md +99 -0
  49. package/dist/templates/default/apps/mobile/.agents/skills/eas-workflows/agents/openai.yaml +4 -0
  50. package/dist/templates/default/apps/mobile/.agents/skills/eas-workflows/scripts/fetch.js +109 -0
  51. package/dist/templates/default/apps/mobile/.agents/skills/eas-workflows/scripts/package.json +6 -0
  52. package/dist/templates/default/apps/mobile/.agents/skills/expo-animation/LICENSE +21 -0
  53. package/dist/templates/default/apps/mobile/.agents/skills/expo-animation/RECIPES.md +385 -0
  54. package/dist/templates/default/apps/mobile/.agents/skills/expo-animation/SKILL.md +274 -0
  55. package/dist/templates/default/apps/mobile/.agents/skills/expo-animation/agents/openai.yaml +4 -0
  56. package/dist/templates/default/apps/mobile/.agents/skills/expo-app-clip/SKILL.md +290 -0
  57. package/dist/templates/default/apps/mobile/.agents/skills/expo-app-clip/agents/openai.yaml +4 -0
  58. package/dist/templates/default/apps/mobile/.agents/skills/expo-app-clip/references/native-module.md +96 -0
  59. package/dist/templates/default/apps/mobile/.agents/skills/expo-brownfield/SKILL.md +69 -0
  60. package/dist/templates/default/apps/mobile/.agents/skills/expo-brownfield/agents/openai.yaml +4 -0
  61. package/dist/templates/default/apps/mobile/.agents/skills/expo-brownfield/references/brownfield-integrated.md +551 -0
  62. package/dist/templates/default/apps/mobile/.agents/skills/expo-brownfield/references/brownfield-isolated.md +449 -0
  63. package/dist/templates/default/apps/mobile/.agents/skills/expo-brownfield/references/comparison.md +63 -0
  64. package/dist/templates/default/apps/mobile/.agents/skills/expo-brownfield/references/feature-integration.md +163 -0
  65. package/dist/templates/default/apps/mobile/.agents/skills/expo-brownfield/references/troubleshooting.md +88 -0
  66. package/dist/templates/default/apps/mobile/.agents/skills/expo-brownfield/references/version-compatibility.md +40 -0
  67. package/dist/templates/default/apps/mobile/.agents/skills/expo-data-fetching/SKILL.md +478 -0
  68. package/dist/templates/default/apps/mobile/.agents/skills/expo-data-fetching/agents/openai.yaml +4 -0
  69. package/dist/templates/default/apps/mobile/.agents/skills/expo-data-fetching/references/expo-router-loaders.md +341 -0
  70. package/dist/templates/default/apps/mobile/.agents/skills/expo-data-fetching/references/offline-and-cancellation.md +68 -0
  71. package/dist/templates/default/apps/mobile/.agents/skills/expo-design-system/SKILL.md +376 -0
  72. package/dist/templates/default/apps/mobile/.agents/skills/expo-design-system/agents/openai.yaml +4 -0
  73. package/dist/templates/default/apps/mobile/.agents/skills/expo-design-system/references/audit.md +190 -0
  74. package/dist/templates/default/apps/mobile/.agents/skills/expo-design-system/references/native-slop.md +74 -0
  75. package/dist/templates/default/apps/mobile/.agents/skills/expo-dev-client/SKILL.md +184 -0
  76. package/dist/templates/default/apps/mobile/.agents/skills/expo-dev-client/agents/openai.yaml +4 -0
  77. package/dist/templates/default/apps/mobile/.agents/skills/expo-dom/SKILL.md +425 -0
  78. package/dist/templates/default/apps/mobile/.agents/skills/expo-dom/agents/openai.yaml +4 -0
  79. package/dist/templates/default/apps/mobile/.agents/skills/expo-examples/SKILL.md +106 -0
  80. package/dist/templates/default/apps/mobile/.agents/skills/expo-examples/agents/openai.yaml +4 -0
  81. package/dist/templates/default/apps/mobile/.agents/skills/expo-examples/references/catalog.md +105 -0
  82. package/dist/templates/default/apps/mobile/.agents/skills/expo-migrate-module/SKILL.md +124 -0
  83. package/dist/templates/default/apps/mobile/.agents/skills/expo-migrate-module/agents/openai.yaml +4 -0
  84. package/dist/templates/default/apps/mobile/.agents/skills/expo-migrate-module/references/compatibility.md +130 -0
  85. package/dist/templates/default/apps/mobile/.agents/skills/expo-migrate-module/references/example.md +212 -0
  86. package/dist/templates/default/apps/mobile/.agents/skills/expo-migrate-module/references/migration-map.md +457 -0
  87. package/dist/templates/default/apps/mobile/.agents/skills/expo-module/SKILL.md +151 -0
  88. package/dist/templates/default/apps/mobile/.agents/skills/expo-module/agents/openai.yaml +4 -0
  89. package/dist/templates/default/apps/mobile/.agents/skills/expo-module/references/config-plugin.md +90 -0
  90. package/dist/templates/default/apps/mobile/.agents/skills/expo-module/references/create-expo-module.md +206 -0
  91. package/dist/templates/default/apps/mobile/.agents/skills/expo-module/references/lifecycle.md +127 -0
  92. package/dist/templates/default/apps/mobile/.agents/skills/expo-module/references/module-config.md +48 -0
  93. package/dist/templates/default/apps/mobile/.agents/skills/expo-module/references/native-module.md +286 -0
  94. package/dist/templates/default/apps/mobile/.agents/skills/expo-module/references/native-view.md +171 -0
  95. package/dist/templates/default/apps/mobile/.agents/skills/expo-native-ui/SKILL.md +201 -0
  96. package/dist/templates/default/apps/mobile/.agents/skills/expo-native-ui/agents/openai.yaml +4 -0
  97. package/dist/templates/default/apps/mobile/.agents/skills/expo-native-ui/references/controls.md +231 -0
  98. package/dist/templates/default/apps/mobile/.agents/skills/expo-native-ui/references/gradients.md +106 -0
  99. package/dist/templates/default/apps/mobile/.agents/skills/expo-native-ui/references/icons.md +232 -0
  100. package/dist/templates/default/apps/mobile/.agents/skills/expo-native-ui/references/media.md +193 -0
  101. package/dist/templates/default/apps/mobile/.agents/skills/expo-native-ui/references/storage.md +121 -0
  102. package/dist/templates/default/apps/mobile/.agents/skills/expo-native-ui/references/visual-effects.md +198 -0
  103. package/dist/templates/default/apps/mobile/.agents/skills/expo-native-ui/references/webgpu-three.md +605 -0
  104. package/dist/templates/default/apps/mobile/.agents/skills/expo-overview/SKILL.md +120 -0
  105. package/dist/templates/default/apps/mobile/.agents/skills/expo-overview/agents/openai.yaml +4 -0
  106. package/dist/templates/default/apps/mobile/.agents/skills/expo-overview/references/launch-without-dev-menu.md +24 -0
  107. package/dist/templates/default/apps/mobile/.agents/skills/expo-project-structure/SKILL.md +114 -0
  108. package/dist/templates/default/apps/mobile/.agents/skills/expo-project-structure/agents/openai.yaml +4 -0
  109. package/dist/templates/default/apps/mobile/.agents/skills/expo-router/SKILL.md +240 -0
  110. package/dist/templates/default/apps/mobile/.agents/skills/expo-router/agents/openai.yaml +4 -0
  111. package/dist/templates/default/apps/mobile/.agents/skills/expo-router/references/form-sheet.md +253 -0
  112. package/dist/templates/default/apps/mobile/.agents/skills/expo-router/references/route-structure.md +229 -0
  113. package/dist/templates/default/apps/mobile/.agents/skills/expo-router/references/search.md +248 -0
  114. package/dist/templates/default/apps/mobile/.agents/skills/expo-router/references/tabs.md +433 -0
  115. package/dist/templates/default/apps/mobile/.agents/skills/expo-router/references/toolbar-and-headers.md +284 -0
  116. package/dist/templates/default/apps/mobile/.agents/skills/expo-router/references/zoom-transitions.md +158 -0
  117. package/dist/templates/default/apps/mobile/.agents/skills/expo-skill-eval/SKILL.md +314 -0
  118. package/dist/templates/default/apps/mobile/.agents/skills/expo-skill-eval/agents/visual-grader.md +52 -0
  119. package/dist/templates/default/apps/mobile/.agents/skills/expo-skill-eval/references/design-rubric.md +45 -0
  120. package/dist/templates/default/apps/mobile/.agents/skills/expo-skill-eval/references/runtime-matrix.md +34 -0
  121. package/dist/templates/default/apps/mobile/.agents/skills/expo-skill-eval/scripts/check-static.sh +64 -0
  122. package/dist/templates/default/apps/mobile/.agents/skills/expo-skill-eval/scripts/clean-fixture.sh +56 -0
  123. package/dist/templates/default/apps/mobile/.agents/skills/expo-skill-eval/scripts/generate_viewer.py +450 -0
  124. package/dist/templates/default/apps/mobile/.agents/skills/expo-skill-eval/scripts/latest-sdk.sh +46 -0
  125. package/dist/templates/default/apps/mobile/.agents/skills/expo-skill-eval/scripts/make-fixture.sh +95 -0
  126. package/dist/templates/default/apps/mobile/.agents/skills/expo-skill-eval/scripts/make-workspace.sh +31 -0
  127. package/dist/templates/default/apps/mobile/.agents/skills/expo-skill-eval/scripts/snapshot-android.sh +284 -0
  128. package/dist/templates/default/apps/mobile/.agents/skills/expo-skill-eval/scripts/snapshot-ios.sh +132 -0
  129. package/dist/templates/default/apps/mobile/.agents/skills/expo-skill-eval/scripts/snapshot-web.sh +61 -0
  130. package/dist/templates/default/apps/mobile/.agents/skills/expo-ui/SKILL.md +101 -0
  131. package/dist/templates/default/apps/mobile/.agents/skills/expo-ui/agents/openai.yaml +4 -0
  132. package/dist/templates/default/apps/mobile/.agents/skills/expo-ui/references/drop-in-replacements.md +27 -0
  133. package/dist/templates/default/apps/mobile/.agents/skills/expo-ui/references/jetpack-compose.md +73 -0
  134. package/dist/templates/default/apps/mobile/.agents/skills/expo-ui/references/swift-ui.md +73 -0
  135. package/dist/templates/default/apps/mobile/.agents/skills/expo-ui/references/universal.md +104 -0
  136. package/dist/templates/default/apps/mobile/.agents/skills/expo-ui/scripts/list-components.js +193 -0
  137. package/dist/templates/default/apps/mobile/.agents/skills/expo-upgrade/SKILL.md +150 -0
  138. package/dist/templates/default/apps/mobile/.agents/skills/expo-upgrade/agents/openai.yaml +4 -0
  139. package/dist/templates/default/apps/mobile/.agents/skills/expo-upgrade/references/expo-av-to-audio.md +132 -0
  140. package/dist/templates/default/apps/mobile/.agents/skills/expo-upgrade/references/expo-av-to-video.md +160 -0
  141. package/dist/templates/default/apps/mobile/.agents/skills/expo-upgrade/references/native-tabs.md +124 -0
  142. package/dist/templates/default/apps/mobile/.agents/skills/expo-upgrade/references/new-architecture.md +79 -0
  143. package/dist/templates/default/apps/mobile/.agents/skills/expo-upgrade/references/react-19.md +79 -0
  144. package/dist/templates/default/apps/mobile/.agents/skills/expo-upgrade/references/react-compiler.md +59 -0
  145. package/dist/templates/default/apps/mobile/.agents/skills/expo-upgrade/references/react-navigation-to-expo-router.md +61 -0
  146. package/dist/templates/default/apps/mobile/.agents/skills/expo-web-to-native/SKILL.md +91 -0
  147. package/dist/templates/default/apps/mobile/.agents/skills/expo-web-to-native/agents/openai.yaml +4 -0
  148. package/dist/templates/default/apps/mobile/.agents/skills/expo-web-to-native/references/false-friends.md +119 -0
  149. package/dist/templates/default/apps/mobile/.agents/skills/expo-web-to-native/references/native-patterns.md +39 -0
  150. package/dist/templates/default/apps/mobile/.agents/skills/expo-web-to-native/references/run-as-goal.md +48 -0
  151. package/dist/templates/default/apps/mobile/.agents/skills/expo-web-to-native/references/verify-on-device.md +45 -0
  152. package/dist/templates/default/apps/mobile/.agents/skills/ios-simulator/SKILL.md +32 -0
  153. package/dist/templates/default/apps/mobile/.agents/skills/react-native-best-practices/POWER.md +172 -0
  154. package/dist/templates/default/apps/mobile/.agents/skills/react-native-best-practices/SKILL.md +238 -0
  155. package/dist/templates/default/apps/mobile/.agents/skills/react-native-best-practices/agents/openai.yaml +4 -0
  156. package/dist/templates/default/apps/mobile/.agents/skills/react-native-best-practices/references/bundle-analyze-app.md +208 -0
  157. package/dist/templates/default/apps/mobile/.agents/skills/react-native-best-practices/references/bundle-analyze-js.md +264 -0
  158. package/dist/templates/default/apps/mobile/.agents/skills/react-native-best-practices/references/bundle-barrel-exports.md +250 -0
  159. package/dist/templates/default/apps/mobile/.agents/skills/react-native-best-practices/references/bundle-code-splitting.md +255 -0
  160. package/dist/templates/default/apps/mobile/.agents/skills/react-native-best-practices/references/bundle-hermes-mmap.md +167 -0
  161. package/dist/templates/default/apps/mobile/.agents/skills/react-native-best-practices/references/bundle-library-size.md +164 -0
  162. package/dist/templates/default/apps/mobile/.agents/skills/react-native-best-practices/references/bundle-native-assets.md +208 -0
  163. package/dist/templates/default/apps/mobile/.agents/skills/react-native-best-practices/references/bundle-r8-android.md +231 -0
  164. package/dist/templates/default/apps/mobile/.agents/skills/react-native-best-practices/references/bundle-tree-shaking.md +215 -0
  165. package/dist/templates/default/apps/mobile/.agents/skills/react-native-best-practices/references/images/bundle-treemap-source-map-explorer.png +0 -0
  166. package/dist/templates/default/apps/mobile/.agents/skills/react-native-best-practices/references/images/controlled-textinput-pingpong.png +0 -0
  167. package/dist/templates/default/apps/mobile/.agents/skills/react-native-best-practices/references/images/devtools-flamegraph.png +0 -0
  168. package/dist/templates/default/apps/mobile/.agents/skills/react-native-best-practices/references/images/emerge-xray-ios.png +0 -0
  169. package/dist/templates/default/apps/mobile/.agents/skills/react-native-best-practices/references/images/expo-atlas-treemap.png +0 -0
  170. package/dist/templates/default/apps/mobile/.agents/skills/react-native-best-practices/references/images/flashlight-flatlist-vs-flashlist.png +0 -0
  171. package/dist/templates/default/apps/mobile/.agents/skills/react-native-best-practices/references/images/fps-drop-graph.png +0 -0
  172. package/dist/templates/default/apps/mobile/.agents/skills/react-native-best-practices/references/images/memory-heap-snapshot.png +0 -0
  173. package/dist/templates/default/apps/mobile/.agents/skills/react-native-best-practices/references/images/tti-warm-start-diagram.png +0 -0
  174. package/dist/templates/default/apps/mobile/.agents/skills/react-native-best-practices/references/images/view-hierarchy-flattening.png +0 -0
  175. package/dist/templates/default/apps/mobile/.agents/skills/react-native-best-practices/references/images/xcode-instruments-templates.png +0 -0
  176. package/dist/templates/default/apps/mobile/.agents/skills/react-native-best-practices/references/images/xcode-thread-view.png +0 -0
  177. package/dist/templates/default/apps/mobile/.agents/skills/react-native-best-practices/references/js-animations-reanimated.md +273 -0
  178. package/dist/templates/default/apps/mobile/.agents/skills/react-native-best-practices/references/js-atomic-state.md +190 -0
  179. package/dist/templates/default/apps/mobile/.agents/skills/react-native-best-practices/references/js-bottomsheet.md +339 -0
  180. package/dist/templates/default/apps/mobile/.agents/skills/react-native-best-practices/references/js-concurrent-react.md +238 -0
  181. package/dist/templates/default/apps/mobile/.agents/skills/react-native-best-practices/references/js-lists-flatlist-flashlist.md +223 -0
  182. package/dist/templates/default/apps/mobile/.agents/skills/react-native-best-practices/references/js-measure-fps.md +178 -0
  183. package/dist/templates/default/apps/mobile/.agents/skills/react-native-best-practices/references/js-memory-leaks.md +168 -0
  184. package/dist/templates/default/apps/mobile/.agents/skills/react-native-best-practices/references/js-profile-react.md +138 -0
  185. package/dist/templates/default/apps/mobile/.agents/skills/react-native-best-practices/references/js-react-compiler.md +261 -0
  186. package/dist/templates/default/apps/mobile/.agents/skills/react-native-best-practices/references/js-uncontrolled-components.md +219 -0
  187. package/dist/templates/default/apps/mobile/.agents/skills/react-native-best-practices/references/native-android-16kb-alignment.md +114 -0
  188. package/dist/templates/default/apps/mobile/.agents/skills/react-native-best-practices/references/native-measure-tti.md +221 -0
  189. package/dist/templates/default/apps/mobile/.agents/skills/react-native-best-practices/references/native-memory-leaks.md +206 -0
  190. package/dist/templates/default/apps/mobile/.agents/skills/react-native-best-practices/references/native-memory-patterns.md +240 -0
  191. package/dist/templates/default/apps/mobile/.agents/skills/react-native-best-practices/references/native-platform-setup.md +112 -0
  192. package/dist/templates/default/apps/mobile/.agents/skills/react-native-best-practices/references/native-profiling.md +140 -0
  193. package/dist/templates/default/apps/mobile/.agents/skills/react-native-best-practices/references/native-sdks-over-polyfills.md +192 -0
  194. package/dist/templates/default/apps/mobile/.agents/skills/react-native-best-practices/references/native-threading-model.md +230 -0
  195. package/dist/templates/default/apps/mobile/.agents/skills/react-native-best-practices/references/native-turbo-modules.md +210 -0
  196. package/dist/templates/default/apps/mobile/.agents/skills/react-native-best-practices/references/native-view-flattening.md +180 -0
  197. package/dist/templates/default/apps/mobile/AGENTS.md +41 -0
  198. package/dist/templates/default/apps/mobile/app.json +38 -0
  199. package/dist/templates/default/apps/mobile/assets/expo.icon/Assets/expo-symbol 2.svg +3 -0
  200. package/dist/templates/default/apps/mobile/assets/expo.icon/Assets/grid.png +0 -0
  201. package/dist/templates/default/apps/mobile/assets/expo.icon/icon.json +40 -0
  202. package/dist/templates/default/apps/mobile/assets/images/android-icon-background.png +0 -0
  203. package/dist/templates/default/apps/mobile/assets/images/android-icon-foreground.png +0 -0
  204. package/dist/templates/default/apps/mobile/assets/images/android-icon-monochrome.png +0 -0
  205. package/dist/templates/default/apps/mobile/assets/images/icon.png +0 -0
  206. package/dist/templates/default/apps/mobile/assets/images/splash-icon.png +0 -0
  207. package/dist/templates/default/apps/mobile/eslint.config.js +10 -0
  208. package/dist/templates/default/apps/mobile/package.json +43 -1
  209. package/dist/templates/default/apps/mobile/skills-lock.json +185 -0
  210. package/dist/templates/default/apps/mobile/src/app/_layout.tsx +5 -0
  211. package/dist/templates/default/apps/mobile/src/app/index.tsx +17 -0
  212. package/dist/templates/default/apps/mobile/tsconfig.json +20 -0
  213. package/dist/templates/default/apps/web/.agents/skills/frontend-design/SKILL.md +71 -0
  214. package/dist/templates/default/apps/web/.agents/skills/web-design-guidelines/SKILL.md +39 -0
  215. package/dist/templates/default/apps/web/.env.example +3 -0
  216. package/dist/templates/default/apps/web/components.json +23 -0
  217. package/dist/templates/default/apps/web/eslint.config.ts +21 -0
  218. package/dist/templates/default/apps/web/package.json +39 -1
  219. package/dist/templates/default/apps/web/public/disposabl-logo.svg +8 -0
  220. package/dist/templates/default/apps/web/public/favicon.ico +0 -0
  221. package/dist/templates/default/apps/web/public/manifest.json +25 -0
  222. package/dist/templates/default/apps/web/skills-lock.json +17 -0
  223. package/dist/templates/default/apps/web/src/index.css +92 -0
  224. package/dist/templates/default/apps/web/src/routeTree.gen.ts +282 -0
  225. package/dist/templates/default/apps/web/src/router/__root.tsx +63 -0
  226. package/dist/templates/default/apps/web/src/router/_authenticated/dashboard.tsx +9 -0
  227. package/dist/templates/default/apps/web/src/router/_authenticated/todos/$id.tsx +27 -0
  228. package/dist/templates/default/apps/web/src/router/_authenticated/todos/index.tsx +33 -0
  229. package/dist/templates/default/apps/web/src/router/index.tsx +15 -0
  230. package/dist/templates/default/apps/web/src/router.tsx +20 -0
  231. package/dist/templates/default/apps/web/tsconfig.json +33 -0
  232. package/dist/templates/default/apps/web/tsr.config.json +6 -0
  233. package/dist/templates/default/apps/web/vite.config.ts +67 -0
  234. package/dist/templates/default/bun.lock +3932 -0
  235. package/dist/templates/default/bunfig.toml +5 -0
  236. package/dist/templates/default/disposabl.json +5 -0
  237. package/dist/templates/default/gitignore +9 -1
  238. package/dist/templates/default/package.json +29 -4
  239. package/dist/templates/default/packages/backend/.agents/skills/convex/SKILL.md +69 -0
  240. package/dist/templates/default/packages/backend/.agents/skills/convex-add/SKILL.md +26 -0
  241. package/dist/templates/default/packages/backend/.agents/skills/convex-advisor/SKILL.md +32 -0
  242. package/dist/templates/default/packages/backend/.agents/skills/convex-agent/SKILL.md +25 -0
  243. package/dist/templates/default/packages/backend/.agents/skills/convex-auth/SKILL.md +29 -0
  244. package/dist/templates/default/packages/backend/.agents/skills/convex-authz/SKILL.md +36 -0
  245. package/dist/templates/default/packages/backend/.agents/skills/convex-backup/SKILL.md +33 -0
  246. package/dist/templates/default/packages/backend/.agents/skills/convex-billing/SKILL.md +69 -0
  247. package/dist/templates/default/packages/backend/.agents/skills/convex-cost/SKILL.md +29 -0
  248. package/dist/templates/default/packages/backend/.agents/skills/convex-create-component/SKILL.md +325 -0
  249. package/dist/templates/default/packages/backend/.agents/skills/convex-create-component/agents/openai.yaml +14 -0
  250. package/dist/templates/default/packages/backend/.agents/skills/convex-create-component/assets/icon.svg +3 -0
  251. package/dist/templates/default/packages/backend/.agents/skills/convex-create-component/references/advanced-patterns.md +146 -0
  252. package/dist/templates/default/packages/backend/.agents/skills/convex-create-component/references/hybrid-components.md +38 -0
  253. package/dist/templates/default/packages/backend/.agents/skills/convex-create-component/references/local-components.md +39 -0
  254. package/dist/templates/default/packages/backend/.agents/skills/convex-create-component/references/packaged-components.md +54 -0
  255. package/dist/templates/default/packages/backend/.agents/skills/convex-crons/SKILL.md +23 -0
  256. package/dist/templates/default/packages/backend/.agents/skills/convex-deploy-guard/SKILL.md +29 -0
  257. package/dist/templates/default/packages/backend/.agents/skills/convex-design/SKILL.md +30 -0
  258. package/dist/templates/default/packages/backend/.agents/skills/convex-docs/SKILL.md +31 -0
  259. package/dist/templates/default/packages/backend/.agents/skills/convex-domains/SKILL.md +26 -0
  260. package/dist/templates/default/packages/backend/.agents/skills/convex-env/SKILL.md +24 -0
  261. package/dist/templates/default/packages/backend/.agents/skills/convex-expert/SKILL.md +38 -0
  262. package/dist/templates/default/packages/backend/.agents/skills/convex-explain-app/SKILL.md +29 -0
  263. package/dist/templates/default/packages/backend/.agents/skills/convex-improve-convex-plugin/SKILL.md +24 -0
  264. package/dist/templates/default/packages/backend/.agents/skills/convex-insights/SKILL.md +32 -0
  265. package/dist/templates/default/packages/backend/.agents/skills/convex-launch-readiness/SKILL.md +35 -0
  266. package/dist/templates/default/packages/backend/.agents/skills/convex-migrate/SKILL.md +23 -0
  267. package/dist/templates/default/packages/backend/.agents/skills/convex-migrate-rehearse/SKILL.md +31 -0
  268. package/dist/templates/default/packages/backend/.agents/skills/convex-monitor/SKILL.md +22 -0
  269. package/dist/templates/default/packages/backend/.agents/skills/convex-optimize/SKILL.md +26 -0
  270. package/dist/templates/default/packages/backend/.agents/skills/convex-quickstart/SKILL.md +29 -0
  271. package/dist/templates/default/packages/backend/.agents/skills/convex-quickstart/agents/openai.yaml +14 -0
  272. package/dist/templates/default/packages/backend/.agents/skills/convex-quickstart/assets/icon.svg +4 -0
  273. package/dist/templates/default/packages/backend/.agents/skills/convex-reviewer/SKILL.md +26 -0
  274. package/dist/templates/default/packages/backend/.agents/skills/convex-seed/SKILL.md +23 -0
  275. package/dist/templates/default/packages/backend/.agents/skills/convex-self-heal/SKILL.md +38 -0
  276. package/dist/templates/default/packages/backend/.agents/skills/convex-sentinel/SKILL.md +25 -0
  277. package/dist/templates/default/packages/backend/.agents/skills/convex-suggest/SKILL.md +27 -0
  278. package/dist/templates/default/packages/backend/.agents/skills/convex-test/SKILL.md +23 -0
  279. package/dist/templates/default/packages/backend/.agents/skills/convex-verify/SKILL.md +34 -0
  280. package/dist/templates/default/packages/backend/.prettierignore +4 -0
  281. package/dist/templates/default/packages/backend/AGENTS.md +18 -0
  282. package/dist/templates/default/packages/backend/CLAUDE.md +13 -0
  283. package/dist/templates/default/packages/backend/README.md +25 -0
  284. package/dist/templates/default/packages/backend/convex/_generated/ai/ai-files.state.json +6 -0
  285. package/dist/templates/default/packages/backend/convex/_generated/ai/guidelines.md +286 -0
  286. package/dist/templates/default/packages/backend/convex/_generated/api.d.ts +66 -0
  287. package/dist/templates/default/packages/backend/convex/_generated/api.js +23 -0
  288. package/dist/templates/default/packages/backend/convex/_generated/dataModel.d.ts +60 -0
  289. package/dist/templates/default/packages/backend/convex/_generated/server.d.ts +164 -0
  290. package/dist/templates/default/packages/backend/convex/_generated/server.js +101 -0
  291. package/dist/templates/default/packages/backend/convex/auth.config.ts +14 -0
  292. package/dist/templates/default/packages/backend/convex/auth.ts +15 -0
  293. package/dist/templates/default/packages/backend/convex/convex.config.ts +30 -0
  294. package/dist/templates/default/packages/backend/convex/http.ts +5 -0
  295. package/dist/templates/default/packages/backend/convex/mcp.ts +8 -0
  296. package/dist/templates/default/packages/backend/convex/schema.ts +10 -0
  297. package/dist/templates/default/packages/backend/convex/todos/index.ts +26 -0
  298. package/dist/templates/default/packages/backend/convex/todos/internal.ts +43 -0
  299. package/dist/templates/default/packages/backend/convex/tsconfig.json +27 -0
  300. package/dist/templates/default/packages/backend/convex/users.ts +20 -0
  301. package/dist/templates/default/packages/backend/eslint.config.mjs +62 -0
  302. package/dist/templates/default/packages/backend/package.json +36 -0
  303. package/dist/templates/default/packages/backend/skills-lock.json +203 -0
  304. package/dist/templates/default/packages/disposabl-kit/client/components/ui/accordion.tsx +77 -0
  305. package/dist/templates/default/packages/disposabl-kit/client/components/ui/alert-dialog.tsx +185 -0
  306. package/dist/templates/default/packages/disposabl-kit/client/components/ui/alert.tsx +75 -0
  307. package/dist/templates/default/packages/disposabl-kit/client/components/ui/aspect-ratio.tsx +22 -0
  308. package/dist/templates/default/packages/disposabl-kit/client/components/ui/attachment.tsx +207 -0
  309. package/dist/templates/default/packages/disposabl-kit/client/components/ui/avatar.tsx +106 -0
  310. package/dist/templates/default/packages/disposabl-kit/client/components/ui/badge.tsx +51 -0
  311. package/dist/templates/default/packages/disposabl-kit/client/components/ui/breadcrumb.tsx +121 -0
  312. package/dist/templates/default/packages/disposabl-kit/client/components/ui/bubble.tsx +127 -0
  313. package/dist/templates/default/packages/disposabl-kit/client/components/ui/button-group.tsx +87 -0
  314. package/dist/templates/default/packages/disposabl-kit/client/components/ui/button.tsx +57 -0
  315. package/dist/templates/default/packages/disposabl-kit/client/components/ui/calendar.tsx +241 -0
  316. package/dist/templates/default/packages/disposabl-kit/client/components/ui/card.tsx +102 -0
  317. package/dist/templates/default/packages/disposabl-kit/client/components/ui/carousel.tsx +239 -0
  318. package/dist/templates/default/packages/disposabl-kit/client/components/ui/chart.tsx +368 -0
  319. package/dist/templates/default/packages/disposabl-kit/client/components/ui/checkbox.tsx +27 -0
  320. package/dist/templates/default/packages/disposabl-kit/client/components/ui/code-block.tsx +243 -0
  321. package/dist/templates/default/packages/disposabl-kit/client/components/ui/collapsible.tsx +19 -0
  322. package/dist/templates/default/packages/disposabl-kit/client/components/ui/combobox.tsx +300 -0
  323. package/dist/templates/default/packages/disposabl-kit/client/components/ui/command.tsx +194 -0
  324. package/dist/templates/default/packages/disposabl-kit/client/components/ui/context-menu.tsx +271 -0
  325. package/dist/templates/default/packages/disposabl-kit/client/components/ui/dialog.tsx +156 -0
  326. package/dist/templates/default/packages/disposabl-kit/client/components/ui/direction.tsx +4 -0
  327. package/dist/templates/default/packages/disposabl-kit/client/components/ui/drawer.tsx +224 -0
  328. package/dist/templates/default/packages/disposabl-kit/client/components/ui/dropdown-menu.tsx +269 -0
  329. package/dist/templates/default/packages/disposabl-kit/client/components/ui/empty.tsx +103 -0
  330. package/dist/templates/default/packages/disposabl-kit/client/components/ui/field.tsx +236 -0
  331. package/dist/templates/default/packages/disposabl-kit/client/components/ui/hover-card.tsx +50 -0
  332. package/dist/templates/default/packages/disposabl-kit/client/components/ui/input-group.tsx +158 -0
  333. package/dist/templates/default/packages/disposabl-kit/client/components/ui/input-otp.tsx +83 -0
  334. package/dist/templates/default/packages/disposabl-kit/client/components/ui/input.tsx +19 -0
  335. package/dist/templates/default/packages/disposabl-kit/client/components/ui/item.tsx +201 -0
  336. package/dist/templates/default/packages/disposabl-kit/client/components/ui/kbd.tsx +26 -0
  337. package/dist/templates/default/packages/disposabl-kit/client/components/ui/label.tsx +19 -0
  338. package/dist/templates/default/packages/disposabl-kit/client/components/ui/marker.tsx +70 -0
  339. package/dist/templates/default/packages/disposabl-kit/client/components/ui/menubar.tsx +284 -0
  340. package/dist/templates/default/packages/disposabl-kit/client/components/ui/message-scroller.tsx +128 -0
  341. package/dist/templates/default/packages/disposabl-kit/client/components/ui/message.tsx +91 -0
  342. package/dist/templates/default/packages/disposabl-kit/client/components/ui/native-select.tsx +64 -0
  343. package/dist/templates/default/packages/disposabl-kit/client/components/ui/navigation-menu.tsx +170 -0
  344. package/dist/templates/default/packages/disposabl-kit/client/components/ui/pagination.tsx +133 -0
  345. package/dist/templates/default/packages/disposabl-kit/client/components/ui/popover.tsx +87 -0
  346. package/dist/templates/default/packages/disposabl-kit/client/components/ui/progress.tsx +82 -0
  347. package/dist/templates/default/packages/disposabl-kit/client/components/ui/questionnaire.tsx +330 -0
  348. package/dist/templates/default/packages/disposabl-kit/client/components/ui/radio-group.tsx +35 -0
  349. package/dist/templates/default/packages/disposabl-kit/client/components/ui/resizable.tsx +49 -0
  350. package/dist/templates/default/packages/disposabl-kit/client/components/ui/scroll-area.tsx +51 -0
  351. package/dist/templates/default/packages/disposabl-kit/client/components/ui/select.tsx +201 -0
  352. package/dist/templates/default/packages/disposabl-kit/client/components/ui/separator.tsx +22 -0
  353. package/dist/templates/default/packages/disposabl-kit/client/components/ui/sheet.tsx +132 -0
  354. package/dist/templates/default/packages/disposabl-kit/client/components/ui/sidebar.tsx +723 -0
  355. package/dist/templates/default/packages/disposabl-kit/client/components/ui/skeleton.tsx +13 -0
  356. package/dist/templates/default/packages/disposabl-kit/client/components/ui/slider.tsx +51 -0
  357. package/dist/templates/default/packages/disposabl-kit/client/components/ui/spinner.tsx +16 -0
  358. package/dist/templates/default/packages/disposabl-kit/client/components/ui/switch.tsx +31 -0
  359. package/dist/templates/default/packages/disposabl-kit/client/components/ui/table.tsx +113 -0
  360. package/dist/templates/default/packages/disposabl-kit/client/components/ui/tabs.tsx +81 -0
  361. package/dist/templates/default/packages/disposabl-kit/client/components/ui/textarea.tsx +17 -0
  362. package/dist/templates/default/packages/disposabl-kit/client/components/ui/toast.tsx +229 -0
  363. package/dist/templates/default/packages/disposabl-kit/client/components/ui/toggle-group.tsx +87 -0
  364. package/dist/templates/default/packages/disposabl-kit/client/components/ui/toggle.tsx +42 -0
  365. package/dist/templates/default/packages/disposabl-kit/client/components/ui/tooltip.tsx +65 -0
  366. package/dist/templates/default/packages/disposabl-kit/client/components/ui/trace.tsx +161 -0
  367. package/dist/templates/default/packages/disposabl-kit/client/hooks/use-mobile.ts +21 -0
  368. package/dist/templates/default/packages/disposabl-kit/client/lib/prerender.ts +89 -0
  369. package/dist/templates/default/packages/disposabl-kit/client/lib/return-to.ts +12 -0
  370. package/dist/templates/default/packages/disposabl-kit/client/lib/utils.ts +1 -0
  371. package/dist/templates/default/packages/disposabl-kit/client/routes/_auth-pages/login.tsx +114 -0
  372. package/dist/templates/default/packages/disposabl-kit/client/routes/_auth-pages/signUp.tsx +120 -0
  373. package/dist/templates/default/packages/disposabl-kit/client/routes/_authenticated/route.tsx +38 -0
  374. package/dist/templates/default/packages/disposabl-kit/client/routes/consent.tsx +137 -0
  375. package/dist/templates/default/packages/disposabl-kit/client/routes/route.tsx +30 -0
  376. package/dist/templates/default/packages/disposabl-kit/client/styles/globals.css +60 -0
  377. package/dist/templates/default/packages/disposabl-kit/client/vite.config.ts +32 -0
  378. package/dist/templates/default/packages/disposabl-kit/components.json +23 -0
  379. package/dist/templates/default/packages/disposabl-kit/eslint.config.js +21 -0
  380. package/dist/templates/default/packages/disposabl-kit/package.json +60 -0
  381. package/dist/templates/default/packages/disposabl-kit/server/http.ts +86 -0
  382. package/dist/templates/default/packages/disposabl-kit/server/lib/functions.ts +40 -0
  383. package/dist/templates/default/packages/disposabl-kit/server/lib/platforms.ts +20 -0
  384. package/dist/templates/default/packages/disposabl-kit/server/lib/static-routes.ts +56 -0
  385. package/dist/templates/default/packages/disposabl-kit/tsconfig.json +17 -0
  386. package/dist/templates/default/patches/@convex-dev%2Fauth@2.0.0-beta.0.patch +310 -0
  387. package/dist/templates/default/patches/@convex-dev%2Fstatic-hosting@0.2.1.patch +187 -0
  388. package/dist/templates/default/tsconfig.json +9 -0
  389. package/dist/templates/default/turbo.json +51 -0
  390. package/package.json +1 -2
@@ -0,0 +1,231 @@
1
+ # Native Controls
2
+
3
+ Native iOS controls provide built-in haptics, accessibility, and platform-appropriate styling.
4
+
5
+ > **Prefer `@expo/ui` for these controls.** Its `Slider`, `Switch`, `DateTimePicker`, `Menu`, and segmented pickers render as real SwiftUI / Jetpack Compose and follow platform design conventions automatically — recommended over the React Native controls below. See the **`expo-ui`** skill; use the React Native controls below as a fallback when you're not using `@expo/ui`.
6
+
7
+ ## Switch
8
+
9
+ Use for binary on/off settings. Has built-in haptics.
10
+
11
+ ```tsx
12
+ import { Switch } from "react-native";
13
+ import { useState } from "react";
14
+
15
+ const [enabled, setEnabled] = useState(false);
16
+
17
+ <Switch value={enabled} onValueChange={setEnabled} />;
18
+ ```
19
+
20
+ Don't recolor the Switch — native styling adapts to dark mode automatically.
21
+
22
+ ## Segmented Control
23
+
24
+ Use for non-navigational tabs or mode selection. Avoid changing default colors.
25
+
26
+ ```tsx
27
+ import SegmentedControl from "@react-native-segmented-control/segmented-control";
28
+ import { useState } from "react";
29
+
30
+ const [index, setIndex] = useState(0);
31
+
32
+ <SegmentedControl
33
+ values={["All", "Active", "Done"]}
34
+ selectedIndex={index}
35
+ onChange={({ nativeEvent }) => setIndex(nativeEvent.selectedSegmentIndex)}
36
+ />;
37
+ ```
38
+
39
+ ### Rules
40
+
41
+ - Maximum 4 options — use a picker for more
42
+ - Keep labels short (1-2 words)
43
+ - Avoid custom colors — native styling adapts to dark mode
44
+
45
+ ### With Icons (iOS 14+)
46
+
47
+ ```tsx
48
+ <SegmentedControl
49
+ values={[
50
+ { label: "List", icon: "list.bullet" },
51
+ { label: "Grid", icon: "square.grid.2x2" },
52
+ ]}
53
+ selectedIndex={index}
54
+ onChange={({ nativeEvent }) => setIndex(nativeEvent.selectedSegmentIndex)}
55
+ />
56
+ ```
57
+
58
+ ## Slider
59
+
60
+ Continuous value selection.
61
+
62
+ ```tsx
63
+ import Slider from "@react-native-community/slider";
64
+ import { useState } from "react";
65
+
66
+ const [value, setValue] = useState(0.5);
67
+
68
+ <Slider
69
+ value={value}
70
+ onValueChange={setValue}
71
+ minimumValue={0}
72
+ maximumValue={1}
73
+ />;
74
+ ```
75
+
76
+ ### Discrete Steps
77
+
78
+ ```tsx
79
+ <Slider
80
+ value={value}
81
+ onValueChange={setValue}
82
+ minimumValue={0}
83
+ maximumValue={10}
84
+ step={1}
85
+ />
86
+ ```
87
+
88
+ ## Date/Time Picker
89
+
90
+ Compact pickers with popovers. Has built-in haptics.
91
+
92
+ ```tsx
93
+ import DateTimePicker from "@react-native-community/datetimepicker";
94
+ import { useState } from "react";
95
+
96
+ const [date, setDate] = useState(new Date());
97
+
98
+ <DateTimePicker
99
+ value={date}
100
+ onChange={(event, selectedDate) => {
101
+ if (selectedDate) setDate(selectedDate);
102
+ }}
103
+ mode="datetime"
104
+ />;
105
+ ```
106
+
107
+ ### Modes
108
+
109
+ - `date` — Date only
110
+ - `time` — Time only
111
+ - `datetime` — Date and time
112
+
113
+ ### Display Styles
114
+
115
+ ```tsx
116
+ // Compact inline (default)
117
+ <DateTimePicker value={date} mode="date" />
118
+
119
+ // Spinner wheel
120
+ <DateTimePicker
121
+ value={date}
122
+ mode="date"
123
+ display="spinner"
124
+ style={{ width: 200, height: 150 }}
125
+ />
126
+
127
+ // Full calendar
128
+ <DateTimePicker value={date} mode="date" display="inline" />
129
+ ```
130
+
131
+ ### Time Intervals
132
+
133
+ ```tsx
134
+ <DateTimePicker
135
+ value={date}
136
+ mode="time"
137
+ minuteInterval={15}
138
+ />
139
+ ```
140
+
141
+ ### Min/Max Dates
142
+
143
+ ```tsx
144
+ <DateTimePicker
145
+ value={date}
146
+ mode="date"
147
+ minimumDate={new Date(2020, 0, 1)}
148
+ maximumDate={new Date(2030, 11, 31)}
149
+ />
150
+ ```
151
+
152
+ ## TextInput
153
+
154
+ Native text input with various keyboard types.
155
+
156
+ ```tsx
157
+ import { TextInput } from "react-native";
158
+ import { colors } from "@/theme/colors";
159
+
160
+ <TextInput
161
+ placeholder="Enter text..."
162
+ placeholderTextColor={colors.secondaryLabel as string}
163
+ style={{
164
+ padding: 12,
165
+ fontSize: 16,
166
+ borderRadius: 8,
167
+ backgroundColor: colors.secondarySystemBackground,
168
+ }}
169
+ />
170
+ ```
171
+
172
+ ### Keyboard Types
173
+
174
+ ```tsx
175
+ // Email
176
+ <TextInput keyboardType="email-address" autoCapitalize="none" />
177
+
178
+ // Phone
179
+ <TextInput keyboardType="phone-pad" />
180
+
181
+ // Number
182
+ <TextInput keyboardType="numeric" />
183
+
184
+ // Password
185
+ <TextInput secureTextEntry />
186
+
187
+ // Search
188
+ <TextInput
189
+ returnKeyType="search"
190
+ enablesReturnKeyAutomatically
191
+ />
192
+ ```
193
+
194
+ ### Multiline
195
+
196
+ ```tsx
197
+ <TextInput
198
+ multiline
199
+ numberOfLines={4}
200
+ textAlignVertical="top"
201
+ style={{ minHeight: 100 }}
202
+ />
203
+ ```
204
+
205
+ ## Picker (Wheel)
206
+
207
+ For selection from many options (5+ items).
208
+
209
+ ```tsx
210
+ import { Picker } from "@react-native-picker/picker";
211
+ import { useState } from "react";
212
+
213
+ const [selected, setSelected] = useState("js");
214
+
215
+ <Picker selectedValue={selected} onValueChange={setSelected}>
216
+ <Picker.Item label="JavaScript" value="js" />
217
+ <Picker.Item label="TypeScript" value="ts" />
218
+ <Picker.Item label="Python" value="py" />
219
+ <Picker.Item label="Go" value="go" />
220
+ </Picker>;
221
+ ```
222
+
223
+ ## Best Practices
224
+
225
+ - **Haptics**: Switch and DateTimePicker have built-in haptics — don't add extra
226
+ - **No native Stepper**: React Native has no `Stepper` component — compose increment/decrement from two Buttons or a numeric TextInput
227
+ - **Accessibility**: Native controls have proper accessibility labels by default
228
+ - **Dark Mode**: Avoid custom colors — native styling adapts automatically
229
+ - **Spacing**: Use consistent padding around controls (12-16pt)
230
+ - **Labels**: Place labels above or to the left of controls
231
+ - **Grouping**: Group related controls in sections with headers
@@ -0,0 +1,106 @@
1
+ # CSS Gradients
2
+
3
+ > **New Architecture Only**: CSS gradients require React Native's New Architecture (Fabric). They are not available in the old architecture or Expo Go.
4
+
5
+ Use CSS gradients with the `experimental_backgroundImage` style property.
6
+
7
+ ## Linear Gradients
8
+
9
+ ```tsx
10
+ // Top to bottom
11
+ <View style={{
12
+ experimental_backgroundImage: 'linear-gradient(to bottom, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 1) 100%)'
13
+ }} />
14
+
15
+ // Left to right
16
+ <View style={{
17
+ experimental_backgroundImage: 'linear-gradient(to right, #ff0000 0%, #0000ff 100%)'
18
+ }} />
19
+
20
+ // Diagonal
21
+ <View style={{
22
+ experimental_backgroundImage: 'linear-gradient(45deg, #ff0000 0%, #00ff00 50%, #0000ff 100%)'
23
+ }} />
24
+
25
+ // Using degrees
26
+ <View style={{
27
+ experimental_backgroundImage: 'linear-gradient(135deg, transparent 0%, black 100%)'
28
+ }} />
29
+ ```
30
+
31
+ ## Radial Gradients
32
+
33
+ ```tsx
34
+ // Circle at center
35
+ <View style={{
36
+ experimental_backgroundImage: 'radial-gradient(circle at center, rgba(255, 0, 0, 1) 0%, rgba(0, 0, 255, 1) 100%)'
37
+ }} />
38
+
39
+ // Ellipse
40
+ <View style={{
41
+ experimental_backgroundImage: 'radial-gradient(ellipse at center, #fff 0%, #000 100%)'
42
+ }} />
43
+
44
+ // Positioned
45
+ <View style={{
46
+ experimental_backgroundImage: 'radial-gradient(circle at top left, #ff0000 0%, transparent 70%)'
47
+ }} />
48
+ ```
49
+
50
+ ## Multiple Gradients
51
+
52
+ Stack multiple gradients by comma-separating them:
53
+
54
+ ```tsx
55
+ <View style={{
56
+ experimental_backgroundImage: `
57
+ linear-gradient(to bottom, transparent 0%, black 100%),
58
+ radial-gradient(circle at top right, rgba(255, 0, 0, 0.5) 0%, transparent 50%)
59
+ `
60
+ }} />
61
+ ```
62
+
63
+ ## Common Patterns
64
+
65
+ ### Overlay on Image
66
+
67
+ ```tsx
68
+ <View style={{ position: 'relative' }}>
69
+ <Image source={{ uri: '...' }} style={{ width: '100%', height: 200 }} />
70
+ <View style={{
71
+ position: 'absolute',
72
+ inset: 0,
73
+ experimental_backgroundImage: 'linear-gradient(to top, rgba(0, 0, 0, 0.8) 0%, transparent 50%)'
74
+ }} />
75
+ </View>
76
+ ```
77
+
78
+ ### Frosted Glass Effect
79
+
80
+ ```tsx
81
+ <View style={{
82
+ experimental_backgroundImage: 'linear-gradient(135deg, rgba(255, 255, 255, 0.1) 0%, rgba(255, 255, 255, 0.05) 100%)',
83
+ backdropFilter: 'blur(10px)',
84
+ }} />
85
+ ```
86
+
87
+ ### Button Gradient
88
+
89
+ ```tsx
90
+ <Pressable style={{
91
+ experimental_backgroundImage: 'linear-gradient(to bottom, #4CAF50 0%, #388E3C 100%)',
92
+ padding: 16,
93
+ borderRadius: 8,
94
+ }}>
95
+ <Text style={{ color: 'white', textAlign: 'center' }}>Submit</Text>
96
+ </Pressable>
97
+ ```
98
+
99
+ ## Important Notes
100
+
101
+ - Do NOT use `expo-linear-gradient` — use CSS gradients instead
102
+ - Gradients are strings, not objects
103
+ - Use `rgba()` for transparency, or `transparent` keyword
104
+ - Color stops use percentages (0%, 50%, 100%)
105
+ - Direction keywords: `to top`, `to bottom`, `to left`, `to right`, `to top left`, etc.
106
+ - Degree values: `45deg`, `90deg`, `135deg`, etc.
@@ -0,0 +1,232 @@
1
+ # Icons (SF Symbols)
2
+
3
+ Use SF Symbols on iOS for native feel. SF Symbols are an Apple asset and never render on Android - every icon needs a Material counterpart (see "Android: Material Icons" below). Never use FontAwesome or Ionicons on either platform, and never emoji as icons.
4
+
5
+ ## Basic Usage
6
+
7
+ ```tsx
8
+ import { SymbolView } from "expo-symbols";
9
+ import { colors } from "@/theme/colors";
10
+
11
+ <SymbolView
12
+ tintColor={colors.label}
13
+ resizeMode="scaleAspectFit"
14
+ name="square.and.arrow.down"
15
+ style={{ width: 16, height: 16 }}
16
+ />;
17
+ ```
18
+
19
+ ## Props
20
+
21
+ ```tsx
22
+ <SymbolView
23
+ name="star.fill" // SF Symbol name (required)
24
+ tintColor={colors.label} // Icon color
25
+ size={24} // Shorthand for width/height
26
+ resizeMode="scaleAspectFit" // How to scale
27
+ weight="regular" // thin | ultraLight | light | regular | medium | semibold | bold | heavy | black
28
+ scale="medium" // small | medium | large
29
+ style={{ width: 16, height: 16 }} // Standard style props
30
+ />
31
+ ```
32
+
33
+ ## Common Icons
34
+
35
+ ### Navigation & Actions
36
+ - `house.fill` - home
37
+ - `gear` - settings
38
+ - `magnifyingglass` - search
39
+ - `plus` - add
40
+ - `xmark` - close
41
+ - `chevron.left` - back
42
+ - `chevron.right` - forward
43
+ - `arrow.left` - back arrow
44
+ - `arrow.right` - forward arrow
45
+
46
+ ### Media
47
+ - `play.fill` - play
48
+ - `pause.fill` - pause
49
+ - `stop.fill` - stop
50
+ - `backward.fill` - rewind
51
+ - `forward.fill` - fast forward
52
+ - `speaker.wave.2.fill` - volume
53
+ - `speaker.slash.fill` - mute
54
+
55
+ ### Camera
56
+ - `camera` - camera
57
+ - `camera.fill` - camera filled
58
+ - `arrow.triangle.2.circlepath` - flip camera
59
+ - `photo` - gallery/photos
60
+ - `bolt` - flash
61
+ - `bolt.slash` - flash off
62
+
63
+ ### Communication
64
+ - `message` - message
65
+ - `message.fill` - message filled
66
+ - `envelope` - email
67
+ - `envelope.fill` - email filled
68
+ - `phone` - phone
69
+ - `phone.fill` - phone filled
70
+ - `video` - video call
71
+ - `video.fill` - video call filled
72
+
73
+ ### Social
74
+ - `heart` - like
75
+ - `heart.fill` - liked
76
+ - `star` - favorite
77
+ - `star.fill` - favorited
78
+ - `hand.thumbsup` - thumbs up
79
+ - `hand.thumbsdown` - thumbs down
80
+ - `person` - profile
81
+ - `person.fill` - profile filled
82
+ - `person.2` - people
83
+ - `person.2.fill` - people filled
84
+
85
+ ### Content Actions
86
+ - `square.and.arrow.up` - share
87
+ - `square.and.arrow.down` - download
88
+ - `doc.on.doc` - copy
89
+ - `trash` - delete
90
+ - `pencil` - edit
91
+ - `folder` - folder
92
+ - `folder.fill` - folder filled
93
+ - `bookmark` - bookmark
94
+ - `bookmark.fill` - bookmarked
95
+
96
+ ### Status & Feedback
97
+ - `checkmark` - success/done
98
+ - `checkmark.circle.fill` - completed
99
+ - `xmark.circle.fill` - error/failed
100
+ - `exclamationmark.triangle` - warning
101
+ - `info.circle` - info
102
+ - `questionmark.circle` - help
103
+ - `bell` - notification
104
+ - `bell.fill` - notification filled
105
+
106
+ ### Misc
107
+ - `ellipsis` - more options
108
+ - `ellipsis.circle` - more in circle
109
+ - `line.3.horizontal` - menu/hamburger
110
+ - `slider.horizontal.3` - filters
111
+ - `arrow.clockwise` - refresh
112
+ - `location` - location
113
+ - `location.fill` - location filled
114
+ - `map` - map
115
+ - `mappin` - pin
116
+ - `clock` - time
117
+ - `calendar` - calendar
118
+ - `link` - link
119
+ - `nosign` - block/prohibited
120
+
121
+ ## Animated Symbols
122
+
123
+ ```tsx
124
+ <SymbolView
125
+ name="checkmark.circle"
126
+ animationSpec={{
127
+ effect: {
128
+ type: "bounce",
129
+ direction: "up",
130
+ },
131
+ }}
132
+ />
133
+ ```
134
+
135
+ ### Animation Effects
136
+
137
+ - `bounce` - Bouncy animation
138
+ - `pulse` - Pulsing effect
139
+ - `variableColor` - Color cycling
140
+ - `scale` - Scale animation
141
+
142
+ ```tsx
143
+ // Bounce with direction
144
+ animationSpec={{
145
+ effect: { type: "bounce", direction: "up" } // up | down
146
+ }}
147
+
148
+ // Pulse
149
+ animationSpec={{
150
+ effect: { type: "pulse" }
151
+ }}
152
+
153
+ // Variable color (multicolor symbols)
154
+ animationSpec={{
155
+ effect: {
156
+ type: "variableColor",
157
+ cumulative: true,
158
+ reversing: true
159
+ }
160
+ }}
161
+ ```
162
+
163
+ ## Symbol Weights
164
+
165
+ ```tsx
166
+ // Lighter weights
167
+ <SymbolView name="star" weight="ultraLight" />
168
+ <SymbolView name="star" weight="thin" />
169
+ <SymbolView name="star" weight="light" />
170
+
171
+ // Default
172
+ <SymbolView name="star" weight="regular" />
173
+
174
+ // Heavier weights
175
+ <SymbolView name="star" weight="medium" />
176
+ <SymbolView name="star" weight="semibold" />
177
+ <SymbolView name="star" weight="bold" />
178
+ <SymbolView name="star" weight="heavy" />
179
+ <SymbolView name="star" weight="black" />
180
+ ```
181
+
182
+ ## Symbol Scales
183
+
184
+ ```tsx
185
+ <SymbolView name="star" scale="small" />
186
+ <SymbolView name="star" scale="medium" /> // default
187
+ <SymbolView name="star" scale="large" />
188
+ ```
189
+
190
+ ## Multicolor Symbols
191
+
192
+ Some symbols support multiple colors:
193
+
194
+ ```tsx
195
+ <SymbolView
196
+ name="cloud.sun.rain.fill"
197
+ type="multicolor"
198
+ />
199
+ ```
200
+
201
+ ## Android: Material Icons
202
+
203
+ On Android an SF Symbol source renders nothing - an app that ships SF-only iconography ships blank icons. Give every icon a Material source:
204
+
205
+ - **Tab bars**: pass `md` (Material Symbol name) beside `sf` on NativeTabs triggers - `<NativeTabs.Trigger.Icon sf="gear" md="settings" />` (SDK 55+, see the `expo-router` skill).
206
+ - **In screens**: `@expo/vector-icons` Material families, gated by platform:
207
+
208
+ ```tsx
209
+ import MaterialIcons from "@expo/vector-icons/MaterialIcons";
210
+
211
+ process.env.EXPO_OS === "ios" ? (
212
+ <SymbolView name="gear" tintColor={colors.label} style={{ width: 24, height: 24 }} />
213
+ ) : (
214
+ <MaterialIcons name="settings" size={24} color={colors.label} />
215
+ );
216
+ ```
217
+
218
+ One icon family per platform - never a mixed set, never SF names on Android or Material glyphs on iOS.
219
+
220
+ ## Finding Symbol Names
221
+
222
+ 1. Use the SF Symbols app on macOS (free from Apple)
223
+ 2. Search at https://developer.apple.com/sf-symbols/
224
+ 3. Symbol names use dot notation: `square.and.arrow.up`
225
+
226
+ ## Best Practices
227
+
228
+ - On iOS, always use SF Symbols over vector icon libraries; on Android, use Material icons (see above)
229
+ - Match symbol weight to nearby text weight
230
+ - Use `.fill` variants for selected/active states
231
+ - Use the cross-platform `colors` helper (see SKILL.md "Colors") for tint to support dark mode
232
+ - Keep icons at consistent sizes (16, 20, 24, 32)