@codyswann/lisa 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (322) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +867 -0
  3. package/all/copy-overwrite/.claude/README.md +205 -0
  4. package/all/copy-overwrite/.claude/agents/agent-architect.md +311 -0
  5. package/all/copy-overwrite/.claude/agents/codebase-analyzer.md +146 -0
  6. package/all/copy-overwrite/.claude/agents/codebase-locator.md +125 -0
  7. package/all/copy-overwrite/.claude/agents/codebase-pattern-finder.md +237 -0
  8. package/all/copy-overwrite/.claude/agents/git-history-analyzer.md +183 -0
  9. package/all/copy-overwrite/.claude/agents/hooks-expert.md +74 -0
  10. package/all/copy-overwrite/.claude/agents/skill-evaluator.md +246 -0
  11. package/all/copy-overwrite/.claude/agents/slash-command-architect.md +87 -0
  12. package/all/copy-overwrite/.claude/agents/web-search-researcher.md +112 -0
  13. package/all/copy-overwrite/.claude/commands/git/commit-and-submit-pr.md +8 -0
  14. package/all/copy-overwrite/.claude/commands/git/commit.md +44 -0
  15. package/all/copy-overwrite/.claude/commands/git/prune.md +34 -0
  16. package/all/copy-overwrite/.claude/commands/git/submit-pr.md +50 -0
  17. package/all/copy-overwrite/.claude/commands/jira/create.md +50 -0
  18. package/all/copy-overwrite/.claude/commands/jira/verify.md +34 -0
  19. package/all/copy-overwrite/.claude/commands/project/archive.md +8 -0
  20. package/all/copy-overwrite/.claude/commands/project/bootstrap.md +49 -0
  21. package/all/copy-overwrite/.claude/commands/project/complete-task.md +7 -0
  22. package/all/copy-overwrite/.claude/commands/project/debrief.md +65 -0
  23. package/all/copy-overwrite/.claude/commands/project/execute.md +94 -0
  24. package/all/copy-overwrite/.claude/commands/project/implement.md +42 -0
  25. package/all/copy-overwrite/.claude/commands/project/local-code-review.md +88 -0
  26. package/all/copy-overwrite/.claude/commands/project/lower-code-complexity.md +74 -0
  27. package/all/copy-overwrite/.claude/commands/project/plan.md +314 -0
  28. package/all/copy-overwrite/.claude/commands/project/research.md +248 -0
  29. package/all/copy-overwrite/.claude/commands/project/review.md +63 -0
  30. package/all/copy-overwrite/.claude/commands/project/setup.md +19 -0
  31. package/all/copy-overwrite/.claude/commands/project/verify.md +38 -0
  32. package/all/copy-overwrite/.claude/commands/pull-request/review.md +12 -0
  33. package/all/copy-overwrite/.claude/commands/rules/format-md.md +72 -0
  34. package/all/copy-overwrite/.claude/commands/sonarqube/check.md +6 -0
  35. package/all/copy-overwrite/.claude/commands/sonarqube/fix.md +3 -0
  36. package/all/copy-overwrite/.claude/hooks/README.md +301 -0
  37. package/all/copy-overwrite/.claude/hooks/notify-ntfy.sh +181 -0
  38. package/all/copy-overwrite/.claude/settings.json +41 -0
  39. package/all/copy-overwrite/.claude/settings.local.json.example +14 -0
  40. package/all/copy-overwrite/.claude/skills/coding-philosophy/SKILL.md +405 -0
  41. package/all/copy-overwrite/.claude/skills/coding-philosophy/references/function-structure.md +416 -0
  42. package/all/copy-overwrite/.claude/skills/coding-philosophy/references/immutable-patterns.md +316 -0
  43. package/all/copy-overwrite/.claude/skills/prompt-complexity-scorer/SKILL.md +118 -0
  44. package/all/copy-overwrite/.claude/skills/skill-creator/LICENSE.txt +202 -0
  45. package/all/copy-overwrite/.claude/skills/skill-creator/SKILL.md +210 -0
  46. package/all/copy-overwrite/.claude/skills/skill-creator/scripts/__pycache__/quick_validate.cpython-312.pyc +0 -0
  47. package/all/copy-overwrite/.claude/skills/skill-creator/scripts/init_skill.py +303 -0
  48. package/all/copy-overwrite/.claude/skills/skill-creator/scripts/package_skill.py +110 -0
  49. package/all/copy-overwrite/.claude/skills/skill-creator/scripts/quick_validate.py +65 -0
  50. package/all/copy-overwrite/CLAUDE.md +77 -0
  51. package/all/copy-overwrite/HUMAN.md +17 -0
  52. package/all/copy-overwrite/specs/.keep +0 -0
  53. package/all/create-only/PROJECT_RULES.md +0 -0
  54. package/cdk/merge/package.json +20 -0
  55. package/dist/cli/index.d.ts +7 -0
  56. package/dist/cli/index.d.ts.map +1 -0
  57. package/dist/cli/index.js +107 -0
  58. package/dist/cli/index.js.map +1 -0
  59. package/dist/cli/prompts.d.ts +45 -0
  60. package/dist/cli/prompts.d.ts.map +1 -0
  61. package/dist/cli/prompts.js +58 -0
  62. package/dist/cli/prompts.js.map +1 -0
  63. package/dist/core/config.d.ts +73 -0
  64. package/dist/core/config.d.ts.map +1 -0
  65. package/dist/core/config.js +36 -0
  66. package/dist/core/config.js.map +1 -0
  67. package/dist/core/index.d.ts +4 -0
  68. package/dist/core/index.d.ts.map +1 -0
  69. package/dist/core/index.js +4 -0
  70. package/dist/core/index.js.map +1 -0
  71. package/dist/core/lisa.d.ts +81 -0
  72. package/dist/core/lisa.d.ts.map +1 -0
  73. package/dist/core/lisa.js +459 -0
  74. package/dist/core/lisa.js.map +1 -0
  75. package/dist/core/manifest.d.ts +58 -0
  76. package/dist/core/manifest.d.ts.map +1 -0
  77. package/dist/core/manifest.js +104 -0
  78. package/dist/core/manifest.js.map +1 -0
  79. package/dist/detection/detector.interface.d.ts +15 -0
  80. package/dist/detection/detector.interface.d.ts.map +1 -0
  81. package/dist/detection/detector.interface.js +2 -0
  82. package/dist/detection/detector.interface.js.map +1 -0
  83. package/dist/detection/detectors/cdk.d.ts +10 -0
  84. package/dist/detection/detectors/cdk.d.ts.map +1 -0
  85. package/dist/detection/detectors/cdk.js +34 -0
  86. package/dist/detection/detectors/cdk.js.map +1 -0
  87. package/dist/detection/detectors/expo.d.ts +10 -0
  88. package/dist/detection/detectors/expo.d.ts.map +1 -0
  89. package/dist/detection/detectors/expo.js +30 -0
  90. package/dist/detection/detectors/expo.js.map +1 -0
  91. package/dist/detection/detectors/nestjs.d.ts +10 -0
  92. package/dist/detection/detectors/nestjs.d.ts.map +1 -0
  93. package/dist/detection/detectors/nestjs.js +34 -0
  94. package/dist/detection/detectors/nestjs.js.map +1 -0
  95. package/dist/detection/detectors/npm-package.d.ts +13 -0
  96. package/dist/detection/detectors/npm-package.d.ts.map +1 -0
  97. package/dist/detection/detectors/npm-package.js +30 -0
  98. package/dist/detection/detectors/npm-package.js.map +1 -0
  99. package/dist/detection/detectors/typescript.d.ts +10 -0
  100. package/dist/detection/detectors/typescript.d.ts.map +1 -0
  101. package/dist/detection/detectors/typescript.js +25 -0
  102. package/dist/detection/detectors/typescript.js.map +1 -0
  103. package/dist/detection/index.d.ts +24 -0
  104. package/dist/detection/index.d.ts.map +1 -0
  105. package/dist/detection/index.js +57 -0
  106. package/dist/detection/index.js.map +1 -0
  107. package/dist/errors/index.d.ts +69 -0
  108. package/dist/errors/index.d.ts.map +1 -0
  109. package/dist/errors/index.js +110 -0
  110. package/dist/errors/index.js.map +1 -0
  111. package/dist/index.d.ts +3 -0
  112. package/dist/index.d.ts.map +1 -0
  113. package/dist/index.js +8 -0
  114. package/dist/index.js.map +1 -0
  115. package/dist/logging/console-logger.d.ts +12 -0
  116. package/dist/logging/console-logger.d.ts.map +1 -0
  117. package/dist/logging/console-logger.js +22 -0
  118. package/dist/logging/console-logger.js.map +1 -0
  119. package/dist/logging/index.d.ts +4 -0
  120. package/dist/logging/index.d.ts.map +1 -0
  121. package/dist/logging/index.js +3 -0
  122. package/dist/logging/index.js.map +1 -0
  123. package/dist/logging/logger.interface.d.ts +20 -0
  124. package/dist/logging/logger.interface.d.ts.map +1 -0
  125. package/dist/logging/logger.interface.js +2 -0
  126. package/dist/logging/logger.interface.js.map +1 -0
  127. package/dist/logging/silent-logger.d.ts +12 -0
  128. package/dist/logging/silent-logger.d.ts.map +1 -0
  129. package/dist/logging/silent-logger.js +21 -0
  130. package/dist/logging/silent-logger.js.map +1 -0
  131. package/dist/strategies/copy-contents.d.ts +14 -0
  132. package/dist/strategies/copy-contents.d.ts.map +1 -0
  133. package/dist/strategies/copy-contents.js +69 -0
  134. package/dist/strategies/copy-contents.js.map +1 -0
  135. package/dist/strategies/copy-overwrite.d.ts +14 -0
  136. package/dist/strategies/copy-overwrite.d.ts.map +1 -0
  137. package/dist/strategies/copy-overwrite.js +47 -0
  138. package/dist/strategies/copy-overwrite.js.map +1 -0
  139. package/dist/strategies/create-only.d.ts +13 -0
  140. package/dist/strategies/create-only.d.ts.map +1 -0
  141. package/dist/strategies/create-only.js +30 -0
  142. package/dist/strategies/create-only.js.map +1 -0
  143. package/dist/strategies/index.d.ts +31 -0
  144. package/dist/strategies/index.d.ts.map +1 -0
  145. package/dist/strategies/index.js +52 -0
  146. package/dist/strategies/index.js.map +1 -0
  147. package/dist/strategies/merge.d.ts +13 -0
  148. package/dist/strategies/merge.d.ts.map +1 -0
  149. package/dist/strategies/merge.js +60 -0
  150. package/dist/strategies/merge.js.map +1 -0
  151. package/dist/strategies/strategy.interface.d.ts +31 -0
  152. package/dist/strategies/strategy.interface.d.ts.map +1 -0
  153. package/dist/strategies/strategy.interface.js +2 -0
  154. package/dist/strategies/strategy.interface.js.map +1 -0
  155. package/dist/transaction/backup.d.ts +38 -0
  156. package/dist/transaction/backup.d.ts.map +1 -0
  157. package/dist/transaction/backup.js +97 -0
  158. package/dist/transaction/backup.js.map +1 -0
  159. package/dist/transaction/index.d.ts +4 -0
  160. package/dist/transaction/index.d.ts.map +1 -0
  161. package/dist/transaction/index.js +3 -0
  162. package/dist/transaction/index.js.map +1 -0
  163. package/dist/transaction/transaction.d.ts +34 -0
  164. package/dist/transaction/transaction.d.ts.map +1 -0
  165. package/dist/transaction/transaction.js +68 -0
  166. package/dist/transaction/transaction.js.map +1 -0
  167. package/dist/utils/file-operations.d.ts +29 -0
  168. package/dist/utils/file-operations.d.ts.map +1 -0
  169. package/dist/utils/file-operations.js +84 -0
  170. package/dist/utils/file-operations.js.map +1 -0
  171. package/dist/utils/index.d.ts +4 -0
  172. package/dist/utils/index.d.ts.map +1 -0
  173. package/dist/utils/index.js +4 -0
  174. package/dist/utils/index.js.map +1 -0
  175. package/dist/utils/json-utils.d.ts +22 -0
  176. package/dist/utils/json-utils.d.ts.map +1 -0
  177. package/dist/utils/json-utils.js +57 -0
  178. package/dist/utils/json-utils.js.map +1 -0
  179. package/dist/utils/path-utils.d.ts +21 -0
  180. package/dist/utils/path-utils.d.ts.map +1 -0
  181. package/dist/utils/path-utils.js +35 -0
  182. package/dist/utils/path-utils.js.map +1 -0
  183. package/eslint-plugin-code-organization/README.md +149 -0
  184. package/eslint-plugin-code-organization/__tests__/enforce-statement-order.test.js +468 -0
  185. package/eslint-plugin-code-organization/index.js +23 -0
  186. package/eslint-plugin-code-organization/package.json +10 -0
  187. package/eslint-plugin-code-organization/rules/enforce-statement-order.js +157 -0
  188. package/expo/copy-overwrite/.claude/skills/apollo-client/SKILL.md +238 -0
  189. package/expo/copy-overwrite/.claude/skills/apollo-client/references/mutation-patterns.md +360 -0
  190. package/expo/copy-overwrite/.claude/skills/atomic-design-gluestack/SKILL.md +360 -0
  191. package/expo/copy-overwrite/.claude/skills/atomic-design-gluestack/references/atomic-levels.md +417 -0
  192. package/expo/copy-overwrite/.claude/skills/atomic-design-gluestack/references/folder-structure.md +257 -0
  193. package/expo/copy-overwrite/.claude/skills/atomic-design-gluestack/references/gluestack-mapping.md +233 -0
  194. package/expo/copy-overwrite/.claude/skills/atomic-design-gluestack/scripts/validate_atomic_structure.py +327 -0
  195. package/expo/copy-overwrite/.claude/skills/container-view-pattern/SKILL.md +299 -0
  196. package/expo/copy-overwrite/.claude/skills/container-view-pattern/references/examples.md +749 -0
  197. package/expo/copy-overwrite/.claude/skills/container-view-pattern/references/patterns.md +318 -0
  198. package/expo/copy-overwrite/.claude/skills/container-view-pattern/scripts/create_component.py +198 -0
  199. package/expo/copy-overwrite/.claude/skills/container-view-pattern/scripts/validate_component.py +207 -0
  200. package/expo/copy-overwrite/.claude/skills/cross-platform-compatibility/SKILL.md +268 -0
  201. package/expo/copy-overwrite/.claude/skills/cross-platform-compatibility/references/common-issues.md +619 -0
  202. package/expo/copy-overwrite/.claude/skills/cross-platform-compatibility/references/file-extensions.md +340 -0
  203. package/expo/copy-overwrite/.claude/skills/cross-platform-compatibility/references/platform-api.md +276 -0
  204. package/expo/copy-overwrite/.claude/skills/cross-platform-compatibility/scripts/validate_cross_platform.py +414 -0
  205. package/expo/copy-overwrite/.claude/skills/directory-structure/SKILL.md +202 -0
  206. package/expo/copy-overwrite/.claude/skills/directory-structure/scripts/validate_structure.py +443 -0
  207. package/expo/copy-overwrite/.claude/skills/expo-env-config/SKILL.md +309 -0
  208. package/expo/copy-overwrite/.claude/skills/expo-env-config/references/validation-patterns.md +417 -0
  209. package/expo/copy-overwrite/.claude/skills/expo-router-best-practices/SKILL.md +431 -0
  210. package/expo/copy-overwrite/.claude/skills/expo-router-best-practices/references/official-docs.md +290 -0
  211. package/expo/copy-overwrite/.claude/skills/expo-router-best-practices/scripts/generate-route.py +169 -0
  212. package/expo/copy-overwrite/.claude/skills/gluestack-nativewind/SKILL.md +411 -0
  213. package/expo/copy-overwrite/.claude/skills/gluestack-nativewind/references/color-tokens.md +343 -0
  214. package/expo/copy-overwrite/.claude/skills/gluestack-nativewind/references/component-mapping.md +307 -0
  215. package/expo/copy-overwrite/.claude/skills/gluestack-nativewind/references/spacing-scale.md +300 -0
  216. package/expo/copy-overwrite/.claude/skills/gluestack-nativewind/scripts/validate_styling.py +354 -0
  217. package/expo/copy-overwrite/.claude/skills/local-state/SKILL.md +362 -0
  218. package/expo/copy-overwrite/.claude/skills/local-state/references/async-storage.md +505 -0
  219. package/expo/copy-overwrite/.claude/skills/local-state/references/persistence-patterns.md +711 -0
  220. package/expo/copy-overwrite/.claude/skills/local-state/references/reactive-variables.md +446 -0
  221. package/expo/copy-overwrite/.claude/skills/playwright-selectors/SKILL.md +223 -0
  222. package/expo/copy-overwrite/.claude/skills/testing-library/SKILL.md +319 -0
  223. package/expo/copy-overwrite/.claude/skills/testing-library/references/async-patterns.md +420 -0
  224. package/expo/copy-overwrite/.claude/skills/testing-library/references/expo-router-testing.md +556 -0
  225. package/expo/copy-overwrite/.claude/skills/testing-library/references/mocking-patterns.md +590 -0
  226. package/expo/copy-overwrite/.claude/skills/testing-library/references/query-priority.md +291 -0
  227. package/expo/copy-overwrite/.easignore.extra +2 -0
  228. package/expo/copy-overwrite/.mcp.json +33 -0
  229. package/expo/copy-overwrite/eslint-plugin-component-structure/README.md +234 -0
  230. package/expo/copy-overwrite/eslint-plugin-component-structure/__tests__/plugin-index.test.js +84 -0
  231. package/expo/copy-overwrite/eslint-plugin-component-structure/__tests__/require-memo-in-view.test.js +196 -0
  232. package/expo/copy-overwrite/eslint-plugin-component-structure/__tests__/single-component-per-file.test.js +289 -0
  233. package/expo/copy-overwrite/eslint-plugin-component-structure/index.js +32 -0
  234. package/expo/copy-overwrite/eslint-plugin-component-structure/package.json +10 -0
  235. package/expo/copy-overwrite/eslint-plugin-component-structure/rules/enforce-component-structure.js +230 -0
  236. package/expo/copy-overwrite/eslint-plugin-component-structure/rules/no-return-in-view.js +91 -0
  237. package/expo/copy-overwrite/eslint-plugin-component-structure/rules/require-memo-in-view.js +178 -0
  238. package/expo/copy-overwrite/eslint-plugin-component-structure/rules/single-component-per-file.js +238 -0
  239. package/expo/copy-overwrite/eslint-plugin-ui-standards/README.md +260 -0
  240. package/expo/copy-overwrite/eslint-plugin-ui-standards/index.js +29 -0
  241. package/expo/copy-overwrite/eslint-plugin-ui-standards/package.json +10 -0
  242. package/expo/copy-overwrite/eslint-plugin-ui-standards/rules/no-classname-outside-ui.js +51 -0
  243. package/expo/copy-overwrite/eslint-plugin-ui-standards/rules/no-direct-rn-imports.js +55 -0
  244. package/expo/copy-overwrite/eslint-plugin-ui-standards/rules/no-inline-styles.js +73 -0
  245. package/expo/copy-overwrite/eslint.config.mjs +560 -0
  246. package/expo/copy-overwrite/lighthouserc.js +194 -0
  247. package/expo/create-only/lighthouserc-config.json +28 -0
  248. package/expo/merge/package.json +132 -0
  249. package/lisa.sh +35 -0
  250. package/nestjs/copy-overwrite/.claude/skills/nestjs-graphql/SKILL.md +176 -0
  251. package/nestjs/copy-overwrite/.claude/skills/nestjs-graphql/references/advanced-features.md +527 -0
  252. package/nestjs/copy-overwrite/.claude/skills/nestjs-graphql/references/project-patterns.md +483 -0
  253. package/nestjs/copy-overwrite/.claude/skills/nestjs-graphql/references/quick-start.md +257 -0
  254. package/nestjs/copy-overwrite/.claude/skills/nestjs-graphql/references/resolvers-mutations.md +413 -0
  255. package/nestjs/copy-overwrite/.claude/skills/nestjs-graphql/references/types-scalars.md +513 -0
  256. package/nestjs/copy-overwrite/.claude/skills/nestjs-rules/SKILL.md +536 -0
  257. package/nestjs/copy-overwrite/.claude/skills/typeorm-patterns/SKILL.md +275 -0
  258. package/nestjs/copy-overwrite/.claude/skills/typeorm-patterns/references/configuration-patterns.md +487 -0
  259. package/nestjs/copy-overwrite/.claude/skills/typeorm-patterns/references/entity-patterns.md +450 -0
  260. package/nestjs/copy-overwrite/.claude/skills/typeorm-patterns/references/observability-patterns.md +536 -0
  261. package/nestjs/merge/package.json +75 -0
  262. package/package.json +124 -0
  263. package/typescript/copy-contents/.husky/commit-msg +91 -0
  264. package/typescript/copy-contents/.husky/pre-commit +96 -0
  265. package/typescript/copy-contents/.husky/pre-push +211 -0
  266. package/typescript/copy-overwrite/.claude/hooks/format-on-edit.sh +74 -0
  267. package/typescript/copy-overwrite/.claude/hooks/install_pkgs.sh +59 -0
  268. package/typescript/copy-overwrite/.claude/hooks/lint-on-edit.sh +103 -0
  269. package/typescript/copy-overwrite/.claude/skills/jsdoc-best-practices/SKILL.md +388 -0
  270. package/typescript/copy-overwrite/.github/README.md +455 -0
  271. package/typescript/copy-overwrite/.github/dependabot.yml +40 -0
  272. package/typescript/copy-overwrite/.github/k6/BROWSER_TESTING_NOTE.md +129 -0
  273. package/typescript/copy-overwrite/.github/k6/INTEGRATION_GUIDE.md +354 -0
  274. package/typescript/copy-overwrite/.github/k6/README.md +386 -0
  275. package/typescript/copy-overwrite/.github/k6/SCENARIO_SELECTION_GUIDE.md +264 -0
  276. package/typescript/copy-overwrite/.github/k6/examples/customer-deploy-integration.yml +115 -0
  277. package/typescript/copy-overwrite/.github/k6/examples/data-driven-test.js +268 -0
  278. package/typescript/copy-overwrite/.github/k6/scenarios/load.js +142 -0
  279. package/typescript/copy-overwrite/.github/k6/scenarios/load.json +27 -0
  280. package/typescript/copy-overwrite/.github/k6/scenarios/smoke.js +26 -0
  281. package/typescript/copy-overwrite/.github/k6/scenarios/smoke.json +20 -0
  282. package/typescript/copy-overwrite/.github/k6/scenarios/soak.js +244 -0
  283. package/typescript/copy-overwrite/.github/k6/scenarios/soak.json +29 -0
  284. package/typescript/copy-overwrite/.github/k6/scenarios/spike.js +180 -0
  285. package/typescript/copy-overwrite/.github/k6/scenarios/spike.json +32 -0
  286. package/typescript/copy-overwrite/.github/k6/scenarios/stress.js +206 -0
  287. package/typescript/copy-overwrite/.github/k6/scenarios/stress.json +38 -0
  288. package/typescript/copy-overwrite/.github/k6/scripts/api-test.js +452 -0
  289. package/typescript/copy-overwrite/.github/k6/scripts/default-test.js +185 -0
  290. package/typescript/copy-overwrite/.github/k6/thresholds/normal.json +30 -0
  291. package/typescript/copy-overwrite/.github/k6/thresholds/relaxed.json +21 -0
  292. package/typescript/copy-overwrite/.github/k6/thresholds/strict.json +29 -0
  293. package/typescript/copy-overwrite/.github/workflows/build.yml +72 -0
  294. package/typescript/copy-overwrite/.github/workflows/ci.yml +49 -0
  295. package/typescript/copy-overwrite/.github/workflows/claude.yml +51 -0
  296. package/typescript/copy-overwrite/.github/workflows/create-github-issue-on-failure.yml +113 -0
  297. package/typescript/copy-overwrite/.github/workflows/create-jira-issue-on-failure.yml +195 -0
  298. package/typescript/copy-overwrite/.github/workflows/create-sentry-issue-on-failure.yml +267 -0
  299. package/typescript/copy-overwrite/.github/workflows/deploy.yml +228 -0
  300. package/typescript/copy-overwrite/.github/workflows/k6-load-test-README.md +230 -0
  301. package/typescript/copy-overwrite/.github/workflows/lighthouse.yml +68 -0
  302. package/typescript/copy-overwrite/.github/workflows/load-test.yml +282 -0
  303. package/typescript/copy-overwrite/.github/workflows/quality.yml +1737 -0
  304. package/typescript/copy-overwrite/.github/workflows/release.yml +1599 -0
  305. package/typescript/copy-overwrite/.gitleaksignore +28 -0
  306. package/typescript/copy-overwrite/.nvmrc +1 -0
  307. package/typescript/copy-overwrite/.prettierignore +23 -0
  308. package/typescript/copy-overwrite/.prettierrc.json +22 -0
  309. package/typescript/copy-overwrite/.versionrc +42 -0
  310. package/typescript/copy-overwrite/.yamllint +20 -0
  311. package/typescript/copy-overwrite/commitlint.config.js +11 -0
  312. package/typescript/copy-overwrite/eslint-plugin-code-organization/README.md +149 -0
  313. package/typescript/copy-overwrite/eslint-plugin-code-organization/__tests__/enforce-statement-order.test.js +468 -0
  314. package/typescript/copy-overwrite/eslint-plugin-code-organization/index.js +23 -0
  315. package/typescript/copy-overwrite/eslint-plugin-code-organization/package.json +10 -0
  316. package/typescript/copy-overwrite/eslint-plugin-code-organization/rules/enforce-statement-order.js +157 -0
  317. package/typescript/copy-overwrite/eslint.config.mjs +390 -0
  318. package/typescript/copy-overwrite/eslint.ignore.config.json +57 -0
  319. package/typescript/copy-overwrite/eslint.thresholds.config.json +5 -0
  320. package/typescript/github-rulesets/base.json +106 -0
  321. package/typescript/merge/.claude/settings.json +28 -0
  322. package/typescript/merge/package.json +71 -0
@@ -0,0 +1,343 @@
1
+ # Color Tokens Reference
2
+
3
+ This reference provides the complete semantic color token system for Gluestack UI v3.
4
+
5
+ ## Token Scale
6
+
7
+ All color tokens follow the 0-950 scale:
8
+
9
+ ```
10
+ 0 → 50 → 100 → 200 → 300 → 400 → 500 → 600 → 700 → 800 → 900 → 950
11
+ ```
12
+
13
+ Lower values are lighter, higher values are darker.
14
+
15
+ ## Semantic Color Categories
16
+
17
+ ### Primary (Brand Identity)
18
+
19
+ Use for main brand elements, key interactive components, and primary actions.
20
+
21
+ | Token | Usage |
22
+ | ------------- | -------------------------------- |
23
+ | `primary-0` | Lightest tint, subtle highlights |
24
+ | `primary-50` | Very light backgrounds |
25
+ | `primary-100` | Light hover states |
26
+ | `primary-200` | Light borders |
27
+ | `primary-300` | Muted elements |
28
+ | `primary-400` | Subdued text/icons |
29
+ | `primary-500` | **Default** - buttons, links |
30
+ | `primary-600` | Hover states for primary-500 |
31
+ | `primary-700` | Active/pressed states |
32
+ | `primary-800` | Dark variant |
33
+ | `primary-900` | Very dark variant |
34
+ | `primary-950` | Darkest shade |
35
+
36
+ ```tsx
37
+ <Button className="bg-primary-500 hover:bg-primary-600 active:bg-primary-700">
38
+ <ButtonText className="text-typography-0">Primary Action</ButtonText>
39
+ </Button>
40
+ ```
41
+
42
+ ### Secondary (Supporting Elements)
43
+
44
+ Use for secondary actions, alternative buttons, and supporting UI.
45
+
46
+ | Token | Common Usage |
47
+ | --------------- | ----------------- |
48
+ | `secondary-100` | Light backgrounds |
49
+ | `secondary-200` | Borders, dividers |
50
+ | `secondary-500` | Secondary buttons |
51
+ | `secondary-600` | Hover states |
52
+
53
+ ```tsx
54
+ <Button className="bg-secondary-500">
55
+ <ButtonText>Secondary Action</ButtonText>
56
+ </Button>
57
+ ```
58
+
59
+ ### Tertiary (Accent)
60
+
61
+ Use for tertiary accents and warm tones.
62
+
63
+ | Token | Common Usage |
64
+ | -------------- | ---------------- |
65
+ | `tertiary-400` | Accents |
66
+ | `tertiary-500` | Tertiary buttons |
67
+
68
+ ### Error (Destructive/Validation)
69
+
70
+ Use for errors, validation failures, and destructive actions.
71
+
72
+ | Token | Common Usage |
73
+ | ----------- | ------------------------------- |
74
+ | `error-50` | Light error backgrounds |
75
+ | `error-100` | Error container backgrounds |
76
+ | `error-400` | Error icons (light mode) |
77
+ | `error-500` | **Default** - error text, icons |
78
+ | `error-600` | Error text (dark mode) |
79
+ | `error-700` | Dark error elements |
80
+
81
+ ```tsx
82
+ // Error message
83
+ <Text className="text-error-500">This field is required</Text>
84
+
85
+ // Error background
86
+ <Box className="bg-error-50 border border-error-200 p-4">
87
+ <Text className="text-error-700">Error occurred</Text>
88
+ </Box>
89
+
90
+ // Destructive button
91
+ <Button action="negative">
92
+ <ButtonText>Delete</ButtonText>
93
+ </Button>
94
+ ```
95
+
96
+ ### Success (Positive/Confirmation)
97
+
98
+ Use for success states, confirmations, and positive feedback.
99
+
100
+ | Token | Common Usage |
101
+ | ------------- | --------------------------------- |
102
+ | `success-50` | Light success backgrounds |
103
+ | `success-100` | Success container backgrounds |
104
+ | `success-500` | **Default** - success text, icons |
105
+ | `success-600` | Success text emphasis |
106
+ | `success-700` | Dark success elements |
107
+
108
+ ```tsx
109
+ // Success message
110
+ <Text className="text-success-600">Changes saved successfully</Text>
111
+
112
+ // Success background
113
+ <Box className="bg-success-50 border border-success-200 p-4">
114
+ <Text className="text-success-700">Operation completed</Text>
115
+ </Box>
116
+ ```
117
+
118
+ ### Warning (Caution/Attention)
119
+
120
+ Use for warnings, caution states, and attention-required elements.
121
+
122
+ | Token | Common Usage |
123
+ | ------------- | ----------------------------- |
124
+ | `warning-50` | Light warning backgrounds |
125
+ | `warning-100` | Warning container backgrounds |
126
+ | `warning-400` | Warning icons |
127
+ | `warning-500` | **Default** - warning text |
128
+ | `warning-600` | Warning text emphasis |
129
+ | `warning-700` | Dark warning elements |
130
+
131
+ ```tsx
132
+ // Warning message
133
+ <Text className="text-warning-600">Please review before proceeding</Text>
134
+
135
+ // Warning background
136
+ <Box className="bg-warning-50 border border-warning-300 p-4">
137
+ <Text className="text-warning-700">Action required</Text>
138
+ </Box>
139
+ ```
140
+
141
+ ### Info (Informational)
142
+
143
+ Use for informational content, tips, and neutral highlights.
144
+
145
+ | Token | Common Usage |
146
+ | ---------- | ------------------------------ |
147
+ | `info-50` | Light info backgrounds |
148
+ | `info-100` | Info container backgrounds |
149
+ | `info-500` | **Default** - info text, icons |
150
+ | `info-600` | Info text emphasis |
151
+ | `info-700` | Dark info elements |
152
+
153
+ ```tsx
154
+ // Info message
155
+ <Text className="text-info-600">Tip: You can also use keyboard shortcuts</Text>
156
+
157
+ // Info background
158
+ <Box className="bg-info-50 border border-info-200 p-4">
159
+ <Text className="text-info-700">Learn more about this feature</Text>
160
+ </Box>
161
+ ```
162
+
163
+ ### Typography (Text Colors)
164
+
165
+ Use for all text content. The scale provides contrast levels.
166
+
167
+ | Token | Usage |
168
+ | ---------------- | ------------------------------------ |
169
+ | `typography-0` | White text (on dark backgrounds) |
170
+ | `typography-50` | Very light text |
171
+ | `typography-100` | Light placeholder text |
172
+ | `typography-200` | Disabled text |
173
+ | `typography-300` | Tertiary text |
174
+ | `typography-400` | Quaternary text |
175
+ | `typography-500` | Secondary text, captions |
176
+ | `typography-600` | Muted body text |
177
+ | `typography-700` | Body text |
178
+ | `typography-800` | Emphasized text |
179
+ | `typography-900` | **Default** - headings, primary text |
180
+ | `typography-950` | Maximum contrast text |
181
+
182
+ ```tsx
183
+ // Primary heading
184
+ <Heading className="text-typography-900">Page Title</Heading>
185
+
186
+ // Body text
187
+ <Text className="text-typography-700">Regular paragraph text</Text>
188
+
189
+ // Secondary/muted text
190
+ <Text className="text-typography-500">Last updated 2 hours ago</Text>
191
+
192
+ // White text on dark background
193
+ <Box className="bg-primary-500">
194
+ <Text className="text-typography-0">Button label</Text>
195
+ </Box>
196
+ ```
197
+
198
+ ### Outline (Borders)
199
+
200
+ Use for borders, dividers, and outlines.
201
+
202
+ | Token | Usage |
203
+ | ------------- | ---------------------------------- |
204
+ | `outline-0` | White borders |
205
+ | `outline-50` | Very subtle borders |
206
+ | `outline-100` | Light dividers |
207
+ | `outline-200` | **Default** - input borders, cards |
208
+ | `outline-300` | Emphasized borders |
209
+ | `outline-400` | Focus rings (muted) |
210
+ | `outline-500` | Strong borders |
211
+ | `outline-600` | Dark borders |
212
+ | `outline-700` | Very dark borders |
213
+
214
+ ```tsx
215
+ // Card with border
216
+ <Box className="border border-outline-200 rounded-lg p-4">
217
+ <Text>Card content</Text>
218
+ </Box>
219
+
220
+ // Input field
221
+ <Input className="border border-outline-300 focus:border-primary-500" />
222
+
223
+ // Divider
224
+ <Box className="h-px bg-outline-100 my-4" />
225
+ ```
226
+
227
+ ### Background (Surface Colors)
228
+
229
+ Use for component and page backgrounds.
230
+
231
+ | Token | Usage |
232
+ | ---------------- | ---------------------------------------------- |
233
+ | `background-0` | **Default** - white, main content (light mode) |
234
+ | `background-50` | Elevated surfaces, cards |
235
+ | `background-100` | Subtle backgrounds |
236
+ | `background-200` | Muted sections |
237
+ | `background-300` | Disabled states |
238
+ | `background-400` | Hover states (dark) |
239
+ | `background-500` | Mid-tone |
240
+ | `background-600` | Dark surfaces |
241
+ | `background-700` | Darker surfaces |
242
+ | `background-800` | Very dark surfaces |
243
+ | `background-900` | Near-black |
244
+ | `background-950` | **Default** - main content (dark mode) |
245
+
246
+ ```tsx
247
+ // Light mode page
248
+ <Box className="bg-background-0 min-h-screen">
249
+ <Box className="bg-background-50 p-4 rounded-lg">
250
+ Card content
251
+ </Box>
252
+ </Box>
253
+
254
+ // Dark mode page
255
+ <Box className="bg-background-950 min-h-screen">
256
+ <Box className="bg-background-900 p-4 rounded-lg">
257
+ Card content
258
+ </Box>
259
+ </Box>
260
+ ```
261
+
262
+ ## Special Background Tokens
263
+
264
+ State-specific background tokens for semantic meaning:
265
+
266
+ | Token | Usage |
267
+ | ----------------------- | ------------------------ |
268
+ | `bg-background-error` | Error state container |
269
+ | `bg-background-warning` | Warning state container |
270
+ | `bg-background-success` | Success state container |
271
+ | `bg-background-info` | Info state container |
272
+ | `bg-background-muted` | Muted/disabled container |
273
+
274
+ ```tsx
275
+ // Error state
276
+ <Box className="bg-background-error p-4 rounded-lg">
277
+ <Text className="text-error-700">Error message</Text>
278
+ </Box>
279
+
280
+ // Muted/disabled
281
+ <Box className="bg-background-muted p-4 rounded-lg opacity-50">
282
+ <Text className="text-typography-500">Disabled content</Text>
283
+ </Box>
284
+ ```
285
+
286
+ ## Indicator Tokens
287
+
288
+ Use for focus rings and status indicators:
289
+
290
+ | Token | Usage |
291
+ | ------------------------ | ----------------------- |
292
+ | `ring-indicator-primary` | Primary focus indicator |
293
+ | `ring-indicator-info` | Info focus indicator |
294
+ | `ring-indicator-error` | Error focus indicator |
295
+
296
+ ## Dark Mode Mapping
297
+
298
+ Use `dark:` prefix for dark mode variants:
299
+
300
+ ```tsx
301
+ // Text that adapts to dark mode
302
+ <Text className="text-typography-900 dark:text-typography-0">
303
+ Adaptive text
304
+ </Text>
305
+
306
+ // Background that adapts
307
+ <Box className="bg-background-0 dark:bg-background-950">
308
+ <Text className="text-typography-900 dark:text-typography-0">
309
+ Content
310
+ </Text>
311
+ </Box>
312
+
313
+ // Border that adapts
314
+ <Box className="border border-outline-200 dark:border-outline-700">
315
+ Content
316
+ </Box>
317
+ ```
318
+
319
+ ## Common Light/Dark Mode Pairs
320
+
321
+ | Light Mode | Dark Mode | Usage |
322
+ | ---------------- | ---------------- | --------------- |
323
+ | `background-0` | `background-950` | Page background |
324
+ | `background-50` | `background-900` | Card background |
325
+ | `typography-900` | `typography-0` | Primary text |
326
+ | `typography-700` | `typography-200` | Body text |
327
+ | `typography-500` | `typography-400` | Secondary text |
328
+ | `outline-200` | `outline-700` | Borders |
329
+ | `outline-100` | `outline-800` | Dividers |
330
+
331
+ ## Prohibited Raw Color Usage
332
+
333
+ Never use raw Tailwind colors. Map to semantic tokens:
334
+
335
+ | Raw Color | Semantic Token |
336
+ | ----------------------------- | ------------------------------------------- |
337
+ | `red-*` | `error-*` |
338
+ | `green-*` | `success-*` |
339
+ | `yellow-*`, `amber-*` | `warning-*` |
340
+ | `blue-*`, `cyan-*` | `info-*` or `primary-*` |
341
+ | `gray-*`, `slate-*`, `zinc-*` | `typography-*`, `outline-*`, `background-*` |
342
+ | `white` | `typography-0` or `background-0` |
343
+ | `black` | `typography-950` or `background-950` |
@@ -0,0 +1,307 @@
1
+ # Component Mapping Reference
2
+
3
+ This reference provides the complete mapping from React Native primitives to Gluestack UI v3 equivalents.
4
+
5
+ ## Core Layout Components
6
+
7
+ | React Native | Gluestack | Import Path |
8
+ | ---------------------- | ------------------------------ | ---------------------------------------- |
9
+ | `View` | `Box` | `@/components/ui/box` |
10
+ | `ScrollView` | `ScrollView` | `@/components/ui/scroll-view` |
11
+ | `SafeAreaView` | Use `useSafeAreaInsets()` hook | `react-native-safe-area-context` |
12
+ | `KeyboardAvoidingView` | `KeyboardAvoidingView` | `@/components/ui/keyboard-avoiding-view` |
13
+
14
+ ## Text Components
15
+
16
+ | React Native | Gluestack | Import Path |
17
+ | ---------------- | --------- | ------------------------- |
18
+ | `Text` | `Text` | `@/components/ui/text` |
19
+ | `Text` (heading) | `Heading` | `@/components/ui/heading` |
20
+
21
+ ## Interactive Components
22
+
23
+ | React Native | Gluestack | Import Path |
24
+ | -------------------------- | ----------------------- | --------------------------- |
25
+ | `TouchableOpacity` | `Pressable` | `@/components/ui/pressable` |
26
+ | `TouchableHighlight` | `Pressable` | `@/components/ui/pressable` |
27
+ | `TouchableWithoutFeedback` | `Pressable` | `@/components/ui/pressable` |
28
+ | `Button` | `Button` + `ButtonText` | `@/components/ui/button` |
29
+ | `Switch` | `Switch` | `@/components/ui/switch` |
30
+
31
+ ## Form Components
32
+
33
+ | React Native | Gluestack | Import Path |
34
+ | ----------------------- | ---------------------------- | -------------------------- |
35
+ | `TextInput` | `Input` + `InputField` | `@/components/ui/input` |
36
+ | `TextInput` (multiline) | `Textarea` + `TextareaInput` | `@/components/ui/textarea` |
37
+ | N/A | `Select` | `@/components/ui/select` |
38
+ | N/A | `Checkbox` | `@/components/ui/checkbox` |
39
+ | N/A | `Radio` | `@/components/ui/radio` |
40
+ | N/A | `Slider` | `@/components/ui/slider` |
41
+
42
+ ## Media Components
43
+
44
+ | React Native | Gluestack | Import Path |
45
+ | ------------ | --------- | ------------------------ |
46
+ | `Image` | `Image` | `@/components/ui/image` |
47
+ | N/A | `Avatar` | `@/components/ui/avatar` |
48
+ | N/A | `Icon` | `@/components/ui/icon` |
49
+
50
+ ## List Components
51
+
52
+ | React Native | Recommended | Import Path |
53
+ | ----------------- | ------------------------- | --------------------- |
54
+ | `FlatList` | `FlashList` | `@shopify/flash-list` |
55
+ | `SectionList` | `FlashList` with sections | `@shopify/flash-list` |
56
+ | `VirtualizedList` | `FlashList` | `@shopify/flash-list` |
57
+
58
+ ## Feedback Components
59
+
60
+ | React Native | Gluestack | Import Path |
61
+ | ------------------- | ------------- | ------------------------------ |
62
+ | `ActivityIndicator` | `Spinner` | `@/components/ui/spinner` |
63
+ | `Modal` | `Modal` | `@/components/ui/modal` |
64
+ | `Alert.alert()` | `AlertDialog` | `@/components/ui/alert-dialog` |
65
+ | N/A | `Toast` | `@/components/ui/toast` |
66
+ | N/A | `Progress` | `@/components/ui/progress` |
67
+
68
+ ## Navigation Components
69
+
70
+ | React Native | Gluestack | Import Path |
71
+ | ------------ | ------------- | ----------------------------- |
72
+ | N/A | `Menu` | `@/components/ui/menu` |
73
+ | N/A | `Actionsheet` | `@/components/ui/actionsheet` |
74
+ | N/A | `Popover` | `@/components/ui/popover` |
75
+ | N/A | `Tooltip` | `@/components/ui/tooltip` |
76
+
77
+ ## Overlay Components
78
+
79
+ | React Native | Gluestack | Import Path |
80
+ | ------------ | ---------- | -------------------------- |
81
+ | `Modal` | `Modal` | `@/components/ui/modal` |
82
+ | N/A | `Drawer` | `@/components/ui/drawer` |
83
+ | N/A | `Backdrop` | Part of overlay components |
84
+
85
+ ## Display Components
86
+
87
+ | React Native | Gluestack | Import Path |
88
+ | ------------ | ----------- | --------------------------- |
89
+ | N/A | `Badge` | `@/components/ui/badge` |
90
+ | N/A | `Card` | `@/components/ui/card` |
91
+ | N/A | `Divider` | `@/components/ui/divider` |
92
+ | N/A | `Accordion` | `@/components/ui/accordion` |
93
+
94
+ ## Gluestack Sub-Component Patterns
95
+
96
+ ### Button
97
+
98
+ ```tsx
99
+ import { Button, ButtonText, ButtonIcon, ButtonSpinner } from "@/components/ui/button";
100
+
101
+ <Button action="primary" size="md" variant="solid">
102
+ <ButtonText>Submit</ButtonText>
103
+ </Button>
104
+
105
+ <Button action="secondary" isDisabled>
106
+ <ButtonSpinner />
107
+ <ButtonText>Loading...</ButtonText>
108
+ </Button>
109
+
110
+ <Button>
111
+ <ButtonText>Next</ButtonText>
112
+ <ButtonIcon as={ChevronRightIcon} />
113
+ </Button>
114
+ ```
115
+
116
+ ### Input
117
+
118
+ ```tsx
119
+ import { Input, InputField, InputSlot, InputIcon } from "@/components/ui/input";
120
+
121
+ <Input variant="outline" size="md">
122
+ <InputField placeholder="Enter email" />
123
+ </Input>
124
+
125
+ <Input>
126
+ <InputSlot>
127
+ <InputIcon as={SearchIcon} />
128
+ </InputSlot>
129
+ <InputField placeholder="Search..." />
130
+ </Input>
131
+
132
+ <Input isInvalid>
133
+ <InputField />
134
+ <InputSlot>
135
+ <InputIcon as={AlertCircleIcon} className="text-error-500" />
136
+ </InputSlot>
137
+ </Input>
138
+ ```
139
+
140
+ ### Select
141
+
142
+ ```tsx
143
+ import {
144
+ Select,
145
+ SelectTrigger,
146
+ SelectInput,
147
+ SelectIcon,
148
+ SelectPortal,
149
+ SelectBackdrop,
150
+ SelectContent,
151
+ SelectDragIndicator,
152
+ SelectDragIndicatorWrapper,
153
+ SelectItem,
154
+ } from "@/components/ui/select";
155
+
156
+ <Select>
157
+ <SelectTrigger variant="outline" size="md">
158
+ <SelectInput placeholder="Select option" />
159
+ <SelectIcon as={ChevronDownIcon} />
160
+ </SelectTrigger>
161
+ <SelectPortal>
162
+ <SelectBackdrop />
163
+ <SelectContent>
164
+ <SelectDragIndicatorWrapper>
165
+ <SelectDragIndicator />
166
+ </SelectDragIndicatorWrapper>
167
+ <SelectItem label="Option 1" value="1" />
168
+ <SelectItem label="Option 2" value="2" />
169
+ </SelectContent>
170
+ </SelectPortal>
171
+ </Select>;
172
+ ```
173
+
174
+ ### Modal
175
+
176
+ ```tsx
177
+ import {
178
+ Modal,
179
+ ModalBackdrop,
180
+ ModalContent,
181
+ ModalHeader,
182
+ ModalCloseButton,
183
+ ModalBody,
184
+ ModalFooter,
185
+ } from "@/components/ui/modal";
186
+
187
+ <Modal isOpen={showModal} onClose={handleClose}>
188
+ <ModalBackdrop />
189
+ <ModalContent>
190
+ <ModalHeader>
191
+ <Heading size="lg">Title</Heading>
192
+ <ModalCloseButton>
193
+ <Icon as={CloseIcon} />
194
+ </ModalCloseButton>
195
+ </ModalHeader>
196
+ <ModalBody>
197
+ <Text>Modal content here</Text>
198
+ </ModalBody>
199
+ <ModalFooter>
200
+ <Button onPress={handleClose}>
201
+ <ButtonText>Close</ButtonText>
202
+ </Button>
203
+ </ModalFooter>
204
+ </ModalContent>
205
+ </Modal>;
206
+ ```
207
+
208
+ ### Avatar
209
+
210
+ ```tsx
211
+ import {
212
+ Avatar,
213
+ AvatarFallbackText,
214
+ AvatarImage,
215
+ AvatarBadge,
216
+ } from "@/components/ui/avatar";
217
+
218
+ <Avatar size="md">
219
+ <AvatarFallbackText>JD</AvatarFallbackText>
220
+ <AvatarImage source={{ uri: imageUrl }} />
221
+ <AvatarBadge />
222
+ </Avatar>;
223
+ ```
224
+
225
+ ### Checkbox
226
+
227
+ ```tsx
228
+ import {
229
+ Checkbox,
230
+ CheckboxIndicator,
231
+ CheckboxIcon,
232
+ CheckboxLabel,
233
+ } from "@/components/ui/checkbox";
234
+
235
+ <Checkbox value="terms" isChecked={isChecked} onChange={setIsChecked}>
236
+ <CheckboxIndicator>
237
+ <CheckboxIcon as={CheckIcon} />
238
+ </CheckboxIndicator>
239
+ <CheckboxLabel>Accept terms</CheckboxLabel>
240
+ </Checkbox>;
241
+ ```
242
+
243
+ ### Toast
244
+
245
+ ```tsx
246
+ import {
247
+ useToast,
248
+ Toast,
249
+ ToastTitle,
250
+ ToastDescription,
251
+ } from "@/components/ui/toast";
252
+
253
+ const toast = useToast();
254
+
255
+ toast.show({
256
+ placement: "top",
257
+ render: ({ id }) => (
258
+ <Toast nativeID={id} action="success">
259
+ <ToastTitle>Success!</ToastTitle>
260
+ <ToastDescription>Your changes have been saved.</ToastDescription>
261
+ </Toast>
262
+ ),
263
+ });
264
+ ```
265
+
266
+ ## Component Variants
267
+
268
+ ### Button Variants
269
+
270
+ | Prop | Values |
271
+ | --------- | ---------------------------------------------- |
272
+ | `action` | `primary`, `secondary`, `positive`, `negative` |
273
+ | `variant` | `solid`, `outline`, `link` |
274
+ | `size` | `xs`, `sm`, `md`, `lg`, `xl` |
275
+
276
+ ### Input Variants
277
+
278
+ | Prop | Values |
279
+ | --------- | ---------------------------------- |
280
+ | `variant` | `outline`, `underlined`, `rounded` |
281
+ | `size` | `sm`, `md`, `lg`, `xl` |
282
+
283
+ ### Text/Heading Sizes
284
+
285
+ | Component | Sizes |
286
+ | --------- | ---------------------------------------------------------------------- |
287
+ | `Text` | `2xs`, `xs`, `sm`, `md`, `lg`, `xl`, `2xl`, `3xl`, `4xl`, `5xl`, `6xl` |
288
+ | `Heading` | `xs`, `sm`, `md`, `lg`, `xl`, `2xl`, `3xl`, `4xl`, `5xl` |
289
+
290
+ ## When to Keep React Native Primitives
291
+
292
+ Use React Native primitives only when:
293
+
294
+ 1. **Platform-specific native behavior** - Deep native integration required
295
+ 2. **Third-party library requirements** - Library expects RN primitives
296
+ 3. **Performance-critical rendering** - Measured wrapper overhead (rare)
297
+ 4. **Animated components** - Using `Animated.View`, `Animated.Text`, etc.
298
+
299
+ ```tsx
300
+ // Acceptable: Animated primitives
301
+ import Animated from "react-native-reanimated";
302
+
303
+ const AnimatedBox = Animated.createAnimatedComponent(Box);
304
+
305
+ // Acceptable: Platform-specific requirement
306
+ import { Platform, PermissionsAndroid } from "react-native";
307
+ ```