@caddis/cli 0.1.0 → 0.2.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 (364) hide show
  1. package/README.md +29 -16
  2. package/bundles/antigravity-plugin-extras/plugin.json +5 -0
  3. package/bundles/antigravity-plugin-extras/skills/_registry.md +154 -0
  4. package/bundles/antigravity-plugin-extras/skills/agent-md-refactor/SKILL.md +356 -0
  5. package/bundles/antigravity-plugin-extras/skills/agent-orchestration/SKILL.md +517 -0
  6. package/bundles/antigravity-plugin-extras/skills/algorithmic-art/SKILL.md +293 -0
  7. package/bundles/antigravity-plugin-extras/skills/anchor-review/SKILL.md +135 -0
  8. package/bundles/antigravity-plugin-extras/skills/api-client-patterns/SKILL.md +367 -0
  9. package/bundles/antigravity-plugin-extras/skills/architecture-design/SKILL.md +244 -0
  10. package/bundles/antigravity-plugin-extras/skills/architecture-diagram/SKILL.md +156 -0
  11. package/bundles/antigravity-plugin-extras/skills/architecture-document/SKILL.md +321 -0
  12. package/bundles/antigravity-plugin-extras/skills/artifacts-builder/LICENSE.txt +202 -0
  13. package/bundles/antigravity-plugin-extras/skills/artifacts-builder/SKILL.md +74 -0
  14. package/bundles/antigravity-plugin-extras/skills/artifacts-builder/scripts/bundle-artifact.sh +54 -0
  15. package/bundles/antigravity-plugin-extras/skills/artifacts-builder/scripts/init-artifact.sh +322 -0
  16. package/bundles/antigravity-plugin-extras/skills/artifacts-builder/scripts/shadcn-components.tar.gz +0 -0
  17. package/bundles/antigravity-plugin-extras/skills/ascii-art/SKILL.md +144 -0
  18. package/bundles/antigravity-plugin-extras/skills/asking-questions/SKILL.md +81 -0
  19. package/bundles/antigravity-plugin-extras/skills/aws-agentic-ai/SKILL.md +118 -0
  20. package/bundles/antigravity-plugin-extras/skills/aws-agentic-ai/cross-service/credential-management.md +450 -0
  21. package/bundles/antigravity-plugin-extras/skills/aws-agentic-ai/services/browser/README.md +363 -0
  22. package/bundles/antigravity-plugin-extras/skills/aws-agentic-ai/services/code-interpreter/README.md +232 -0
  23. package/bundles/antigravity-plugin-extras/skills/aws-agentic-ai/services/gateway/README.md +100 -0
  24. package/bundles/antigravity-plugin-extras/skills/aws-agentic-ai/services/gateway/deploy-template.sh +117 -0
  25. package/bundles/antigravity-plugin-extras/skills/aws-agentic-ai/services/gateway/deployment-strategies.md +416 -0
  26. package/bundles/antigravity-plugin-extras/skills/aws-agentic-ai/services/gateway/troubleshooting-guide.md +384 -0
  27. package/bundles/antigravity-plugin-extras/skills/aws-agentic-ai/services/gateway/validate-deployment.sh +186 -0
  28. package/bundles/antigravity-plugin-extras/skills/aws-agentic-ai/services/identity/README.md +186 -0
  29. package/bundles/antigravity-plugin-extras/skills/aws-agentic-ai/services/memory/README.md +253 -0
  30. package/bundles/antigravity-plugin-extras/skills/aws-agentic-ai/services/observability/README.md +517 -0
  31. package/bundles/antigravity-plugin-extras/skills/aws-agentic-ai/services/runtime/README.md +215 -0
  32. package/bundles/antigravity-plugin-extras/skills/aws-cdk-development/SKILL.md +279 -0
  33. package/bundles/antigravity-plugin-extras/skills/aws-cdk-development/references/cdk-patterns.md +431 -0
  34. package/bundles/antigravity-plugin-extras/skills/aws-cdk-development/scripts/validate-stack.sh +240 -0
  35. package/bundles/antigravity-plugin-extras/skills/aws-cost-operations/SKILL.md +318 -0
  36. package/bundles/antigravity-plugin-extras/skills/aws-cost-operations/references/cloudwatch-alarms.md +567 -0
  37. package/bundles/antigravity-plugin-extras/skills/aws-cost-operations/references/operations-patterns.md +394 -0
  38. package/bundles/antigravity-plugin-extras/skills/aws-serverless-eda/SKILL.md +758 -0
  39. package/bundles/antigravity-plugin-extras/skills/aws-serverless-eda/references/deployment-best-practices.md +830 -0
  40. package/bundles/antigravity-plugin-extras/skills/aws-serverless-eda/references/eda-patterns.md +1002 -0
  41. package/bundles/antigravity-plugin-extras/skills/aws-serverless-eda/references/observability-best-practices.md +770 -0
  42. package/bundles/antigravity-plugin-extras/skills/aws-serverless-eda/references/performance-optimization.md +671 -0
  43. package/bundles/antigravity-plugin-extras/skills/aws-serverless-eda/references/security-best-practices.md +625 -0
  44. package/bundles/antigravity-plugin-extras/skills/aws-serverless-eda/references/serverless-patterns.md +838 -0
  45. package/bundles/antigravity-plugin-extras/skills/backend-to-frontend-handoff/SKILL.md +139 -0
  46. package/bundles/antigravity-plugin-extras/skills/banner-design/SKILL.md +188 -0
  47. package/bundles/antigravity-plugin-extras/skills/brand-design/SKILL.md +298 -0
  48. package/bundles/antigravity-plugin-extras/skills/brand-guidelines/LICENSE.txt +202 -0
  49. package/bundles/antigravity-plugin-extras/skills/brand-guidelines/SKILL.md +118 -0
  50. package/bundles/antigravity-plugin-extras/skills/brand-voice/SKILL.md +93 -0
  51. package/bundles/antigravity-plugin-extras/skills/building-ai-agent-on-cloudflare/SKILL.md +392 -0
  52. package/bundles/antigravity-plugin-extras/skills/building-ai-agent-on-cloudflare/references/agent-patterns.md +461 -0
  53. package/bundles/antigravity-plugin-extras/skills/building-ai-agent-on-cloudflare/references/examples.md +188 -0
  54. package/bundles/antigravity-plugin-extras/skills/building-ai-agent-on-cloudflare/references/state-patterns.md +360 -0
  55. package/bundles/antigravity-plugin-extras/skills/building-ai-agent-on-cloudflare/references/troubleshooting.md +362 -0
  56. package/bundles/antigravity-plugin-extras/skills/building-mcp-server-on-cloudflare/SKILL.md +266 -0
  57. package/bundles/antigravity-plugin-extras/skills/building-mcp-server-on-cloudflare/references/examples.md +115 -0
  58. package/bundles/antigravity-plugin-extras/skills/building-mcp-server-on-cloudflare/references/oauth-setup.md +338 -0
  59. package/bundles/antigravity-plugin-extras/skills/building-mcp-server-on-cloudflare/references/troubleshooting.md +317 -0
  60. package/bundles/antigravity-plugin-extras/skills/caching-patterns/SKILL.md +385 -0
  61. package/bundles/antigravity-plugin-extras/skills/canvas-design/LICENSE.txt +202 -0
  62. package/bundles/antigravity-plugin-extras/skills/canvas-design/SKILL.md +91 -0
  63. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/ArsenalSC-OFL.txt +93 -0
  64. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/ArsenalSC-Regular.ttf +0 -0
  65. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/BigShoulders-Bold.ttf +0 -0
  66. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/BigShoulders-OFL.txt +93 -0
  67. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/BigShoulders-Regular.ttf +0 -0
  68. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/Boldonse-OFL.txt +93 -0
  69. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/Boldonse-Regular.ttf +0 -0
  70. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/BricolageGrotesque-Bold.ttf +0 -0
  71. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/BricolageGrotesque-OFL.txt +93 -0
  72. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/BricolageGrotesque-Regular.ttf +0 -0
  73. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/CrimsonPro-Bold.ttf +0 -0
  74. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/CrimsonPro-Italic.ttf +0 -0
  75. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/CrimsonPro-OFL.txt +93 -0
  76. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/CrimsonPro-Regular.ttf +0 -0
  77. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/DMMono-OFL.txt +93 -0
  78. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/DMMono-Regular.ttf +0 -0
  79. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/EricaOne-OFL.txt +94 -0
  80. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/EricaOne-Regular.ttf +0 -0
  81. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/GeistMono-Bold.ttf +0 -0
  82. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/GeistMono-OFL.txt +93 -0
  83. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/GeistMono-Regular.ttf +0 -0
  84. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/Gloock-OFL.txt +93 -0
  85. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/Gloock-Regular.ttf +0 -0
  86. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/IBMPlexMono-Bold.ttf +0 -0
  87. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/IBMPlexMono-OFL.txt +93 -0
  88. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/IBMPlexMono-Regular.ttf +0 -0
  89. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/IBMPlexSerif-Bold.ttf +0 -0
  90. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/IBMPlexSerif-BoldItalic.ttf +0 -0
  91. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/IBMPlexSerif-Italic.ttf +0 -0
  92. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/IBMPlexSerif-Regular.ttf +0 -0
  93. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/InstrumentSans-Bold.ttf +0 -0
  94. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/InstrumentSans-BoldItalic.ttf +0 -0
  95. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/InstrumentSans-Italic.ttf +0 -0
  96. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/InstrumentSans-OFL.txt +93 -0
  97. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/InstrumentSans-Regular.ttf +0 -0
  98. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/InstrumentSerif-Italic.ttf +0 -0
  99. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/InstrumentSerif-Regular.ttf +0 -0
  100. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/Italiana-OFL.txt +93 -0
  101. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/Italiana-Regular.ttf +0 -0
  102. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/JetBrainsMono-Bold.ttf +0 -0
  103. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/JetBrainsMono-OFL.txt +93 -0
  104. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/JetBrainsMono-Regular.ttf +0 -0
  105. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/Jura-Light.ttf +0 -0
  106. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/Jura-Medium.ttf +0 -0
  107. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/Jura-OFL.txt +93 -0
  108. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/LibreBaskerville-OFL.txt +93 -0
  109. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/LibreBaskerville-Regular.ttf +0 -0
  110. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/Lora-Bold.ttf +0 -0
  111. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/Lora-BoldItalic.ttf +0 -0
  112. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/Lora-Italic.ttf +0 -0
  113. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/Lora-OFL.txt +93 -0
  114. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/Lora-Regular.ttf +0 -0
  115. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/NationalPark-Bold.ttf +0 -0
  116. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/NationalPark-OFL.txt +93 -0
  117. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/NationalPark-Regular.ttf +0 -0
  118. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/NothingYouCouldDo-OFL.txt +93 -0
  119. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/NothingYouCouldDo-Regular.ttf +0 -0
  120. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/Outfit-Bold.ttf +0 -0
  121. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/Outfit-OFL.txt +93 -0
  122. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/Outfit-Regular.ttf +0 -0
  123. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/PixelifySans-Medium.ttf +0 -0
  124. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/PixelifySans-OFL.txt +93 -0
  125. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/PoiretOne-OFL.txt +93 -0
  126. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/PoiretOne-Regular.ttf +0 -0
  127. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/RedHatMono-Bold.ttf +0 -0
  128. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/RedHatMono-OFL.txt +93 -0
  129. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/RedHatMono-Regular.ttf +0 -0
  130. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/Silkscreen-OFL.txt +93 -0
  131. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/Silkscreen-Regular.ttf +0 -0
  132. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/SmoochSans-Medium.ttf +0 -0
  133. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/SmoochSans-OFL.txt +93 -0
  134. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/Tektur-Medium.ttf +0 -0
  135. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/Tektur-OFL.txt +93 -0
  136. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/Tektur-Regular.ttf +0 -0
  137. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/WorkSans-Bold.ttf +0 -0
  138. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/WorkSans-BoldItalic.ttf +0 -0
  139. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/WorkSans-Italic.ttf +0 -0
  140. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/WorkSans-OFL.txt +93 -0
  141. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/WorkSans-Regular.ttf +0 -0
  142. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/YoungSerif-OFL.txt +93 -0
  143. package/bundles/antigravity-plugin-extras/skills/canvas-design/canvas-fonts/YoungSerif-Regular.ttf +0 -0
  144. package/bundles/antigravity-plugin-extras/skills/changelog-generator/SKILL.md +105 -0
  145. package/bundles/antigravity-plugin-extras/skills/code-explainer/SKILL.md +91 -0
  146. package/bundles/antigravity-plugin-extras/skills/competitive-ads-extractor/SKILL.md +294 -0
  147. package/bundles/antigravity-plugin-extras/skills/component-testing/SKILL.md +310 -0
  148. package/bundles/antigravity-plugin-extras/skills/content-research-writer/SKILL.md +539 -0
  149. package/bundles/antigravity-plugin-extras/skills/cross-review/SKILL.md +51 -0
  150. package/bundles/antigravity-plugin-extras/skills/data-analysis/SKILL.md +111 -0
  151. package/bundles/antigravity-plugin-extras/skills/data-contract-pipeline/README.md +248 -0
  152. package/bundles/antigravity-plugin-extras/skills/data-contract-pipeline/SKILL.md +203 -0
  153. package/bundles/antigravity-plugin-extras/skills/data-contract-pipeline/assets/adapter.py.template +44 -0
  154. package/bundles/antigravity-plugin-extras/skills/data-contract-pipeline/assets/api-router.py.template +43 -0
  155. package/bundles/antigravity-plugin-extras/skills/data-contract-pipeline/assets/contract-test.py.template +384 -0
  156. package/bundles/antigravity-plugin-extras/skills/data-contract-pipeline/assets/display-dto.py.template +39 -0
  157. package/bundles/antigravity-plugin-extras/skills/data-contract-pipeline/assets/frontend-service.ts.template +46 -0
  158. package/bundles/antigravity-plugin-extras/skills/data-contract-pipeline/assets/frontend-types.ts.template +38 -0
  159. package/bundles/antigravity-plugin-extras/skills/data-contract-pipeline/assets/ingestion-model.py.template +42 -0
  160. package/bundles/antigravity-plugin-extras/skills/data-contract-pipeline/assets/mapping-doc.md.template +46 -0
  161. package/bundles/antigravity-plugin-extras/skills/data-contract-pipeline/assets/normalizer.py.template +48 -0
  162. package/bundles/antigravity-plugin-extras/skills/data-contract-pipeline/assets/prompts/extract_requirements.md +36 -0
  163. package/bundles/antigravity-plugin-extras/skills/data-contract-pipeline/assets/prompts/extract_ui_demand.md +35 -0
  164. package/bundles/antigravity-plugin-extras/skills/data-contract-pipeline/assets/prompts/reconcile_mapping.md +66 -0
  165. package/bundles/antigravity-plugin-extras/skills/data-contract-pipeline/assets/query-catalog.md.template +62 -0
  166. package/bundles/antigravity-plugin-extras/skills/data-contract-pipeline/references/consumer-driven-contracts.md +131 -0
  167. package/bundles/antigravity-plugin-extras/skills/data-contract-pipeline/references/drift-check-catalog.md +305 -0
  168. package/bundles/antigravity-plugin-extras/skills/data-contract-pipeline/references/layer-responsibilities.md +333 -0
  169. package/bundles/antigravity-plugin-extras/skills/data-contract-pipeline/scripts/discover_connections.py +170 -0
  170. package/bundles/antigravity-plugin-extras/skills/data-contract-pipeline/scripts/discover_sources.py +161 -0
  171. package/bundles/antigravity-plugin-extras/skills/data-contract-pipeline/scripts/drift_check.py +171 -0
  172. package/bundles/antigravity-plugin-extras/skills/data-contract-pipeline/scripts/extract_schema.py +1363 -0
  173. package/bundles/antigravity-plugin-extras/skills/data-contract-pipeline/scripts/generate_gap_report.py +81 -0
  174. package/bundles/antigravity-plugin-extras/skills/data-contract-pipeline/scripts/generate_mapping_doc.py +294 -0
  175. package/bundles/antigravity-plugin-extras/skills/data-contract-pipeline/scripts/ts_dto_compare.py +214 -0
  176. package/bundles/antigravity-plugin-extras/skills/data-contract-pipeline/scripts/validate_lineage.py +51 -0
  177. package/bundles/antigravity-plugin-extras/skills/data-loader/SKILL.md +753 -0
  178. package/bundles/antigravity-plugin-extras/skills/data-validation/SKILL.md +220 -0
  179. package/bundles/antigravity-plugin-extras/skills/db-testing/SKILL.md +117 -0
  180. package/bundles/antigravity-plugin-extras/skills/deploy-local/SKILL.md +259 -0
  181. package/bundles/antigravity-plugin-extras/skills/design-md/SKILL.md +167 -0
  182. package/bundles/antigravity-plugin-extras/skills/design-system-tokens/SKILL.md +240 -0
  183. package/bundles/antigravity-plugin-extras/skills/design-system-tokens/references/DESIGN-SYSTEM-TEMPLATE.md +577 -0
  184. package/bundles/antigravity-plugin-extras/skills/developer-growth-analysis/SKILL.md +323 -0
  185. package/bundles/antigravity-plugin-extras/skills/doc-coauthoring/SKILL.md +378 -0
  186. package/bundles/antigravity-plugin-extras/skills/documentation-analyzer/SKILL.md +78 -0
  187. package/bundles/antigravity-plugin-extras/skills/domain-name-brainstormer/SKILL.md +213 -0
  188. package/bundles/antigravity-plugin-extras/skills/enterprise-dashboard-aesthetic-system/SKILL.md +120 -0
  189. package/bundles/antigravity-plugin-extras/skills/excalidraw/SKILL.md +193 -0
  190. package/bundles/antigravity-plugin-extras/skills/excalidraw/references/element-types.md +497 -0
  191. package/bundles/antigravity-plugin-extras/skills/excalidraw/references/excalidraw-schema.md +356 -0
  192. package/bundles/antigravity-plugin-extras/skills/excalidraw/references/reliable-diagrams.md +115 -0
  193. package/bundles/antigravity-plugin-extras/skills/excalidraw/scripts/README.md +60 -0
  194. package/bundles/antigravity-plugin-extras/skills/excalidraw/scripts/add-arrow.py +354 -0
  195. package/bundles/antigravity-plugin-extras/skills/excalidraw/scripts/add-icon-to-diagram.py +412 -0
  196. package/bundles/antigravity-plugin-extras/skills/excalidraw/scripts/split-excalidraw-library.py +183 -0
  197. package/bundles/antigravity-plugin-extras/skills/excalidraw/templates/business-flow-swimlane-template.excalidraw +334 -0
  198. package/bundles/antigravity-plugin-extras/skills/excalidraw/templates/class-diagram-template.excalidraw +558 -0
  199. package/bundles/antigravity-plugin-extras/skills/excalidraw/templates/data-flow-diagram-template.excalidraw +279 -0
  200. package/bundles/antigravity-plugin-extras/skills/excalidraw/templates/er-diagram-template.excalidraw +662 -0
  201. package/bundles/antigravity-plugin-extras/skills/excalidraw/templates/flowchart-template.excalidraw +179 -0
  202. package/bundles/antigravity-plugin-extras/skills/excalidraw/templates/mindmap-template.excalidraw +244 -0
  203. package/bundles/antigravity-plugin-extras/skills/excalidraw/templates/relationship-template.excalidraw +145 -0
  204. package/bundles/antigravity-plugin-extras/skills/excalidraw/templates/reliable-flowchart.excalidraw +1 -0
  205. package/bundles/antigravity-plugin-extras/skills/excalidraw/templates/sequence-diagram-template.excalidraw +509 -0
  206. package/bundles/antigravity-plugin-extras/skills/file-organizer/SKILL.md +434 -0
  207. package/bundles/antigravity-plugin-extras/skills/game-changing-features/README.md +221 -0
  208. package/bundles/antigravity-plugin-extras/skills/game-changing-features/SKILL.md +265 -0
  209. package/bundles/antigravity-plugin-extras/skills/github-issues/SKILL.md +359 -0
  210. package/bundles/antigravity-plugin-extras/skills/github-issues/references/templates.md +90 -0
  211. package/bundles/antigravity-plugin-extras/skills/golden-nuggets/SKILL.md +192 -0
  212. package/bundles/antigravity-plugin-extras/skills/humanizer/SKILL.md +194 -0
  213. package/bundles/antigravity-plugin-extras/skills/image-enhancer/SKILL.md +100 -0
  214. package/bundles/antigravity-plugin-extras/skills/intent-writer/SKILL.md +201 -0
  215. package/bundles/antigravity-plugin-extras/skills/internal-comms/LICENSE.txt +202 -0
  216. package/bundles/antigravity-plugin-extras/skills/internal-comms/SKILL.md +124 -0
  217. package/bundles/antigravity-plugin-extras/skills/internal-comms/examples/3p-updates.md +47 -0
  218. package/bundles/antigravity-plugin-extras/skills/internal-comms/examples/company-newsletter.md +65 -0
  219. package/bundles/antigravity-plugin-extras/skills/internal-comms/examples/faq-answers.md +30 -0
  220. package/bundles/antigravity-plugin-extras/skills/internal-comms/examples/general-comms.md +16 -0
  221. package/bundles/antigravity-plugin-extras/skills/invoice-organizer/SKILL.md +447 -0
  222. package/bundles/antigravity-plugin-extras/skills/jira-issues/SKILL.md +182 -0
  223. package/bundles/antigravity-plugin-extras/skills/job-application/SKILL.md +188 -0
  224. package/bundles/antigravity-plugin-extras/skills/lead-research-assistant/SKILL.md +200 -0
  225. package/bundles/antigravity-plugin-extras/skills/llm-application-dev/SKILL.md +217 -0
  226. package/bundles/antigravity-plugin-extras/skills/mcp-builder/LICENSE.txt +202 -0
  227. package/bundles/antigravity-plugin-extras/skills/mcp-builder/SKILL.md +100 -0
  228. package/bundles/antigravity-plugin-extras/skills/mcp-builder/references/evaluation.md +602 -0
  229. package/bundles/antigravity-plugin-extras/skills/mcp-builder/references/mcp_best_practices.md +915 -0
  230. package/bundles/antigravity-plugin-extras/skills/mcp-builder/references/node_mcp_server.md +916 -0
  231. package/bundles/antigravity-plugin-extras/skills/mcp-builder/references/python_mcp_server.md +752 -0
  232. package/bundles/antigravity-plugin-extras/skills/mcp-builder/scripts/connections.py +151 -0
  233. package/bundles/antigravity-plugin-extras/skills/mcp-builder/scripts/evaluation.py +373 -0
  234. package/bundles/antigravity-plugin-extras/skills/mcp-builder/scripts/example_evaluation.xml +22 -0
  235. package/bundles/antigravity-plugin-extras/skills/mcp-builder/scripts/requirements.txt +2 -0
  236. package/bundles/antigravity-plugin-extras/skills/meeting-insights-analyzer/SKILL.md +328 -0
  237. package/bundles/antigravity-plugin-extras/skills/monorepo/SKILL.md +267 -0
  238. package/bundles/antigravity-plugin-extras/skills/naming-analyzer/SKILL.md +376 -0
  239. package/bundles/antigravity-plugin-extras/skills/nextjs-app-router/SKILL.md +271 -0
  240. package/bundles/antigravity-plugin-extras/skills/notebooklm/AUTHENTICATION.md +154 -0
  241. package/bundles/antigravity-plugin-extras/skills/notebooklm/SKILL.md +270 -0
  242. package/bundles/antigravity-plugin-extras/skills/notebooklm/references/api_reference.md +309 -0
  243. package/bundles/antigravity-plugin-extras/skills/notebooklm/references/troubleshooting.md +376 -0
  244. package/bundles/antigravity-plugin-extras/skills/notebooklm/references/usage_patterns.md +338 -0
  245. package/bundles/antigravity-plugin-extras/skills/notebooklm/scripts/__init__.py +81 -0
  246. package/bundles/antigravity-plugin-extras/skills/notebooklm/scripts/ask_question.py +256 -0
  247. package/bundles/antigravity-plugin-extras/skills/notebooklm/scripts/auth_manager.py +358 -0
  248. package/bundles/antigravity-plugin-extras/skills/notebooklm/scripts/browser_session.py +255 -0
  249. package/bundles/antigravity-plugin-extras/skills/notebooklm/scripts/browser_utils.py +107 -0
  250. package/bundles/antigravity-plugin-extras/skills/notebooklm/scripts/cleanup_manager.py +302 -0
  251. package/bundles/antigravity-plugin-extras/skills/notebooklm/scripts/config.py +44 -0
  252. package/bundles/antigravity-plugin-extras/skills/notebooklm/scripts/notebook_manager.py +410 -0
  253. package/bundles/antigravity-plugin-extras/skills/notebooklm/scripts/run.py +102 -0
  254. package/bundles/antigravity-plugin-extras/skills/notebooklm/scripts/setup_environment.py +204 -0
  255. package/bundles/antigravity-plugin-extras/skills/observability/SKILL.md +371 -0
  256. package/bundles/antigravity-plugin-extras/skills/onboard-project/SKILL.md +192 -0
  257. package/bundles/antigravity-plugin-extras/skills/performance-testing/SKILL.md +226 -0
  258. package/bundles/antigravity-plugin-extras/skills/pipeline-state/SKILL.md +208 -0
  259. package/bundles/antigravity-plugin-extras/skills/plantuml/SKILL.md +228 -0
  260. package/bundles/antigravity-plugin-extras/skills/popular-web-designs/SKILL.md +142 -0
  261. package/bundles/antigravity-plugin-extras/skills/popular-web-designs/templates/linear.app.md +196 -0
  262. package/bundles/antigravity-plugin-extras/skills/popular-web-designs/templates/stripe.md +214 -0
  263. package/bundles/antigravity-plugin-extras/skills/popular-web-designs/templates/vercel.md +218 -0
  264. package/bundles/antigravity-plugin-extras/skills/prd-to-code/SKILL.md +127 -0
  265. package/bundles/antigravity-plugin-extras/skills/raffle-winner-picker/SKILL.md +159 -0
  266. package/bundles/antigravity-plugin-extras/skills/react-useeffect/README.md +320 -0
  267. package/bundles/antigravity-plugin-extras/skills/react-useeffect/SKILL.md +53 -0
  268. package/bundles/antigravity-plugin-extras/skills/react-useeffect/alternatives.md +258 -0
  269. package/bundles/antigravity-plugin-extras/skills/react-useeffect/anti-patterns.md +290 -0
  270. package/bundles/antigravity-plugin-extras/skills/receiving-code-review/SKILL.md +213 -0
  271. package/bundles/antigravity-plugin-extras/skills/relay/SKILL.md +246 -0
  272. package/bundles/antigravity-plugin-extras/skills/requesting-code-review/SKILL.md +105 -0
  273. package/bundles/antigravity-plugin-extras/skills/requesting-code-review/code-reviewer.md +146 -0
  274. package/bundles/antigravity-plugin-extras/skills/responsive-mobile-native/SKILL.md +350 -0
  275. package/bundles/antigravity-plugin-extras/skills/responsive-mobile-native/references/pwa-checklist.md +226 -0
  276. package/bundles/antigravity-plugin-extras/skills/responsive-mobile-native/references/touch-and-interaction.md +265 -0
  277. package/bundles/antigravity-plugin-extras/skills/responsive-mobile-native/references/transformation-catalogue.md +326 -0
  278. package/bundles/antigravity-plugin-extras/skills/schema-migration/SKILL.md +275 -0
  279. package/bundles/antigravity-plugin-extras/skills/setup-project-ai/SKILL.md +120 -0
  280. package/bundles/antigravity-plugin-extras/skills/shadcn-radix/SKILL.md +330 -0
  281. package/bundles/antigravity-plugin-extras/skills/sketch/SKILL.md +104 -0
  282. package/bundles/antigravity-plugin-extras/skills/slack-gif-creator/LICENSE.txt +202 -0
  283. package/bundles/antigravity-plugin-extras/skills/slack-gif-creator/SKILL.md +646 -0
  284. package/bundles/antigravity-plugin-extras/skills/slack-gif-creator/core/color_palettes.py +302 -0
  285. package/bundles/antigravity-plugin-extras/skills/slack-gif-creator/core/easing.py +230 -0
  286. package/bundles/antigravity-plugin-extras/skills/slack-gif-creator/core/frame_composer.py +469 -0
  287. package/bundles/antigravity-plugin-extras/skills/slack-gif-creator/core/gif_builder.py +246 -0
  288. package/bundles/antigravity-plugin-extras/skills/slack-gif-creator/core/typography.py +357 -0
  289. package/bundles/antigravity-plugin-extras/skills/slack-gif-creator/core/validators.py +264 -0
  290. package/bundles/antigravity-plugin-extras/skills/slack-gif-creator/core/visual_effects.py +494 -0
  291. package/bundles/antigravity-plugin-extras/skills/slack-gif-creator/requirements.txt +4 -0
  292. package/bundles/antigravity-plugin-extras/skills/slack-gif-creator/templates/bounce.py +106 -0
  293. package/bundles/antigravity-plugin-extras/skills/slack-gif-creator/templates/explode.py +331 -0
  294. package/bundles/antigravity-plugin-extras/skills/slack-gif-creator/templates/fade.py +329 -0
  295. package/bundles/antigravity-plugin-extras/skills/slack-gif-creator/templates/flip.py +291 -0
  296. package/bundles/antigravity-plugin-extras/skills/slack-gif-creator/templates/kaleidoscope.py +211 -0
  297. package/bundles/antigravity-plugin-extras/skills/slack-gif-creator/templates/morph.py +329 -0
  298. package/bundles/antigravity-plugin-extras/skills/slack-gif-creator/templates/move.py +293 -0
  299. package/bundles/antigravity-plugin-extras/skills/slack-gif-creator/templates/pulse.py +268 -0
  300. package/bundles/antigravity-plugin-extras/skills/slack-gif-creator/templates/shake.py +127 -0
  301. package/bundles/antigravity-plugin-extras/skills/slack-gif-creator/templates/slide.py +291 -0
  302. package/bundles/antigravity-plugin-extras/skills/slack-gif-creator/templates/spin.py +269 -0
  303. package/bundles/antigravity-plugin-extras/skills/slack-gif-creator/templates/wiggle.py +300 -0
  304. package/bundles/antigravity-plugin-extras/skills/slack-gif-creator/templates/zoom.py +312 -0
  305. package/bundles/antigravity-plugin-extras/skills/slides/SKILL.md +38 -0
  306. package/bundles/antigravity-plugin-extras/skills/state-tracking/SKILL.md +131 -0
  307. package/bundles/antigravity-plugin-extras/skills/streamlit-dev/SKILL.md +268 -0
  308. package/bundles/antigravity-plugin-extras/skills/svg-create/SKILL.md +251 -0
  309. package/bundles/antigravity-plugin-extras/skills/theme-factory/LICENSE.txt +202 -0
  310. package/bundles/antigravity-plugin-extras/skills/theme-factory/SKILL.md +59 -0
  311. package/bundles/antigravity-plugin-extras/skills/theme-factory/theme-showcase.pdf +0 -0
  312. package/bundles/antigravity-plugin-extras/skills/theme-factory/themes/arctic-frost.md +19 -0
  313. package/bundles/antigravity-plugin-extras/skills/theme-factory/themes/botanical-garden.md +19 -0
  314. package/bundles/antigravity-plugin-extras/skills/theme-factory/themes/desert-rose.md +19 -0
  315. package/bundles/antigravity-plugin-extras/skills/theme-factory/themes/forest-canopy.md +19 -0
  316. package/bundles/antigravity-plugin-extras/skills/theme-factory/themes/golden-hour.md +19 -0
  317. package/bundles/antigravity-plugin-extras/skills/theme-factory/themes/midnight-galaxy.md +19 -0
  318. package/bundles/antigravity-plugin-extras/skills/theme-factory/themes/modern-minimalist.md +19 -0
  319. package/bundles/antigravity-plugin-extras/skills/theme-factory/themes/ocean-depths.md +19 -0
  320. package/bundles/antigravity-plugin-extras/skills/theme-factory/themes/sunset-boulevard.md +19 -0
  321. package/bundles/antigravity-plugin-extras/skills/theme-factory/themes/tech-innovation.md +19 -0
  322. package/bundles/antigravity-plugin-extras/skills/ui-styling-patterns/LICENSE.txt +202 -0
  323. package/bundles/antigravity-plugin-extras/skills/ui-styling-patterns/SKILL.md +320 -0
  324. package/bundles/antigravity-plugin-extras/skills/ui-testing/SKILL.md +660 -0
  325. package/bundles/antigravity-plugin-extras/skills/ui-ux-intelligence/SKILL.md +660 -0
  326. package/bundles/antigravity-plugin-extras/skills/ui-ux-intelligence/data/_sync_all.py +414 -0
  327. package/bundles/antigravity-plugin-extras/skills/ui-ux-intelligence/data/app-interface.csv +31 -0
  328. package/bundles/antigravity-plugin-extras/skills/ui-ux-intelligence/data/charts.csv +26 -0
  329. package/bundles/antigravity-plugin-extras/skills/ui-ux-intelligence/data/colors.csv +162 -0
  330. package/bundles/antigravity-plugin-extras/skills/ui-ux-intelligence/data/design.csv +1776 -0
  331. package/bundles/antigravity-plugin-extras/skills/ui-ux-intelligence/data/draft.csv +1779 -0
  332. package/bundles/antigravity-plugin-extras/skills/ui-ux-intelligence/data/google-fonts.csv +1924 -0
  333. package/bundles/antigravity-plugin-extras/skills/ui-ux-intelligence/data/icons.csv +106 -0
  334. package/bundles/antigravity-plugin-extras/skills/ui-ux-intelligence/data/landing.csv +35 -0
  335. package/bundles/antigravity-plugin-extras/skills/ui-ux-intelligence/data/products.csv +162 -0
  336. package/bundles/antigravity-plugin-extras/skills/ui-ux-intelligence/data/react-performance.csv +45 -0
  337. package/bundles/antigravity-plugin-extras/skills/ui-ux-intelligence/data/styles.csv +85 -0
  338. package/bundles/antigravity-plugin-extras/skills/ui-ux-intelligence/data/typography.csv +74 -0
  339. package/bundles/antigravity-plugin-extras/skills/ui-ux-intelligence/data/ui-reasoning.csv +162 -0
  340. package/bundles/antigravity-plugin-extras/skills/ui-ux-intelligence/data/ux-guidelines.csv +100 -0
  341. package/bundles/antigravity-plugin-extras/skills/ui-ux-intelligence/scripts/core.py +247 -0
  342. package/bundles/antigravity-plugin-extras/skills/ui-ux-intelligence/scripts/design_system.py +1067 -0
  343. package/bundles/antigravity-plugin-extras/skills/ui-ux-intelligence/scripts/search.py +114 -0
  344. package/bundles/antigravity-plugin-extras/skills/understand-anything/SKILL.md +140 -0
  345. package/bundles/antigravity-plugin-extras/skills/understand-anything/references/commands.md +252 -0
  346. package/bundles/antigravity-plugin-extras/skills/understand-anything/references/graph-schema.md +116 -0
  347. package/bundles/antigravity-plugin-extras/skills/understand-anything/references/pipeline.md +331 -0
  348. package/bundles/antigravity-plugin-extras/skills/update-readme/SKILL.md +74 -0
  349. package/bundles/antigravity-plugin-extras/skills/verification-loop/SKILL.md +209 -0
  350. package/bundles/antigravity-plugin-extras/skills/video-downloader/SKILL.md +107 -0
  351. package/bundles/antigravity-plugin-extras/skills/webapp-development/SKILL.md +288 -0
  352. package/bundles/antigravity-plugin-extras/skills/word-cloud/SKILL.md +339 -0
  353. package/bundles/antigravity-plugin-extras/skills/word-cloud/agents/agent-interface.md +175 -0
  354. package/bundles/antigravity-plugin-extras/skills/word-cloud/references/html.md +384 -0
  355. package/bundles/antigravity-plugin-extras/skills/word-cloud/references/nlp-keywords.md +127 -0
  356. package/bundles/antigravity-plugin-extras/skills/word-cloud/references/palettes.md +149 -0
  357. package/bundles/antigravity-plugin-extras/skills/word-cloud/references/python.md +249 -0
  358. package/bundles/antigravity-plugin-extras/skills/word-cloud/references/react.md +427 -0
  359. package/bundles/antigravity-plugin-extras/skills/word-cloud/references/shapes.md +135 -0
  360. package/bundles/antigravity-plugin-extras/skills/word-cloud/references/stopwords.md +115 -0
  361. package/bundles/antigravity-plugin-extras/skills/youtube-transcript/SKILL.md +416 -0
  362. package/bundles/manifest.json +2 -1
  363. package/dist/cli.js +166 -37
  364. package/package.json +1 -1
@@ -0,0 +1,265 @@
1
+ # Touch & Interaction Reference
2
+
3
+ Complete rules for making web UI feel native on touch devices.
4
+
5
+ ---
6
+
7
+ ## Tap Targets
8
+
9
+ Every interactive element must meet the **44×44px minimum** (Apple HIG, WCAG 2.5.8).
10
+ This includes buttons, links, nav items, table row actions, icon buttons, toggles,
11
+ checkboxes, and close/dismiss controls.
12
+
13
+ **Expanding small elements without changing visual size**:
14
+
15
+ ```css
16
+ /* Use padding to expand the hit area without changing appearance */
17
+ .icon-btn {
18
+ padding: 12px; /* visual size + hit area expansion */
19
+ margin: -12px; /* negative margin to cancel layout effect */
20
+ }
21
+
22
+ /* Or use pseudo-element hit area expansion */
23
+ .small-link {
24
+ position: relative;
25
+ }
26
+ .small-link::after {
27
+ content: '';
28
+ position: absolute;
29
+ inset: -10px; /* expand hit area 10px in all directions */
30
+ }
31
+ ```
32
+
33
+ ---
34
+
35
+ ## Removing Hover Dependencies
36
+
37
+ ### Audit pattern
38
+
39
+ Search for every `:hover` style in the codebase. For each one, ask:
40
+ - Does this reveal content? → Must have a touch equivalent
41
+ - Does this change visual state (colour, shadow)? → Also apply to `:active` and `:focus-visible`
42
+ - Is it purely decorative (slight glow)? → Safe to leave but add `:active` too
43
+
44
+ ### Fixing hover-only reveals
45
+
46
+ ```css
47
+ /* BEFORE — only shows on hover */
48
+ .action-buttons {
49
+ opacity: 0;
50
+ transition: opacity 0.15s;
51
+ }
52
+ .table-row:hover .action-buttons {
53
+ opacity: 1;
54
+ }
55
+
56
+ /* AFTER — always visible on touch devices */
57
+ @media (hover: none) {
58
+ .action-buttons {
59
+ opacity: 1;
60
+ }
61
+ }
62
+ /* Desktop hover behaviour preserved via @media (hover: hover) */
63
+ @media (hover: hover) {
64
+ .action-buttons { opacity: 0; }
65
+ .table-row:hover .action-buttons { opacity: 1; }
66
+ }
67
+ ```
68
+
69
+ The `@media (hover: hover)` / `@media (hover: none)` media query is the
70
+ correct way to distinguish touch from pointer devices. Do not use user-agent sniffing.
71
+
72
+ ### Touch feedback
73
+
74
+ Every tappable element needs visible feedback on tap. Use `:active`:
75
+
76
+ ```css
77
+ .btn:active,
78
+ .nav-item:active,
79
+ .card:active {
80
+ transform: scale(0.97);
81
+ opacity: 0.85;
82
+ transition: transform 0.1s, opacity 0.1s;
83
+ }
84
+
85
+ /* Prevent iOS default tap highlight (replace with your own) */
86
+ * {
87
+ -webkit-tap-highlight-color: transparent;
88
+ }
89
+ ```
90
+
91
+ ---
92
+
93
+ ## Scroll Handling
94
+
95
+ ### Smooth momentum scroll
96
+
97
+ ```css
98
+ .scrollable-container {
99
+ overflow-y: auto;
100
+ -webkit-overflow-scrolling: touch; /* momentum scroll on iOS */
101
+ overscroll-behavior: contain; /* prevent scroll chaining to parent */
102
+ }
103
+ ```
104
+
105
+ ### Horizontal scroll containers (KPI strips, tab bars, chip lists)
106
+
107
+ ```css
108
+ .horizontal-scroll {
109
+ display: flex;
110
+ overflow-x: auto;
111
+ scroll-snap-type: x mandatory;
112
+ -webkit-overflow-scrolling: touch;
113
+ scrollbar-width: none; /* hide scrollbar on mobile */
114
+ gap: 10px;
115
+ padding-bottom: 4px; /* prevents shadow clipping */
116
+ }
117
+ .horizontal-scroll::-webkit-scrollbar { display: none; }
118
+
119
+ .scroll-item {
120
+ flex-shrink: 0;
121
+ scroll-snap-align: start;
122
+ }
123
+ ```
124
+
125
+ ### Preventing scroll bleed in modals / sheets
126
+
127
+ ```css
128
+ /* When sheet/modal is open, lock the body */
129
+ body.sheet-open {
130
+ overflow: hidden;
131
+ /* iOS requires this too: */
132
+ position: fixed;
133
+ width: 100%;
134
+ }
135
+ ```
136
+
137
+ ---
138
+
139
+ ## Safe Area Insets (iPhone Notch & Home Bar)
140
+
141
+ Required for any fixed elements at top or bottom of screen.
142
+
143
+ ```css
144
+ /* Bottom nav bar */
145
+ .bottom-nav {
146
+ padding-bottom: env(safe-area-inset-bottom);
147
+ /* min height + safe area */
148
+ height: calc(56px + env(safe-area-inset-bottom));
149
+ }
150
+
151
+ /* Content area */
152
+ .main-content {
153
+ padding-bottom: calc(64px + env(safe-area-inset-bottom));
154
+ padding-top: env(safe-area-inset-top);
155
+ }
156
+
157
+ /* Bottom sheets */
158
+ .bottom-sheet-content {
159
+ padding-bottom: max(16px, env(safe-area-inset-bottom));
160
+ }
161
+ ```
162
+
163
+ Requires `viewport-fit=cover` in the viewport meta tag (covered in SKILL.md).
164
+
165
+ ---
166
+
167
+ ## Gesture Hooks
168
+
169
+ ### Swipe to dismiss / navigate back
170
+
171
+ Implement with `touchstart` + `touchend` tracking:
172
+
173
+ ```js
174
+ // Framework-agnostic swipe detector
175
+ function useSwipe({ onSwipeLeft, onSwipeRight, threshold = 50 }) {
176
+ let startX = null;
177
+
178
+ return {
179
+ onTouchStart: (e) => { startX = e.touches[0].clientX; },
180
+ onTouchEnd: (e) => {
181
+ if (startX === null) return;
182
+ const diff = e.changedTouches[0].clientX - startX;
183
+ if (Math.abs(diff) < threshold) return;
184
+ if (diff < 0) onSwipeLeft?.();
185
+ else onSwipeRight?.();
186
+ startX = null;
187
+ }
188
+ };
189
+ }
190
+ ```
191
+
192
+ ### Pull-to-refresh
193
+
194
+ Only implement if the page has data that updates in real time (queue, live map).
195
+ Use native `overscroll-behavior: contain` + CSS animation, or a lightweight library.
196
+ Do not build custom pull-to-refresh — it conflicts with browser scroll behaviour.
197
+
198
+ ### Bottom sheet drag handle
199
+
200
+ ```js
201
+ // Minimal drag-to-expand/collapse for a bottom sheet
202
+ function initSheetDrag(sheetEl) {
203
+ let startY, startHeight;
204
+ const handle = sheetEl.querySelector('.drag-handle');
205
+
206
+ handle.addEventListener('touchstart', (e) => {
207
+ startY = e.touches[0].clientY;
208
+ startHeight = sheetEl.getBoundingClientRect().height;
209
+ });
210
+
211
+ handle.addEventListener('touchmove', (e) => {
212
+ const delta = startY - e.touches[0].clientY;
213
+ const newHeight = Math.min(
214
+ Math.max(startHeight + delta, 120), // min 120px
215
+ window.innerHeight * 0.9 // max 90vh
216
+ );
217
+ sheetEl.style.height = newHeight + 'px';
218
+ });
219
+ }
220
+ ```
221
+
222
+ ---
223
+
224
+ ## Input & Keyboard
225
+
226
+ ### Prevent iOS zoom on input focus
227
+
228
+ ```css
229
+ input, select, textarea {
230
+ font-size: 16px; /* minimum to prevent iOS auto-zoom */
231
+ }
232
+ ```
233
+
234
+ If your design system uses smaller input text, use `font-size: 16px` on the
235
+ element itself and `transform: scale(0.875)` with `transform-origin: left` to
236
+ visually match your design.
237
+
238
+ ### Keyboard-aware layout
239
+
240
+ When the virtual keyboard opens, fixed elements at the bottom of the screen can
241
+ end up behind it. Use the `visualViewport` API to detect this:
242
+
243
+ ```js
244
+ window.visualViewport?.addEventListener('resize', () => {
245
+ const keyboardHeight = window.innerHeight - window.visualViewport.height;
246
+ document.querySelector('.bottom-bar').style.transform =
247
+ `translateY(-${keyboardHeight}px)`;
248
+ });
249
+ ```
250
+
251
+ ---
252
+
253
+ ## CSS `touch-action` Property
254
+
255
+ Control which gestures the browser handles natively:
256
+
257
+ | Value | Use case |
258
+ |---|---|
259
+ | `touch-action: pan-y` | Vertical scroll only (carousel, horizontal swipe area) |
260
+ | `touch-action: pan-x` | Horizontal scroll only |
261
+ | `touch-action: none` | Fully custom gesture (drawing canvas, drag-and-drop) |
262
+ | `touch-action: manipulation` | Allow pan + pinch-zoom, disable double-tap zoom |
263
+
264
+ Apply `touch-action: manipulation` to all buttons and interactive elements to
265
+ eliminate the 300ms tap delay on older browsers.
@@ -0,0 +1,326 @@
1
+ # Transformation Catalogue
2
+
3
+ Complete catalogue of desktop UI primitive → mobile pattern mappings.
4
+ For each transformation: what it is, when to apply it, and the pattern to follow.
5
+
6
+ ---
7
+
8
+ ## Table of Contents
9
+
10
+ 1. Data Table → Card List
11
+ 2. KPI Strip → Horizontal Scroll / Stacked Grid
12
+ 3. Multi-column Form → Single Column
13
+ 4. Map → Full-Screen with Floating Controls
14
+ 5. Modal / Dialog → Bottom Sheet
15
+ 6. Multi-tab Interface → Tab Bar or Accordion
16
+ 7. Dense Toolbar / Filter Strip → Collapsible / Sheet
17
+ 8. Sidebar Panel → Bottom Sheet or Drawer
18
+ 9. Hover Cards / Tooltip Content → Always Visible or Tap-to-Reveal
19
+ 10. Split Pane (master/detail) → Stack with Navigation
20
+ 11. Dropdown Menus → Action Sheet
21
+ 12. Pagination → Infinite Scroll or Load More
22
+
23
+ ---
24
+
25
+ ## 1. Data Table → Card List
26
+
27
+ **When to apply**: Table has more than 3 columns, or any column would be less
28
+ than 80px wide at 375px viewport.
29
+
30
+ **Pattern**: Each table row becomes a card. The most important column value
31
+ becomes the card headline. All other columns become label–value pairs within
32
+ the card.
33
+
34
+ ```
35
+ Desktop row: Mobile card:
36
+ │ #84201 │ Niamh O'S │ Dispatch │ ┌────────────────────────────┐
37
+ │ XGS-PON│ 27 Mar │ 91% │ │ #84201 [XGS-PON] │
38
+ │ Niamh O'Sullivan │
39
+ │ Fault Repair — No Service │
40
+ │ 27 Mar · 09:00–13:00 │
41
+ │ ✅ Dispatch 91% confident │
42
+ └────────────────────────────┘
43
+ ```
44
+
45
+ **Rules**:
46
+ - Card min-height: 72px; padding: 14px 16px
47
+ - Primary identifier (ID, name) at top in bold
48
+ - Status badge always visible (not hidden in a column)
49
+ - Row actions (arrow, kebab) become a visible button at top-right of card
50
+ - Swipe-left to reveal destructive action (optional but native-feeling)
51
+
52
+ ---
53
+
54
+ ## 2. KPI Strip → Horizontal Scroll or 2×N Grid
55
+
56
+ **When to apply**: KPI strip has more than 3 cards and does not fit at 375px.
57
+
58
+ **Option A — Horizontal scroll** (preferred when cards are equal weight):
59
+ ```css
60
+ .kpi-strip {
61
+ display: flex;
62
+ overflow-x: auto;
63
+ scroll-snap-type: x mandatory;
64
+ -webkit-overflow-scrolling: touch;
65
+ gap: 10px;
66
+ padding-bottom: 4px; /* show scroll shadow */
67
+ }
68
+ .kpi-card {
69
+ flex: 0 0 160px; /* fixed width, scrollable */
70
+ scroll-snap-align: start;
71
+ }
72
+ ```
73
+
74
+ **Option B — 2×N grid** (preferred when one KPI is primary):
75
+ ```css
76
+ @media (max-width: 767px) {
77
+ .kpi-strip {
78
+ display: grid;
79
+ grid-template-columns: 1fr 1fr;
80
+ }
81
+ .kpi-card:first-child {
82
+ grid-column: 1 / -1; /* primary KPI spans full width */
83
+ }
84
+ }
85
+ ```
86
+
87
+ ---
88
+
89
+ ## 3. Multi-column Form → Single Column
90
+
91
+ **When to apply**: Any form with more than 1 column at mobile widths.
92
+
93
+ **Rules**:
94
+ - All fields: `width: 100%`
95
+ - Labels above fields (not inline/floating on mobile)
96
+ - Input `font-size: 16px` minimum (prevents iOS zoom on focus)
97
+ - Grouping: use visual separators (border-top, section label) not columns
98
+ - Submit button: full width, 48px height, at the bottom of the form
99
+
100
+ ---
101
+
102
+ ## 4. Map → Full-Screen with Floating Controls
103
+
104
+ **When to apply**: Map is embedded in a split layout (map + sidebar).
105
+
106
+ **Pattern**: The map goes full-screen. Sidebar content moves to a
107
+ bottom sheet that the user can pull up.
108
+
109
+ ```
110
+ Desktop: Mobile:
111
+ ┌──────────┬─────────┐ ┌──────────────────────┐
112
+ │ │ Summary │ │ │
113
+ │ MAP │ Stats │ │ MAP │
114
+ │ │ Alerts │ │ (full screen) │
115
+ │ │ │ ├──────────────────────┤
116
+ └──────────┴─────────┘ │ ▲ Summary 38 jobs │
117
+ │ (pull up for detail) │
118
+ └──────────────────────┘
119
+ ```
120
+
121
+ **Implementation**:
122
+ - Map container: `position: fixed; inset: 0; z-index: 0`
123
+ - Bottom sheet: `position: fixed; bottom: 0; left: 0; right: 0; z-index: 10`
124
+ - Bottom sheet default height: ~200px; expanded height: 50vh–80vh
125
+ - Use CSS `transform: translateY()` + `transition` for pull-up animation
126
+ - Add touch drag handle (40×4px rounded bar at top of sheet)
127
+ - Floating action controls (zoom, locate): `position: absolute` over map
128
+
129
+ ---
130
+
131
+ ## 5. Modal / Dialog → Bottom Sheet
132
+
133
+ **When to apply**: Any `position: fixed` modal / dialog on mobile.
134
+
135
+ **Pattern**: Modals on mobile should slide up from the bottom, not float
136
+ in the center. Center-modal on mobile = awkward dismiss, keyboard issues,
137
+ 95% coverage.
138
+
139
+ ```css
140
+ /* Desktop: centered modal */
141
+ @media (min-width: 768px) {
142
+ .modal {
143
+ top: 50%; left: 50%;
144
+ transform: translate(-50%, -50%);
145
+ max-width: 600px; border-radius: 16px;
146
+ }
147
+ }
148
+
149
+ /* Mobile: bottom sheet */
150
+ @media (max-width: 767px) {
151
+ .modal {
152
+ top: auto; left: 0; right: 0; bottom: 0;
153
+ transform: translateY(0);
154
+ border-radius: 20px 20px 0 0;
155
+ max-height: 90vh;
156
+ overflow-y: auto;
157
+ }
158
+ .modal-enter { transform: translateY(100%); }
159
+ .modal-enter-active { transform: translateY(0); transition: transform 0.3s ease; }
160
+ }
161
+ ```
162
+
163
+ **Rules**:
164
+ - Add drag handle at top
165
+ - `padding-bottom: env(safe-area-inset-bottom)` on content
166
+ - Tap outside backdrop dismisses sheet
167
+ - Scrollable content inside sheet: `overflow-y: auto; -webkit-overflow-scrolling: touch`
168
+
169
+ ---
170
+
171
+ ## 6. Multi-tab Interface → Bottom Tab Bar or Accordion
172
+
173
+ **When to apply**: App has horizontal tab bar in the page body (not top nav).
174
+
175
+ **Option A — Bottom tab bar** (when tabs = primary navigation, 3–5 items):
176
+ Already covered in SKILL.md under Navigation Transformation.
177
+
178
+ **Option B — Accordion** (when tabs = secondary navigation or filtering):
179
+
180
+ ```
181
+ Desktop: Mobile:
182
+ [ Tab1 ] [ Tab2 ] [ Tab3 ] ▼ Tab1 (expanded)
183
+ ───────────────────────── content...
184
+ Tab1 content ▶ Tab2 (collapsed)
185
+ ▶ Tab3 (collapsed)
186
+ ```
187
+
188
+ Use accordion when:
189
+ - Tabs contain long-form content
190
+ - More than 5 tabs
191
+ - Tabs live inside a card or panel (not top-level)
192
+
193
+ ---
194
+
195
+ ## 7. Dense Toolbar / Filter Strip → Collapsible Row + Sheet
196
+
197
+ **When to apply**: Horizontal filter bar, action bar, or toolbar with 4+ controls.
198
+
199
+ **Pattern**:
200
+ - Show only the 1–2 most important controls inline
201
+ - Remaining controls behind a "Filters" or "More" button
202
+ - Tapping opens a bottom sheet with all filter options
203
+
204
+ ```
205
+ Desktop: [Search___] [Date▼] [Status▼] [Type▼] [Sort▼] [Export]
206
+ Mobile: [Search___] [⚙ Filters (3)]
207
+ ↕ (sheet opens)
208
+ Date: [...]
209
+ Status: [...]
210
+ Type: [...]
211
+ ```
212
+
213
+ Active filter count badge on the "Filters" button shows how many are applied.
214
+
215
+ ---
216
+
217
+ ## 8. Sidebar Panel → Bottom Sheet or Off-canvas Drawer
218
+
219
+ **When to apply**: Right-side detail panel in a master/detail layout,
220
+ or a left sidebar with secondary navigation.
221
+
222
+ **For detail panels** (e.g., selected-case right pane in a queue):
223
+
224
+ ```
225
+ Desktop: Mobile:
226
+ ┌────────────┬──────────┐ ┌──────────────────┐
227
+ │ Queue list │ Detail │ → │ Queue list │
228
+ │ │ panel │ │ [tap row] │
229
+ └────────────┴──────────┘ └──────────────────┘
230
+ ↓ (tap)
231
+ ┌──────────────────┐
232
+ │ ← Back Detail │
233
+ │ (full-screen) │
234
+ └──────────────────┘
235
+ ```
236
+
237
+ **Rules**:
238
+ - Stack becomes a navigation: list → push detail page onto stack
239
+ - Back button or swipe-right returns to list
240
+ - Alternatively: detail slides up as bottom sheet (simpler, no routing needed)
241
+
242
+ ---
243
+
244
+ ## 9. Hover Cards / Tooltips → Always Visible or Tap-to-Reveal
245
+
246
+ **When to apply**: Any content that only appears on `:hover`.
247
+
248
+ **Decision tree**:
249
+ ```
250
+ Is the content critical to understanding the item?
251
+ YES → Make it always visible (move it below/beside the element)
252
+ NO → Is the content supplementary detail (e.g. full name for truncated text)?
253
+ YES → Show on tap (toggle visibility with :focus or JS)
254
+ NO → Remove it (was probably unnecessary)
255
+ ```
256
+
257
+ **Never**: Leave hover-only content as-is on mobile. It simply never appears.
258
+
259
+ ---
260
+
261
+ ## 10. Split Pane (Master/Detail) → Stacked Navigation
262
+
263
+ **When to apply**: Two-panel layout where left = list, right = detail.
264
+
265
+ Already covered in item 8. The key pattern:
266
+
267
+ - On mobile, only one panel is visible at a time
268
+ - Tapping a list item pushes the detail view (slide in from right)
269
+ - Back button / swipe-right gesture returns to the list
270
+ - URL should reflect the detail state if the app has routing
271
+
272
+ **Routing approach** (framework-agnostic):
273
+ ```
274
+ /queue → shows list only on mobile, both on desktop
275
+ /queue/:caseId → shows detail only on mobile, detail highlighted on desktop
276
+ ```
277
+
278
+ ---
279
+
280
+ ## 11. Dropdown Menus → Action Sheet
281
+
282
+ **When to apply**: Click-triggered dropdown menus with 3+ options.
283
+
284
+ **Pattern**: On mobile, dropdowns become action sheets (list of options sliding
285
+ up from the bottom of the screen).
286
+
287
+ ```
288
+ Desktop: [▼ Sort by Name ▼]
289
+ ↓ hover/click
290
+ ┌─────────────┐
291
+ │ Name ↑ │
292
+ │ Name ↓ │
293
+ │ Date │
294
+ └─────────────┘
295
+
296
+ Mobile: [⇅ Sort]
297
+ ↓ tap
298
+ ┌──────────────────────┐
299
+ │ Sort by │
300
+ ├──────────────────────┤
301
+ │ ○ Name (A→Z) │
302
+ │ ● Name (Z→A) │
303
+ │ ○ Date │
304
+ ├──────────────────────┤
305
+ │ [Cancel] │
306
+ └──────────────────────┘
307
+ ```
308
+
309
+ ---
310
+
311
+ ## 12. Pagination → Infinite Scroll or Load More Button
312
+
313
+ **When to apply**: Page-number pagination at bottom of a list or table.
314
+
315
+ **Option A — "Load More" button** (recommended for internal tools):
316
+ - Simpler to implement, predictable position in the list
317
+ - User has control over loading
318
+ - Works well with slow network connections
319
+
320
+ **Option B — Infinite scroll**:
321
+ - Better for content-feed style lists
322
+ - Use `IntersectionObserver` to trigger next page load when sentinel element is visible
323
+ - Always show a loading indicator, never a blank gap
324
+
325
+ **Never** use page number pagination on mobile — tap targets are too small
326
+ and the UX is unexpected on touch devices.