zilmate 1.7.8 → 1.8.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.agents/skills/agent-browser/SKILL.md +55 -0
- package/.agents/skills/agentmail/SKILL.md +282 -0
- package/.agents/skills/agentmail/references/webhooks.md +220 -0
- package/.agents/skills/agentmail/references/websockets.md +263 -0
- package/.agents/skills/ai-elements/SKILL.md +160 -0
- package/.agents/skills/ai-elements/references/agent.md +134 -0
- package/.agents/skills/ai-elements/references/artifact.md +84 -0
- package/.agents/skills/ai-elements/references/attachments.md +190 -0
- package/.agents/skills/ai-elements/references/audio-player.md +134 -0
- package/.agents/skills/ai-elements/references/canvas.md +34 -0
- package/.agents/skills/ai-elements/references/chain-of-thought.md +81 -0
- package/.agents/skills/ai-elements/references/checkpoint.md +183 -0
- package/.agents/skills/ai-elements/references/code-block.md +170 -0
- package/.agents/skills/ai-elements/references/commit.md +177 -0
- package/.agents/skills/ai-elements/references/confirmation.md +262 -0
- package/.agents/skills/ai-elements/references/connection.md +34 -0
- package/.agents/skills/ai-elements/references/context.md +126 -0
- package/.agents/skills/ai-elements/references/controls.md +32 -0
- package/.agents/skills/ai-elements/references/conversation.md +224 -0
- package/.agents/skills/ai-elements/references/edge.md +52 -0
- package/.agents/skills/ai-elements/references/environment-variables.md +102 -0
- package/.agents/skills/ai-elements/references/file-tree.md +72 -0
- package/.agents/skills/ai-elements/references/image.md +146 -0
- package/.agents/skills/ai-elements/references/inline-citation.md +299 -0
- package/.agents/skills/ai-elements/references/jsx-preview.md +104 -0
- package/.agents/skills/ai-elements/references/message.md +237 -0
- package/.agents/skills/ai-elements/references/mic-selector.md +189 -0
- package/.agents/skills/ai-elements/references/model-selector.md +112 -0
- package/.agents/skills/ai-elements/references/node.md +73 -0
- package/.agents/skills/ai-elements/references/open-in-chat.md +67 -0
- package/.agents/skills/ai-elements/references/package-info.md +95 -0
- package/.agents/skills/ai-elements/references/panel.md +33 -0
- package/.agents/skills/ai-elements/references/persona.md +166 -0
- package/.agents/skills/ai-elements/references/plan.md +79 -0
- package/.agents/skills/ai-elements/references/prompt-input.md +579 -0
- package/.agents/skills/ai-elements/references/queue.md +172 -0
- package/.agents/skills/ai-elements/references/reasoning.md +238 -0
- package/.agents/skills/ai-elements/references/sandbox.md +129 -0
- package/.agents/skills/ai-elements/references/schema-display.md +102 -0
- package/.agents/skills/ai-elements/references/shimmer.md +48 -0
- package/.agents/skills/ai-elements/references/snippet.md +64 -0
- package/.agents/skills/ai-elements/references/sources.md +209 -0
- package/.agents/skills/ai-elements/references/speech-input.md +163 -0
- package/.agents/skills/ai-elements/references/stack-trace.md +224 -0
- package/.agents/skills/ai-elements/references/suggestion.md +124 -0
- package/.agents/skills/ai-elements/references/task.md +222 -0
- package/.agents/skills/ai-elements/references/terminal.md +103 -0
- package/.agents/skills/ai-elements/references/test-results.md +157 -0
- package/.agents/skills/ai-elements/references/tool.md +285 -0
- package/.agents/skills/ai-elements/references/toolbar.md +32 -0
- package/.agents/skills/ai-elements/references/transcription.md +120 -0
- package/.agents/skills/ai-elements/references/voice-selector.md +241 -0
- package/.agents/skills/ai-elements/references/web-preview.md +200 -0
- package/.agents/skills/ai-elements/scripts/agent.tsx +61 -0
- package/.agents/skills/ai-elements/scripts/artifact.tsx +127 -0
- package/.agents/skills/ai-elements/scripts/attachments-inline.tsx +128 -0
- package/.agents/skills/ai-elements/scripts/attachments-list.tsx +95 -0
- package/.agents/skills/ai-elements/scripts/attachments.tsx +85 -0
- package/.agents/skills/ai-elements/scripts/audio-player-remote.tsx +35 -0
- package/.agents/skills/ai-elements/scripts/audio-player.tsx +68 -0
- package/.agents/skills/ai-elements/scripts/chain-of-thought.tsx +82 -0
- package/.agents/skills/ai-elements/scripts/checkpoint.tsx +110 -0
- package/.agents/skills/ai-elements/scripts/code-block-dark.tsx +46 -0
- package/.agents/skills/ai-elements/scripts/code-block.tsx +120 -0
- package/.agents/skills/ai-elements/scripts/commit.tsx +94 -0
- package/.agents/skills/ai-elements/scripts/confirmation-accepted.tsx +40 -0
- package/.agents/skills/ai-elements/scripts/confirmation-rejected.tsx +40 -0
- package/.agents/skills/ai-elements/scripts/confirmation-request.tsx +54 -0
- package/.agents/skills/ai-elements/scripts/confirmation.tsx +55 -0
- package/.agents/skills/ai-elements/scripts/context.tsx +45 -0
- package/.agents/skills/ai-elements/scripts/conversation.tsx +177 -0
- package/.agents/skills/ai-elements/scripts/environment-variables.tsx +62 -0
- package/.agents/skills/ai-elements/scripts/file-tree-basic.tsx +18 -0
- package/.agents/skills/ai-elements/scripts/file-tree-expanded.tsx +21 -0
- package/.agents/skills/ai-elements/scripts/file-tree-selection.tsx +24 -0
- package/.agents/skills/ai-elements/scripts/file-tree.tsx +42 -0
- package/.agents/skills/ai-elements/scripts/image.tsx +20 -0
- package/.agents/skills/ai-elements/scripts/inline-citation.tsx +97 -0
- package/.agents/skills/ai-elements/scripts/jsx-preview.tsx +104 -0
- package/.agents/skills/ai-elements/scripts/message.tsx +365 -0
- package/.agents/skills/ai-elements/scripts/mic-selector.tsx +49 -0
- package/.agents/skills/ai-elements/scripts/model-selector.tsx +365 -0
- package/.agents/skills/ai-elements/scripts/open-in-chat.tsx +33 -0
- package/.agents/skills/ai-elements/scripts/package-info.tsx +51 -0
- package/.agents/skills/ai-elements/scripts/persona-command.tsx +110 -0
- package/.agents/skills/ai-elements/scripts/persona-glint.tsx +110 -0
- package/.agents/skills/ai-elements/scripts/persona-halo.tsx +110 -0
- package/.agents/skills/ai-elements/scripts/persona-mana.tsx +110 -0
- package/.agents/skills/ai-elements/scripts/persona-obsidian.tsx +110 -0
- package/.agents/skills/ai-elements/scripts/persona-opal.tsx +110 -0
- package/.agents/skills/ai-elements/scripts/plan.tsx +65 -0
- package/.agents/skills/ai-elements/scripts/prompt-input-cursor.tsx +502 -0
- package/.agents/skills/ai-elements/scripts/prompt-input-tooltip.tsx +44 -0
- package/.agents/skills/ai-elements/scripts/prompt-input.tsx +267 -0
- package/.agents/skills/ai-elements/scripts/queue-prompt-input.tsx +394 -0
- package/.agents/skills/ai-elements/scripts/queue.tsx +295 -0
- package/.agents/skills/ai-elements/scripts/reasoning.tsx +71 -0
- package/.agents/skills/ai-elements/scripts/sandbox.tsx +178 -0
- package/.agents/skills/ai-elements/scripts/schema-display-basic.tsx +9 -0
- package/.agents/skills/ai-elements/scripts/schema-display-body.tsx +20 -0
- package/.agents/skills/ai-elements/scripts/schema-display-nested.tsx +23 -0
- package/.agents/skills/ai-elements/scripts/schema-display-params.tsx +16 -0
- package/.agents/skills/ai-elements/scripts/schema-display.tsx +110 -0
- package/.agents/skills/ai-elements/scripts/shimmer-duration.tsx +31 -0
- package/.agents/skills/ai-elements/scripts/shimmer-elements.tsx +43 -0
- package/.agents/skills/ai-elements/scripts/shimmer.tsx +17 -0
- package/.agents/skills/ai-elements/scripts/snippet-plain.tsx +19 -0
- package/.agents/skills/ai-elements/scripts/snippet.tsx +25 -0
- package/.agents/skills/ai-elements/scripts/sources-custom.tsx +39 -0
- package/.agents/skills/ai-elements/scripts/sources.tsx +32 -0
- package/.agents/skills/ai-elements/scripts/speech-input.tsx +84 -0
- package/.agents/skills/ai-elements/scripts/stack-trace-collapsed.tsx +39 -0
- package/.agents/skills/ai-elements/scripts/stack-trace-no-internal.tsx +41 -0
- package/.agents/skills/ai-elements/scripts/stack-trace.tsx +58 -0
- package/.agents/skills/ai-elements/scripts/suggestion-input.tsx +144 -0
- package/.agents/skills/ai-elements/scripts/suggestion.tsx +32 -0
- package/.agents/skills/ai-elements/scripts/task.tsx +59 -0
- package/.agents/skills/ai-elements/scripts/terminal-basic.tsx +7 -0
- package/.agents/skills/ai-elements/scripts/terminal-clear.tsx +19 -0
- package/.agents/skills/ai-elements/scripts/terminal-streaming.tsx +38 -0
- package/.agents/skills/ai-elements/scripts/terminal.tsx +82 -0
- package/.agents/skills/ai-elements/scripts/test-results-basic.tsx +27 -0
- package/.agents/skills/ai-elements/scripts/test-results-errors.tsx +51 -0
- package/.agents/skills/ai-elements/scripts/test-results-suites.tsx +40 -0
- package/.agents/skills/ai-elements/scripts/test-results.tsx +102 -0
- package/.agents/skills/ai-elements/scripts/tool-input-available.tsx +31 -0
- package/.agents/skills/ai-elements/scripts/tool-input-streaming.tsx +30 -0
- package/.agents/skills/ai-elements/scripts/tool-output-available.tsx +80 -0
- package/.agents/skills/ai-elements/scripts/tool-output-error.tsx +44 -0
- package/.agents/skills/ai-elements/scripts/tool.tsx +222 -0
- package/.agents/skills/ai-elements/scripts/transcription.tsx +290 -0
- package/.agents/skills/ai-elements/scripts/voice-selector.tsx +245 -0
- package/.agents/skills/ai-elements/scripts/web-preview.tsx +115 -0
- package/.agents/skills/ai-sdk/SKILL.md +78 -0
- package/.agents/skills/ai-sdk/references/ai-gateway.md +66 -0
- package/.agents/skills/ai-sdk/references/common-errors.md +443 -0
- package/.agents/skills/ai-sdk/references/devtools.md +52 -0
- package/.agents/skills/ai-sdk/references/type-safe-agents.md +204 -0
- package/.agents/skills/chat-sdk/SKILL.md +240 -0
- package/.agents/skills/composio/AGENTS.md +404 -0
- package/.agents/skills/composio/SKILL.md +55 -0
- package/.agents/skills/composio/rules/_template.md +38 -0
- package/.agents/skills/composio/rules/app-auth-configs.md +224 -0
- package/.agents/skills/composio/rules/app-auth-popup-ui.md +143 -0
- package/.agents/skills/composio/rules/app-connected-accounts.md +240 -0
- package/.agents/skills/composio/rules/app-custom-tools.md +220 -0
- package/.agents/skills/composio/rules/app-execute-tools.md +202 -0
- package/.agents/skills/composio/rules/app-fetch-tools.md +292 -0
- package/.agents/skills/composio/rules/app-modifiers.md +148 -0
- package/.agents/skills/composio/rules/app-tool-versions.md +343 -0
- package/.agents/skills/composio/rules/app-toolkits.md +184 -0
- package/.agents/skills/composio/rules/app-user-context.md +222 -0
- package/.agents/skills/composio/rules/building-with-composio.md +134 -0
- package/.agents/skills/composio/rules/composio-cli.md +223 -0
- package/.agents/skills/composio/rules/setup-api-keys.md +230 -0
- package/.agents/skills/composio/rules/tr-auth-auto.md +110 -0
- package/.agents/skills/composio/rules/tr-auth-connections.md +167 -0
- package/.agents/skills/composio/rules/tr-auth-manual.md +161 -0
- package/.agents/skills/composio/rules/tr-building-chat-ui.md +348 -0
- package/.agents/skills/composio/rules/tr-framework-ai-sdk.md +240 -0
- package/.agents/skills/composio/rules/tr-framework-integration.md +818 -0
- package/.agents/skills/composio/rules/tr-framework-mastra.md +185 -0
- package/.agents/skills/composio/rules/tr-mcp-vs-native.md +248 -0
- package/.agents/skills/composio/rules/tr-session-basic.md +82 -0
- package/.agents/skills/composio/rules/tr-session-config.md +172 -0
- package/.agents/skills/composio/rules/tr-session-lifecycle.md +385 -0
- package/.agents/skills/composio/rules/tr-toolkit-query.md +135 -0
- package/.agents/skills/composio/rules/tr-userid-best-practices.md +476 -0
- package/.agents/skills/composio/rules/triggers-create.md +246 -0
- package/.agents/skills/composio/rules/triggers-manage.md +275 -0
- package/.agents/skills/composio/rules/triggers-subscribe.md +173 -0
- package/.agents/skills/composio/rules/triggers-webhook.md +227 -0
- package/.agents/skills/create-auth-skill/SKILL.md +321 -0
- package/.agents/skills/design-md/README.md +34 -0
- package/.agents/skills/design-md/SKILL.md +172 -0
- package/.agents/skills/design-md/examples/DESIGN.md +154 -0
- package/.agents/skills/expo-tailwind-setup/SKILL.md +480 -0
- package/.agents/skills/expo-tailwind-setup/agents/openai.yaml +4 -0
- package/.agents/skills/find-skills/SKILL.md +142 -0
- package/.agents/skills/firecrawl/SKILL.md +321 -0
- package/.agents/skills/firecrawl/rules/install.md +85 -0
- package/.agents/skills/firecrawl/rules/security.md +26 -0
- package/.agents/skills/frontend-design/LICENSE.txt +177 -0
- package/.agents/skills/frontend-design/SKILL.md +55 -0
- package/.agents/skills/linkup-search/SKILL.md +298 -0
- package/.agents/skills/mcp-builder/LICENSE.txt +202 -0
- package/.agents/skills/mcp-builder/SKILL.md +236 -0
- package/.agents/skills/mcp-builder/reference/evaluation.md +602 -0
- package/.agents/skills/mcp-builder/reference/mcp_best_practices.md +249 -0
- package/.agents/skills/mcp-builder/reference/node_mcp_server.md +970 -0
- package/.agents/skills/mcp-builder/reference/python_mcp_server.md +719 -0
- package/.agents/skills/mcp-builder/scripts/connections.py +151 -0
- package/.agents/skills/mcp-builder/scripts/evaluation.py +373 -0
- package/.agents/skills/mcp-builder/scripts/example_evaluation.xml +22 -0
- package/.agents/skills/mcp-builder/scripts/requirements.txt +2 -0
- package/.agents/skills/mobile-android-design/SKILL.md +101 -0
- package/.agents/skills/mobile-android-design/references/android-navigation.md +698 -0
- package/.agents/skills/mobile-android-design/references/compose-components.md +796 -0
- package/.agents/skills/mobile-android-design/references/details.md +337 -0
- package/.agents/skills/mobile-android-design/references/material3-theming.md +604 -0
- package/.agents/skills/mobile-ios-design/SKILL.md +259 -0
- package/.agents/skills/mobile-ios-design/references/hig-patterns.md +529 -0
- package/.agents/skills/mobile-ios-design/references/ios-navigation.md +556 -0
- package/.agents/skills/mobile-ios-design/references/swiftui-components.md +575 -0
- package/.agents/skills/neon-drizzle/SKILL.md +81 -0
- package/.agents/skills/neon-drizzle/guides/existing-project.md +398 -0
- package/.agents/skills/neon-drizzle/guides/new-project.md +312 -0
- package/.agents/skills/neon-drizzle/guides/schema-only.md +415 -0
- package/.agents/skills/neon-drizzle/guides/troubleshooting.md +539 -0
- package/.agents/skills/neon-drizzle/references/adapters.md +478 -0
- package/.agents/skills/neon-drizzle/references/migrations.md +652 -0
- package/.agents/skills/neon-drizzle/references/query-patterns.md +761 -0
- package/.agents/skills/neon-drizzle/scripts/generate-schema.ts +77 -0
- package/.agents/skills/neon-drizzle/scripts/run-migration.ts +133 -0
- package/.agents/skills/neon-drizzle/templates/db-http.ts +6 -0
- package/.agents/skills/neon-drizzle/templates/db-websocket.ts +24 -0
- package/.agents/skills/neon-drizzle/templates/drizzle-config.ts +96 -0
- package/.agents/skills/neon-drizzle/templates/schema-example.ts +231 -0
- package/.agents/skills/neon-postgres/SKILL.md +376 -0
- package/.agents/skills/next-best-practices/SKILL.md +152 -0
- package/.agents/skills/next-best-practices/async-patterns.md +87 -0
- package/.agents/skills/next-best-practices/bundling.md +180 -0
- package/.agents/skills/next-best-practices/data-patterns.md +297 -0
- package/.agents/skills/next-best-practices/debug-tricks.md +105 -0
- package/.agents/skills/next-best-practices/directives.md +73 -0
- package/.agents/skills/next-best-practices/error-handling.md +227 -0
- package/.agents/skills/next-best-practices/file-conventions.md +140 -0
- package/.agents/skills/next-best-practices/font.md +245 -0
- package/.agents/skills/next-best-practices/functions.md +108 -0
- package/.agents/skills/next-best-practices/hydration-error.md +91 -0
- package/.agents/skills/next-best-practices/image.md +173 -0
- package/.agents/skills/next-best-practices/metadata.md +301 -0
- package/.agents/skills/next-best-practices/parallel-routes.md +287 -0
- package/.agents/skills/next-best-practices/route-handlers.md +146 -0
- package/.agents/skills/next-best-practices/rsc-boundaries.md +159 -0
- package/.agents/skills/next-best-practices/runtime-selection.md +39 -0
- package/.agents/skills/next-best-practices/scripts.md +141 -0
- package/.agents/skills/next-best-practices/self-hosting.md +371 -0
- package/.agents/skills/next-best-practices/suspense-boundaries.md +67 -0
- package/.agents/skills/playwright-best-practices/SKILL.md +303 -0
- package/.agents/skills/playwright-cli/SKILL.md +404 -0
- package/.agents/skills/playwright-cli/references/element-attributes.md +23 -0
- package/.agents/skills/playwright-cli/references/playwright-tests.md +39 -0
- package/.agents/skills/playwright-cli/references/request-mocking.md +87 -0
- package/.agents/skills/playwright-cli/references/running-code.md +241 -0
- package/.agents/skills/playwright-cli/references/session-management.md +225 -0
- package/.agents/skills/playwright-cli/references/spec-driven-testing.md +305 -0
- package/.agents/skills/playwright-cli/references/storage-state.md +275 -0
- package/.agents/skills/playwright-cli/references/test-generation.md +134 -0
- package/.agents/skills/playwright-cli/references/tracing.md +139 -0
- package/.agents/skills/playwright-cli/references/video-recording.md +143 -0
- package/.agents/skills/prisma-client-api/SKILL.md +216 -0
- package/.agents/skills/prisma-client-api/references/client-methods.md +223 -0
- package/.agents/skills/prisma-client-api/references/constructor.md +208 -0
- package/.agents/skills/prisma-client-api/references/filters.md +256 -0
- package/.agents/skills/prisma-client-api/references/model-queries.md +281 -0
- package/.agents/skills/prisma-client-api/references/query-options.md +276 -0
- package/.agents/skills/prisma-client-api/references/raw-queries.md +194 -0
- package/.agents/skills/prisma-client-api/references/relations.md +308 -0
- package/.agents/skills/prisma-client-api/references/transactions.md +184 -0
- package/.agents/skills/prisma-database-setup/SKILL.md +192 -0
- package/.agents/skills/prisma-database-setup/references/cockroachdb.md +89 -0
- package/.agents/skills/prisma-database-setup/references/mongodb.md +90 -0
- package/.agents/skills/prisma-database-setup/references/mysql.md +126 -0
- package/.agents/skills/prisma-database-setup/references/postgresql.md +92 -0
- package/.agents/skills/prisma-database-setup/references/prisma-client-setup.md +47 -0
- package/.agents/skills/prisma-database-setup/references/prisma-postgres.md +130 -0
- package/.agents/skills/prisma-database-setup/references/sqlite.md +106 -0
- package/.agents/skills/prisma-database-setup/references/sqlserver.md +94 -0
- package/.agents/skills/prisma-postgres/SKILL.md +127 -0
- package/.agents/skills/prisma-postgres/references/console-and-connections.md +67 -0
- package/.agents/skills/prisma-postgres/references/create-db-cli.md +136 -0
- package/.agents/skills/prisma-postgres/references/management-api-sdk.md +56 -0
- package/.agents/skills/prisma-postgres/references/management-api.md +61 -0
- package/.agents/skills/remotion-best-practices/SKILL.md +340 -0
- package/.agents/skills/remotion-best-practices/rules/3d.md +86 -0
- package/.agents/skills/remotion-best-practices/rules/assets/charts-bar-chart.tsx +173 -0
- package/.agents/skills/remotion-best-practices/rules/assets/text-animations-typewriter.tsx +100 -0
- package/.agents/skills/remotion-best-practices/rules/assets/text-animations-word-highlight.tsx +103 -0
- package/.agents/skills/remotion-best-practices/rules/audio-visualization.md +198 -0
- package/.agents/skills/remotion-best-practices/rules/audio.md +169 -0
- package/.agents/skills/remotion-best-practices/rules/calculate-metadata.md +134 -0
- package/.agents/skills/remotion-best-practices/rules/compositions.md +133 -0
- package/.agents/skills/remotion-best-practices/rules/display-captions.md +184 -0
- package/.agents/skills/remotion-best-practices/rules/ffmpeg.md +34 -0
- package/.agents/skills/remotion-best-practices/rules/get-audio-duration.md +58 -0
- package/.agents/skills/remotion-best-practices/rules/get-video-dimensions.md +68 -0
- package/.agents/skills/remotion-best-practices/rules/get-video-duration.md +60 -0
- package/.agents/skills/remotion-best-practices/rules/gifs.md +141 -0
- package/.agents/skills/remotion-best-practices/rules/google-fonts.md +72 -0
- package/.agents/skills/remotion-best-practices/rules/html-in-canvas.md +122 -0
- package/.agents/skills/remotion-best-practices/rules/images.md +71 -0
- package/.agents/skills/remotion-best-practices/rules/import-srt-captions.md +69 -0
- package/.agents/skills/remotion-best-practices/rules/light-leaks.md +73 -0
- package/.agents/skills/remotion-best-practices/rules/local-fonts.md +65 -0
- package/.agents/skills/remotion-best-practices/rules/lottie.md +70 -0
- package/.agents/skills/remotion-best-practices/rules/maplibre.md +458 -0
- package/.agents/skills/remotion-best-practices/rules/measuring-dom-nodes.md +34 -0
- package/.agents/skills/remotion-best-practices/rules/measuring-text.md +140 -0
- package/.agents/skills/remotion-best-practices/rules/parameters.md +109 -0
- package/.agents/skills/remotion-best-practices/rules/sequencing.md +144 -0
- package/.agents/skills/remotion-best-practices/rules/sfx.md +30 -0
- package/.agents/skills/remotion-best-practices/rules/silence-detection.md +71 -0
- package/.agents/skills/remotion-best-practices/rules/subtitles.md +36 -0
- package/.agents/skills/remotion-best-practices/rules/tailwind.md +11 -0
- package/.agents/skills/remotion-best-practices/rules/text-animations.md +20 -0
- package/.agents/skills/remotion-best-practices/rules/timing.md +136 -0
- package/.agents/skills/remotion-best-practices/rules/transcribe-captions.md +70 -0
- package/.agents/skills/remotion-best-practices/rules/transitions.md +197 -0
- package/.agents/skills/remotion-best-practices/rules/transparent-videos.md +106 -0
- package/.agents/skills/remotion-best-practices/rules/trimming.md +51 -0
- package/.agents/skills/remotion-best-practices/rules/videos.md +171 -0
- package/.agents/skills/remotion-best-practices/rules/voiceover.md +99 -0
- package/.agents/skills/remotion-render/SKILL.md +212 -0
- package/.agents/skills/skill-creator/LICENSE.txt +202 -0
- package/.agents/skills/skill-creator/SKILL.md +485 -0
- package/.agents/skills/skill-creator/agents/analyzer.md +274 -0
- package/.agents/skills/skill-creator/agents/comparator.md +202 -0
- package/.agents/skills/skill-creator/agents/grader.md +223 -0
- package/.agents/skills/skill-creator/assets/eval_review.html +146 -0
- package/.agents/skills/skill-creator/eval-viewer/generate_review.py +471 -0
- package/.agents/skills/skill-creator/eval-viewer/viewer.html +1325 -0
- package/.agents/skills/skill-creator/references/schemas.md +430 -0
- package/.agents/skills/skill-creator/scripts/__init__.py +0 -0
- package/.agents/skills/skill-creator/scripts/aggregate_benchmark.py +401 -0
- package/.agents/skills/skill-creator/scripts/generate_report.py +326 -0
- package/.agents/skills/skill-creator/scripts/improve_description.py +247 -0
- package/.agents/skills/skill-creator/scripts/package_skill.py +136 -0
- package/.agents/skills/skill-creator/scripts/quick_validate.py +103 -0
- package/.agents/skills/skill-creator/scripts/run_eval.py +310 -0
- package/.agents/skills/skill-creator/scripts/run_loop.py +328 -0
- package/.agents/skills/skill-creator/scripts/utils.py +47 -0
- package/.agents/skills/stripe-best-practices/SKILL.md +54 -0
- package/.agents/skills/stripe-best-practices/references/billing.md +58 -0
- package/.agents/skills/stripe-best-practices/references/connect.md +173 -0
- package/.agents/skills/stripe-best-practices/references/payments.md +79 -0
- package/.agents/skills/stripe-best-practices/references/security.md +109 -0
- package/.agents/skills/stripe-best-practices/references/tax.md +37 -0
- package/.agents/skills/stripe-best-practices/references/treasury.md +16 -0
- package/.agents/skills/stripe-projects/SKILL.md +132 -0
- package/.agents/skills/supabase/CHANGELOG.md +35 -0
- package/.agents/skills/supabase/SKILL.md +135 -0
- package/.agents/skills/supabase/assets/feedback-issue-template.md +17 -0
- package/.agents/skills/supabase/references/skill-feedback.md +17 -0
- package/.agents/skills/supabase-postgres-best-practices/CHANGELOG.md +29 -0
- package/.agents/skills/supabase-postgres-best-practices/SKILL.md +64 -0
- package/.agents/skills/supabase-postgres-best-practices/references/_contributing.md +170 -0
- package/.agents/skills/supabase-postgres-best-practices/references/_sections.md +39 -0
- package/.agents/skills/supabase-postgres-best-practices/references/_template.md +34 -0
- package/.agents/skills/supabase-postgres-best-practices/references/advanced-full-text-search.md +55 -0
- package/.agents/skills/supabase-postgres-best-practices/references/advanced-jsonb-indexing.md +49 -0
- package/.agents/skills/supabase-postgres-best-practices/references/conn-idle-timeout.md +46 -0
- package/.agents/skills/supabase-postgres-best-practices/references/conn-limits.md +44 -0
- package/.agents/skills/supabase-postgres-best-practices/references/conn-pooling.md +41 -0
- package/.agents/skills/supabase-postgres-best-practices/references/conn-prepared-statements.md +46 -0
- package/.agents/skills/supabase-postgres-best-practices/references/data-batch-inserts.md +54 -0
- package/.agents/skills/supabase-postgres-best-practices/references/data-n-plus-one.md +53 -0
- package/.agents/skills/supabase-postgres-best-practices/references/data-pagination.md +50 -0
- package/.agents/skills/supabase-postgres-best-practices/references/data-upsert.md +50 -0
- package/.agents/skills/supabase-postgres-best-practices/references/lock-advisory.md +56 -0
- package/.agents/skills/supabase-postgres-best-practices/references/lock-deadlock-prevention.md +68 -0
- package/.agents/skills/supabase-postgres-best-practices/references/lock-short-transactions.md +50 -0
- package/.agents/skills/supabase-postgres-best-practices/references/lock-skip-locked.md +54 -0
- package/.agents/skills/supabase-postgres-best-practices/references/monitor-explain-analyze.md +45 -0
- package/.agents/skills/supabase-postgres-best-practices/references/monitor-pg-stat-statements.md +55 -0
- package/.agents/skills/supabase-postgres-best-practices/references/monitor-vacuum-analyze.md +55 -0
- package/.agents/skills/supabase-postgres-best-practices/references/query-composite-indexes.md +44 -0
- package/.agents/skills/supabase-postgres-best-practices/references/query-covering-indexes.md +40 -0
- package/.agents/skills/supabase-postgres-best-practices/references/query-index-types.md +48 -0
- package/.agents/skills/supabase-postgres-best-practices/references/query-missing-indexes.md +43 -0
- package/.agents/skills/supabase-postgres-best-practices/references/query-partial-indexes.md +45 -0
- package/.agents/skills/supabase-postgres-best-practices/references/schema-constraints.md +80 -0
- package/.agents/skills/supabase-postgres-best-practices/references/schema-data-types.md +46 -0
- package/.agents/skills/supabase-postgres-best-practices/references/schema-foreign-key-indexes.md +59 -0
- package/.agents/skills/supabase-postgres-best-practices/references/schema-lowercase-identifiers.md +55 -0
- package/.agents/skills/supabase-postgres-best-practices/references/schema-partitioning.md +55 -0
- package/.agents/skills/supabase-postgres-best-practices/references/schema-primary-keys.md +61 -0
- package/.agents/skills/supabase-postgres-best-practices/references/security-privileges.md +54 -0
- package/.agents/skills/supabase-postgres-best-practices/references/security-rls-basics.md +50 -0
- package/.agents/skills/supabase-postgres-best-practices/references/security-rls-performance.md +63 -0
- package/.agents/skills/supermemory/LICENSE +201 -0
- package/.agents/skills/supermemory/README.md +221 -0
- package/.agents/skills/supermemory/SKILL.md +172 -0
- package/.agents/skills/supermemory/references/api-reference.md +591 -0
- package/.agents/skills/supermemory/references/architecture.md +557 -0
- package/.agents/skills/supermemory/references/quickstart.md +293 -0
- package/.agents/skills/supermemory/references/sdk-guide.md +655 -0
- package/.agents/skills/supermemory/references/use-cases.md +1033 -0
- package/.agents/skills/supermemory-cli/SKILL.md +490 -0
- package/.agents/skills/tdd/SKILL.md +108 -0
- package/.agents/skills/tdd/mocking.md +59 -0
- package/.agents/skills/tdd/refactoring.md +10 -0
- package/.agents/skills/tdd/tests.md +61 -0
- package/.agents/skills/ui-ux-pro-max/SKILL.md +661 -0
- package/.agents/skills/ui-ux-pro-max/data +1 -0
- package/.agents/skills/ui-ux-pro-max/scripts +1 -0
- package/.agents/skills/vercel-react-native-skills/AGENTS.md +2897 -0
- package/.agents/skills/vercel-react-native-skills/README.md +165 -0
- package/.agents/skills/vercel-react-native-skills/SKILL.md +121 -0
- package/.agents/skills/vercel-react-native-skills/metadata.json +16 -0
- package/.agents/skills/vercel-react-native-skills/rules/_sections.md +86 -0
- package/.agents/skills/vercel-react-native-skills/rules/_template.md +28 -0
- package/.agents/skills/vercel-react-native-skills/rules/animation-derived-value.md +53 -0
- package/.agents/skills/vercel-react-native-skills/rules/animation-gesture-detector-press.md +95 -0
- package/.agents/skills/vercel-react-native-skills/rules/animation-gpu-properties.md +65 -0
- package/.agents/skills/vercel-react-native-skills/rules/design-system-compound-components.md +66 -0
- package/.agents/skills/vercel-react-native-skills/rules/fonts-config-plugin.md +71 -0
- package/.agents/skills/vercel-react-native-skills/rules/imports-design-system-folder.md +68 -0
- package/.agents/skills/vercel-react-native-skills/rules/js-hoist-intl.md +61 -0
- package/.agents/skills/vercel-react-native-skills/rules/list-performance-callbacks.md +44 -0
- package/.agents/skills/vercel-react-native-skills/rules/list-performance-function-references.md +132 -0
- package/.agents/skills/vercel-react-native-skills/rules/list-performance-images.md +53 -0
- package/.agents/skills/vercel-react-native-skills/rules/list-performance-inline-objects.md +97 -0
- package/.agents/skills/vercel-react-native-skills/rules/list-performance-item-expensive.md +94 -0
- package/.agents/skills/vercel-react-native-skills/rules/list-performance-item-memo.md +82 -0
- package/.agents/skills/vercel-react-native-skills/rules/list-performance-item-types.md +104 -0
- package/.agents/skills/vercel-react-native-skills/rules/list-performance-virtualize.md +67 -0
- package/.agents/skills/vercel-react-native-skills/rules/monorepo-native-deps-in-app.md +46 -0
- package/.agents/skills/vercel-react-native-skills/rules/monorepo-single-dependency-versions.md +63 -0
- package/.agents/skills/vercel-react-native-skills/rules/navigation-native-navigators.md +188 -0
- package/.agents/skills/vercel-react-native-skills/rules/react-compiler-destructure-functions.md +50 -0
- package/.agents/skills/vercel-react-native-skills/rules/react-compiler-reanimated-shared-values.md +48 -0
- package/.agents/skills/vercel-react-native-skills/rules/react-state-dispatcher.md +91 -0
- package/.agents/skills/vercel-react-native-skills/rules/react-state-fallback.md +56 -0
- package/.agents/skills/vercel-react-native-skills/rules/react-state-minimize.md +65 -0
- package/.agents/skills/vercel-react-native-skills/rules/rendering-no-falsy-and.md +74 -0
- package/.agents/skills/vercel-react-native-skills/rules/rendering-text-in-text-component.md +36 -0
- package/.agents/skills/vercel-react-native-skills/rules/scroll-position-no-state.md +82 -0
- package/.agents/skills/vercel-react-native-skills/rules/state-ground-truth.md +80 -0
- package/.agents/skills/vercel-react-native-skills/rules/ui-expo-image.md +66 -0
- package/.agents/skills/vercel-react-native-skills/rules/ui-image-gallery.md +104 -0
- package/.agents/skills/vercel-react-native-skills/rules/ui-measure-views.md +78 -0
- package/.agents/skills/vercel-react-native-skills/rules/ui-menus.md +174 -0
- package/.agents/skills/vercel-react-native-skills/rules/ui-native-modals.md +77 -0
- package/.agents/skills/vercel-react-native-skills/rules/ui-pressable.md +61 -0
- package/.agents/skills/vercel-react-native-skills/rules/ui-safe-area-scroll.md +65 -0
- package/.agents/skills/vercel-react-native-skills/rules/ui-scrollview-content-inset.md +45 -0
- package/.agents/skills/vercel-react-native-skills/rules/ui-styling.md +87 -0
- package/.agents/skills/web-design-guidelines/SKILL.md +39 -0
- package/dist/cli/update.d.ts.map +1 -1
- package/dist/cli/update.js +19 -4
- package/dist/cli/update.js.map +1 -1
- package/dist/index.js +1 -1
- package/dist/tools/daytona-browser.tool.js +1 -1
- package/dist/tools/daytona-browser.tool.js.map +1 -1
- package/package.json +3 -2
|
@@ -0,0 +1,480 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: expo-tailwind-setup
|
|
3
|
+
description: Set up Tailwind CSS v4 in Expo with react-native-css and NativeWind v5 for universal styling
|
|
4
|
+
version: 1.0.0
|
|
5
|
+
license: MIT
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Tailwind CSS Setup for Expo with react-native-css
|
|
9
|
+
|
|
10
|
+
This guide covers setting up Tailwind CSS v4 in Expo using react-native-css and NativeWind v5 for universal styling across iOS, Android, and Web.
|
|
11
|
+
|
|
12
|
+
## Overview
|
|
13
|
+
|
|
14
|
+
This setup uses:
|
|
15
|
+
|
|
16
|
+
- **Tailwind CSS v4** - Modern CSS-first configuration
|
|
17
|
+
- **react-native-css** - CSS runtime for React Native
|
|
18
|
+
- **NativeWind v5** - Metro transformer for Tailwind in React Native
|
|
19
|
+
- **@tailwindcss/postcss** - PostCSS plugin for Tailwind v4
|
|
20
|
+
|
|
21
|
+
## Installation
|
|
22
|
+
|
|
23
|
+
```bash
|
|
24
|
+
# Install dependencies
|
|
25
|
+
npx expo install tailwindcss@^4 nativewind@5.0.0-preview.2 react-native-css@0.0.0-nightly.5ce6396 @tailwindcss/postcss tailwind-merge clsx
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
Add resolutions for lightningcss compatibility:
|
|
29
|
+
|
|
30
|
+
```json
|
|
31
|
+
// package.json
|
|
32
|
+
{
|
|
33
|
+
"resolutions": {
|
|
34
|
+
"lightningcss": "1.30.1"
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
- autoprefixer is not needed in Expo because of lightningcss
|
|
40
|
+
- postcss is included in expo by default
|
|
41
|
+
|
|
42
|
+
## Configuration Files
|
|
43
|
+
|
|
44
|
+
### Metro Config
|
|
45
|
+
|
|
46
|
+
Create or update `metro.config.js`:
|
|
47
|
+
|
|
48
|
+
```js
|
|
49
|
+
// metro.config.js
|
|
50
|
+
const { getDefaultConfig } = require("expo/metro-config");
|
|
51
|
+
const { withNativewind } = require("nativewind/metro");
|
|
52
|
+
|
|
53
|
+
/** @type {import('expo/metro-config').MetroConfig} */
|
|
54
|
+
const config = getDefaultConfig(__dirname);
|
|
55
|
+
|
|
56
|
+
module.exports = withNativewind(config, {
|
|
57
|
+
// inline variables break PlatformColor in CSS variables
|
|
58
|
+
inlineVariables: false,
|
|
59
|
+
// We add className support manually
|
|
60
|
+
globalClassNamePolyfill: false,
|
|
61
|
+
});
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
### PostCSS Config
|
|
65
|
+
|
|
66
|
+
Create `postcss.config.mjs`:
|
|
67
|
+
|
|
68
|
+
```js
|
|
69
|
+
// postcss.config.mjs
|
|
70
|
+
export default {
|
|
71
|
+
plugins: {
|
|
72
|
+
"@tailwindcss/postcss": {},
|
|
73
|
+
},
|
|
74
|
+
};
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
### Global CSS
|
|
78
|
+
|
|
79
|
+
Create `src/global.css`:
|
|
80
|
+
|
|
81
|
+
```css
|
|
82
|
+
@import "tailwindcss/theme.css" layer(theme);
|
|
83
|
+
@import "tailwindcss/preflight.css" layer(base);
|
|
84
|
+
@import "tailwindcss/utilities.css";
|
|
85
|
+
|
|
86
|
+
/* Platform-specific font families */
|
|
87
|
+
@media android {
|
|
88
|
+
:root {
|
|
89
|
+
--font-mono: monospace;
|
|
90
|
+
--font-rounded: normal;
|
|
91
|
+
--font-serif: serif;
|
|
92
|
+
--font-sans: normal;
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
@media ios {
|
|
97
|
+
:root {
|
|
98
|
+
--font-mono: ui-monospace;
|
|
99
|
+
--font-serif: ui-serif;
|
|
100
|
+
--font-sans: system-ui;
|
|
101
|
+
--font-rounded: ui-rounded;
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
## IMPORTANT: No Babel Config Needed
|
|
107
|
+
|
|
108
|
+
With Tailwind v4 and NativeWind v5, you do NOT need a babel.config.js for Tailwind. Remove any NativeWind babel presets if present:
|
|
109
|
+
|
|
110
|
+
```js
|
|
111
|
+
// DELETE babel.config.js if it only contains NativeWind config
|
|
112
|
+
// The following is NO LONGER needed:
|
|
113
|
+
// module.exports = function (api) {
|
|
114
|
+
// api.cache(true);
|
|
115
|
+
// return {
|
|
116
|
+
// presets: [
|
|
117
|
+
// ["babel-preset-expo", { jsxImportSource: "nativewind" }],
|
|
118
|
+
// "nativewind/babel",
|
|
119
|
+
// ],
|
|
120
|
+
// };
|
|
121
|
+
// };
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
## CSS Component Wrappers
|
|
125
|
+
|
|
126
|
+
Since react-native-css requires explicit CSS element wrapping, create reusable components:
|
|
127
|
+
|
|
128
|
+
### Main Components (`src/tw/index.tsx`)
|
|
129
|
+
|
|
130
|
+
```tsx
|
|
131
|
+
import {
|
|
132
|
+
useCssElement,
|
|
133
|
+
useNativeVariable as useFunctionalVariable,
|
|
134
|
+
} from "react-native-css";
|
|
135
|
+
|
|
136
|
+
import { Link as RouterLink } from "expo-router";
|
|
137
|
+
import Animated from "react-native-reanimated";
|
|
138
|
+
import React from "react";
|
|
139
|
+
import {
|
|
140
|
+
View as RNView,
|
|
141
|
+
Text as RNText,
|
|
142
|
+
Pressable as RNPressable,
|
|
143
|
+
ScrollView as RNScrollView,
|
|
144
|
+
TouchableHighlight as RNTouchableHighlight,
|
|
145
|
+
TextInput as RNTextInput,
|
|
146
|
+
StyleSheet,
|
|
147
|
+
} from "react-native";
|
|
148
|
+
|
|
149
|
+
// CSS-enabled Link
|
|
150
|
+
export const Link = (
|
|
151
|
+
props: React.ComponentProps<typeof RouterLink> & { className?: string }
|
|
152
|
+
) => {
|
|
153
|
+
return useCssElement(RouterLink, props, { className: "style" });
|
|
154
|
+
};
|
|
155
|
+
|
|
156
|
+
Link.Trigger = RouterLink.Trigger;
|
|
157
|
+
Link.Menu = RouterLink.Menu;
|
|
158
|
+
Link.MenuAction = RouterLink.MenuAction;
|
|
159
|
+
Link.Preview = RouterLink.Preview;
|
|
160
|
+
|
|
161
|
+
// CSS Variable hook
|
|
162
|
+
export const useCSSVariable =
|
|
163
|
+
process.env.EXPO_OS !== "web"
|
|
164
|
+
? useFunctionalVariable
|
|
165
|
+
: (variable: string) => `var(${variable})`;
|
|
166
|
+
|
|
167
|
+
// View
|
|
168
|
+
export type ViewProps = React.ComponentProps<typeof RNView> & {
|
|
169
|
+
className?: string;
|
|
170
|
+
};
|
|
171
|
+
|
|
172
|
+
export const View = (props: ViewProps) => {
|
|
173
|
+
return useCssElement(RNView, props, { className: "style" });
|
|
174
|
+
};
|
|
175
|
+
View.displayName = "CSS(View)";
|
|
176
|
+
|
|
177
|
+
// Text
|
|
178
|
+
export const Text = (
|
|
179
|
+
props: React.ComponentProps<typeof RNText> & { className?: string }
|
|
180
|
+
) => {
|
|
181
|
+
return useCssElement(RNText, props, { className: "style" });
|
|
182
|
+
};
|
|
183
|
+
Text.displayName = "CSS(Text)";
|
|
184
|
+
|
|
185
|
+
// ScrollView
|
|
186
|
+
export const ScrollView = (
|
|
187
|
+
props: React.ComponentProps<typeof RNScrollView> & {
|
|
188
|
+
className?: string;
|
|
189
|
+
contentContainerClassName?: string;
|
|
190
|
+
}
|
|
191
|
+
) => {
|
|
192
|
+
return useCssElement(RNScrollView, props, {
|
|
193
|
+
className: "style",
|
|
194
|
+
contentContainerClassName: "contentContainerStyle",
|
|
195
|
+
});
|
|
196
|
+
};
|
|
197
|
+
ScrollView.displayName = "CSS(ScrollView)";
|
|
198
|
+
|
|
199
|
+
// Pressable
|
|
200
|
+
export const Pressable = (
|
|
201
|
+
props: React.ComponentProps<typeof RNPressable> & { className?: string }
|
|
202
|
+
) => {
|
|
203
|
+
return useCssElement(RNPressable, props, { className: "style" });
|
|
204
|
+
};
|
|
205
|
+
Pressable.displayName = "CSS(Pressable)";
|
|
206
|
+
|
|
207
|
+
// TextInput
|
|
208
|
+
export const TextInput = (
|
|
209
|
+
props: React.ComponentProps<typeof RNTextInput> & { className?: string }
|
|
210
|
+
) => {
|
|
211
|
+
return useCssElement(RNTextInput, props, { className: "style" });
|
|
212
|
+
};
|
|
213
|
+
TextInput.displayName = "CSS(TextInput)";
|
|
214
|
+
|
|
215
|
+
// AnimatedScrollView
|
|
216
|
+
export const AnimatedScrollView = (
|
|
217
|
+
props: React.ComponentProps<typeof Animated.ScrollView> & {
|
|
218
|
+
className?: string;
|
|
219
|
+
contentClassName?: string;
|
|
220
|
+
contentContainerClassName?: string;
|
|
221
|
+
}
|
|
222
|
+
) => {
|
|
223
|
+
return useCssElement(Animated.ScrollView, props, {
|
|
224
|
+
className: "style",
|
|
225
|
+
contentClassName: "contentContainerStyle",
|
|
226
|
+
contentContainerClassName: "contentContainerStyle",
|
|
227
|
+
});
|
|
228
|
+
};
|
|
229
|
+
|
|
230
|
+
// TouchableHighlight with underlayColor extraction
|
|
231
|
+
function XXTouchableHighlight(
|
|
232
|
+
props: React.ComponentProps<typeof RNTouchableHighlight>
|
|
233
|
+
) {
|
|
234
|
+
const { underlayColor, ...style } = StyleSheet.flatten(props.style) || {};
|
|
235
|
+
return (
|
|
236
|
+
<RNTouchableHighlight
|
|
237
|
+
underlayColor={underlayColor}
|
|
238
|
+
{...props}
|
|
239
|
+
style={style}
|
|
240
|
+
/>
|
|
241
|
+
);
|
|
242
|
+
}
|
|
243
|
+
|
|
244
|
+
export const TouchableHighlight = (
|
|
245
|
+
props: React.ComponentProps<typeof RNTouchableHighlight>
|
|
246
|
+
) => {
|
|
247
|
+
return useCssElement(XXTouchableHighlight, props, { className: "style" });
|
|
248
|
+
};
|
|
249
|
+
TouchableHighlight.displayName = "CSS(TouchableHighlight)";
|
|
250
|
+
```
|
|
251
|
+
|
|
252
|
+
### Image Component (`src/tw/image.tsx`)
|
|
253
|
+
|
|
254
|
+
```tsx
|
|
255
|
+
import { useCssElement } from "react-native-css";
|
|
256
|
+
import React from "react";
|
|
257
|
+
import { StyleSheet } from "react-native";
|
|
258
|
+
import Animated from "react-native-reanimated";
|
|
259
|
+
import { Image as RNImage } from "expo-image";
|
|
260
|
+
|
|
261
|
+
const AnimatedExpoImage = Animated.createAnimatedComponent(RNImage);
|
|
262
|
+
|
|
263
|
+
export type ImageProps = React.ComponentProps<typeof Image>;
|
|
264
|
+
|
|
265
|
+
function CSSImage(props: React.ComponentProps<typeof AnimatedExpoImage>) {
|
|
266
|
+
// @ts-expect-error: Remap objectFit style to contentFit property
|
|
267
|
+
const { objectFit, objectPosition, ...style } =
|
|
268
|
+
StyleSheet.flatten(props.style) || {};
|
|
269
|
+
|
|
270
|
+
return (
|
|
271
|
+
<AnimatedExpoImage
|
|
272
|
+
contentFit={objectFit}
|
|
273
|
+
contentPosition={objectPosition}
|
|
274
|
+
{...props}
|
|
275
|
+
source={
|
|
276
|
+
typeof props.source === "string" ? { uri: props.source } : props.source
|
|
277
|
+
}
|
|
278
|
+
// @ts-expect-error: Style is remapped above
|
|
279
|
+
style={style}
|
|
280
|
+
/>
|
|
281
|
+
);
|
|
282
|
+
}
|
|
283
|
+
|
|
284
|
+
export const Image = (
|
|
285
|
+
props: React.ComponentProps<typeof CSSImage> & { className?: string }
|
|
286
|
+
) => {
|
|
287
|
+
return useCssElement(CSSImage, props, { className: "style" });
|
|
288
|
+
};
|
|
289
|
+
|
|
290
|
+
Image.displayName = "CSS(Image)";
|
|
291
|
+
```
|
|
292
|
+
|
|
293
|
+
### Animated Components (`src/tw/animated.tsx`)
|
|
294
|
+
|
|
295
|
+
```tsx
|
|
296
|
+
import * as TW from "./index";
|
|
297
|
+
import RNAnimated from "react-native-reanimated";
|
|
298
|
+
|
|
299
|
+
export const Animated = {
|
|
300
|
+
...RNAnimated,
|
|
301
|
+
View: RNAnimated.createAnimatedComponent(TW.View),
|
|
302
|
+
};
|
|
303
|
+
```
|
|
304
|
+
|
|
305
|
+
## Usage
|
|
306
|
+
|
|
307
|
+
Import CSS-wrapped components from your tw directory:
|
|
308
|
+
|
|
309
|
+
```tsx
|
|
310
|
+
import { View, Text, ScrollView, Image } from "@/tw";
|
|
311
|
+
|
|
312
|
+
export default function MyScreen() {
|
|
313
|
+
return (
|
|
314
|
+
<ScrollView className="flex-1 bg-white">
|
|
315
|
+
<View className="p-4 gap-4">
|
|
316
|
+
<Text className="text-xl font-bold text-gray-900">Hello Tailwind!</Text>
|
|
317
|
+
<Image
|
|
318
|
+
className="w-full h-48 rounded-lg object-cover"
|
|
319
|
+
source={{ uri: "https://example.com/image.jpg" }}
|
|
320
|
+
/>
|
|
321
|
+
</View>
|
|
322
|
+
</ScrollView>
|
|
323
|
+
);
|
|
324
|
+
}
|
|
325
|
+
```
|
|
326
|
+
|
|
327
|
+
## Custom Theme Variables
|
|
328
|
+
|
|
329
|
+
Add custom theme variables in your global.css using `@theme`:
|
|
330
|
+
|
|
331
|
+
```css
|
|
332
|
+
@layer theme {
|
|
333
|
+
@theme {
|
|
334
|
+
/* Custom fonts */
|
|
335
|
+
--font-rounded: "SF Pro Rounded", sans-serif;
|
|
336
|
+
|
|
337
|
+
/* Custom line heights */
|
|
338
|
+
--text-xs--line-height: calc(1em / 0.75);
|
|
339
|
+
--text-sm--line-height: calc(1.25em / 0.875);
|
|
340
|
+
--text-base--line-height: calc(1.5em / 1);
|
|
341
|
+
|
|
342
|
+
/* Custom leading scales */
|
|
343
|
+
--leading-tight: 1.25em;
|
|
344
|
+
--leading-snug: 1.375em;
|
|
345
|
+
--leading-normal: 1.5em;
|
|
346
|
+
}
|
|
347
|
+
}
|
|
348
|
+
```
|
|
349
|
+
|
|
350
|
+
## Platform-Specific Styles
|
|
351
|
+
|
|
352
|
+
Use platform media queries for platform-specific styling:
|
|
353
|
+
|
|
354
|
+
```css
|
|
355
|
+
@media ios {
|
|
356
|
+
:root {
|
|
357
|
+
--font-sans: system-ui;
|
|
358
|
+
--font-rounded: ui-rounded;
|
|
359
|
+
}
|
|
360
|
+
}
|
|
361
|
+
|
|
362
|
+
@media android {
|
|
363
|
+
:root {
|
|
364
|
+
--font-sans: normal;
|
|
365
|
+
--font-rounded: normal;
|
|
366
|
+
}
|
|
367
|
+
}
|
|
368
|
+
```
|
|
369
|
+
|
|
370
|
+
## Apple System Colors with CSS Variables
|
|
371
|
+
|
|
372
|
+
Create a CSS file for Apple semantic colors:
|
|
373
|
+
|
|
374
|
+
```css
|
|
375
|
+
/* src/css/sf.css */
|
|
376
|
+
@layer base {
|
|
377
|
+
html {
|
|
378
|
+
color-scheme: light;
|
|
379
|
+
}
|
|
380
|
+
}
|
|
381
|
+
|
|
382
|
+
:root {
|
|
383
|
+
/* Accent colors with light/dark mode */
|
|
384
|
+
--sf-blue: light-dark(rgb(0 122 255), rgb(10 132 255));
|
|
385
|
+
--sf-green: light-dark(rgb(52 199 89), rgb(48 209 89));
|
|
386
|
+
--sf-red: light-dark(rgb(255 59 48), rgb(255 69 58));
|
|
387
|
+
|
|
388
|
+
/* Gray scales */
|
|
389
|
+
--sf-gray: light-dark(rgb(142 142 147), rgb(142 142 147));
|
|
390
|
+
--sf-gray-2: light-dark(rgb(174 174 178), rgb(99 99 102));
|
|
391
|
+
|
|
392
|
+
/* Text colors */
|
|
393
|
+
--sf-text: light-dark(rgb(0 0 0), rgb(255 255 255));
|
|
394
|
+
--sf-text-2: light-dark(rgb(60 60 67 / 0.6), rgb(235 235 245 / 0.6));
|
|
395
|
+
|
|
396
|
+
/* Background colors */
|
|
397
|
+
--sf-bg: light-dark(rgb(255 255 255), rgb(0 0 0));
|
|
398
|
+
--sf-bg-2: light-dark(rgb(242 242 247), rgb(28 28 30));
|
|
399
|
+
}
|
|
400
|
+
|
|
401
|
+
/* iOS native colors via platformColor */
|
|
402
|
+
@media ios {
|
|
403
|
+
:root {
|
|
404
|
+
--sf-blue: platformColor(systemBlue);
|
|
405
|
+
--sf-green: platformColor(systemGreen);
|
|
406
|
+
--sf-red: platformColor(systemRed);
|
|
407
|
+
--sf-gray: platformColor(systemGray);
|
|
408
|
+
--sf-text: platformColor(label);
|
|
409
|
+
--sf-text-2: platformColor(secondaryLabel);
|
|
410
|
+
--sf-bg: platformColor(systemBackground);
|
|
411
|
+
--sf-bg-2: platformColor(secondarySystemBackground);
|
|
412
|
+
}
|
|
413
|
+
}
|
|
414
|
+
|
|
415
|
+
/* Register as Tailwind theme colors */
|
|
416
|
+
@layer theme {
|
|
417
|
+
@theme {
|
|
418
|
+
--color-sf-blue: var(--sf-blue);
|
|
419
|
+
--color-sf-green: var(--sf-green);
|
|
420
|
+
--color-sf-red: var(--sf-red);
|
|
421
|
+
--color-sf-gray: var(--sf-gray);
|
|
422
|
+
--color-sf-text: var(--sf-text);
|
|
423
|
+
--color-sf-text-2: var(--sf-text-2);
|
|
424
|
+
--color-sf-bg: var(--sf-bg);
|
|
425
|
+
--color-sf-bg-2: var(--sf-bg-2);
|
|
426
|
+
}
|
|
427
|
+
}
|
|
428
|
+
```
|
|
429
|
+
|
|
430
|
+
Then use in components:
|
|
431
|
+
|
|
432
|
+
```tsx
|
|
433
|
+
<Text className="text-sf-text">Primary text</Text>
|
|
434
|
+
<Text className="text-sf-text-2">Secondary text</Text>
|
|
435
|
+
<View className="bg-sf-bg">...</View>
|
|
436
|
+
```
|
|
437
|
+
|
|
438
|
+
## Using CSS Variables in JavaScript
|
|
439
|
+
|
|
440
|
+
Use the `useCSSVariable` hook:
|
|
441
|
+
|
|
442
|
+
```tsx
|
|
443
|
+
import { useCSSVariable } from "@/tw";
|
|
444
|
+
|
|
445
|
+
function MyComponent() {
|
|
446
|
+
const blue = useCSSVariable("--sf-blue");
|
|
447
|
+
|
|
448
|
+
return <View style={{ borderColor: blue }} />;
|
|
449
|
+
}
|
|
450
|
+
```
|
|
451
|
+
|
|
452
|
+
## Key Differences from NativeWind v4 / Tailwind v3
|
|
453
|
+
|
|
454
|
+
1. **No babel.config.js** - Configuration is now CSS-first
|
|
455
|
+
2. **PostCSS plugin** - Uses `@tailwindcss/postcss` instead of `tailwindcss`
|
|
456
|
+
3. **CSS imports** - Use `@import "tailwindcss/..."` instead of `@tailwind` directives
|
|
457
|
+
4. **Theme config** - Use `@theme` in CSS instead of `tailwind.config.js`
|
|
458
|
+
5. **Component wrappers** - Must wrap components with `useCssElement` for className support
|
|
459
|
+
6. **Metro config** - Use `withNativewind` with different options (`inlineVariables: false`)
|
|
460
|
+
|
|
461
|
+
## Troubleshooting
|
|
462
|
+
|
|
463
|
+
### Styles not applying
|
|
464
|
+
|
|
465
|
+
1. Ensure you have the CSS file imported in your app entry
|
|
466
|
+
2. Check that components are wrapped with `useCssElement`
|
|
467
|
+
3. Verify Metro config has `withNativewind` applied
|
|
468
|
+
|
|
469
|
+
### Platform colors not working
|
|
470
|
+
|
|
471
|
+
1. Use `platformColor()` in `@media ios` blocks
|
|
472
|
+
2. Fall back to `light-dark()` for web/Android
|
|
473
|
+
|
|
474
|
+
### TypeScript errors
|
|
475
|
+
|
|
476
|
+
Add className to component props:
|
|
477
|
+
|
|
478
|
+
```tsx
|
|
479
|
+
type Props = React.ComponentProps<typeof RNView> & { className?: string };
|
|
480
|
+
```
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
interface:
|
|
2
|
+
display_name: "Expo Tailwind Setup"
|
|
3
|
+
short_description: "Set up Tailwind CSS v4, react-native-css, NativeWind v5, and CSS wrappers in Expo"
|
|
4
|
+
default_prompt: "Use $expo-tailwind-setup to install and configure Tailwind CSS v4 with Expo, NativeWind v5, react-native-css, Metro, PostCSS, global CSS, typed component wrappers, and theme variables."
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: find-skills
|
|
3
|
+
description: Helps users discover and install agent skills when they ask questions like "how do I do X", "find a skill for X", "is there a skill that can...", or express interest in extending capabilities. This skill should be used when the user is looking for functionality that might exist as an installable skill.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Find Skills
|
|
7
|
+
|
|
8
|
+
This skill helps you discover and install skills from the open agent skills ecosystem.
|
|
9
|
+
|
|
10
|
+
## When to Use This Skill
|
|
11
|
+
|
|
12
|
+
Use this skill when the user:
|
|
13
|
+
|
|
14
|
+
- Asks "how do I do X" where X might be a common task with an existing skill
|
|
15
|
+
- Says "find a skill for X" or "is there a skill for X"
|
|
16
|
+
- Asks "can you do X" where X is a specialized capability
|
|
17
|
+
- Expresses interest in extending agent capabilities
|
|
18
|
+
- Wants to search for tools, templates, or workflows
|
|
19
|
+
- Mentions they wish they had help with a specific domain (design, testing, deployment, etc.)
|
|
20
|
+
|
|
21
|
+
## What is the Skills CLI?
|
|
22
|
+
|
|
23
|
+
The Skills CLI (`npx skills`) is the package manager for the open agent skills ecosystem. Skills are modular packages that extend agent capabilities with specialized knowledge, workflows, and tools.
|
|
24
|
+
|
|
25
|
+
**Key commands:**
|
|
26
|
+
|
|
27
|
+
- `npx skills find [query]` - Search for skills interactively or by keyword
|
|
28
|
+
- `npx skills add <package>` - Install a skill from GitHub or other sources
|
|
29
|
+
- `npx skills check` - Check for skill updates
|
|
30
|
+
- `npx skills update` - Update all installed skills
|
|
31
|
+
|
|
32
|
+
**Browse skills at:** https://skills.sh/
|
|
33
|
+
|
|
34
|
+
## How to Help Users Find Skills
|
|
35
|
+
|
|
36
|
+
### Step 1: Understand What They Need
|
|
37
|
+
|
|
38
|
+
When a user asks for help with something, identify:
|
|
39
|
+
|
|
40
|
+
1. The domain (e.g., React, testing, design, deployment)
|
|
41
|
+
2. The specific task (e.g., writing tests, creating animations, reviewing PRs)
|
|
42
|
+
3. Whether this is a common enough task that a skill likely exists
|
|
43
|
+
|
|
44
|
+
### Step 2: Check the Leaderboard First
|
|
45
|
+
|
|
46
|
+
Before running a CLI search, check the [skills.sh leaderboard](https://skills.sh/) to see if a well-known skill already exists for the domain. The leaderboard ranks skills by total installs, surfacing the most popular and battle-tested options.
|
|
47
|
+
|
|
48
|
+
For example, top skills for web development include:
|
|
49
|
+
- `vercel-labs/agent-skills` — React, Next.js, web design (100K+ installs each)
|
|
50
|
+
- `anthropics/skills` — Frontend design, document processing (100K+ installs)
|
|
51
|
+
|
|
52
|
+
### Step 3: Search for Skills
|
|
53
|
+
|
|
54
|
+
If the leaderboard doesn't cover the user's need, run the find command:
|
|
55
|
+
|
|
56
|
+
```bash
|
|
57
|
+
npx skills find [query]
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
For example:
|
|
61
|
+
|
|
62
|
+
- User asks "how do I make my React app faster?" → `npx skills find react performance`
|
|
63
|
+
- User asks "can you help me with PR reviews?" → `npx skills find pr review`
|
|
64
|
+
- User asks "I need to create a changelog" → `npx skills find changelog`
|
|
65
|
+
|
|
66
|
+
### Step 4: Verify Quality Before Recommending
|
|
67
|
+
|
|
68
|
+
**Do not recommend a skill based solely on search results.** Always verify:
|
|
69
|
+
|
|
70
|
+
1. **Install count** — Prefer skills with 1K+ installs. Be cautious with anything under 100.
|
|
71
|
+
2. **Source reputation** — Official sources (`vercel-labs`, `anthropics`, `microsoft`) are more trustworthy than unknown authors.
|
|
72
|
+
3. **GitHub stars** — Check the source repository. A skill from a repo with <100 stars should be treated with skepticism.
|
|
73
|
+
|
|
74
|
+
### Step 5: Present Options to the User
|
|
75
|
+
|
|
76
|
+
When you find relevant skills, present them to the user with:
|
|
77
|
+
|
|
78
|
+
1. The skill name and what it does
|
|
79
|
+
2. The install count and source
|
|
80
|
+
3. The install command they can run
|
|
81
|
+
4. A link to learn more at skills.sh
|
|
82
|
+
|
|
83
|
+
Example response:
|
|
84
|
+
|
|
85
|
+
```
|
|
86
|
+
I found a skill that might help! The "react-best-practices" skill provides
|
|
87
|
+
React and Next.js performance optimization guidelines from Vercel Engineering.
|
|
88
|
+
(185K installs)
|
|
89
|
+
|
|
90
|
+
To install it:
|
|
91
|
+
npx skills add vercel-labs/agent-skills@react-best-practices
|
|
92
|
+
|
|
93
|
+
Learn more: https://skills.sh/vercel-labs/agent-skills/react-best-practices
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
### Step 6: Offer to Install
|
|
97
|
+
|
|
98
|
+
If the user wants to proceed, you can install the skill for them:
|
|
99
|
+
|
|
100
|
+
```bash
|
|
101
|
+
npx skills add <owner/repo@skill> -g -y
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
The `-g` flag installs globally (user-level) and `-y` skips confirmation prompts.
|
|
105
|
+
|
|
106
|
+
## Common Skill Categories
|
|
107
|
+
|
|
108
|
+
When searching, consider these common categories:
|
|
109
|
+
|
|
110
|
+
| Category | Example Queries |
|
|
111
|
+
| --------------- | ---------------------------------------- |
|
|
112
|
+
| Web Development | react, nextjs, typescript, css, tailwind |
|
|
113
|
+
| Testing | testing, jest, playwright, e2e |
|
|
114
|
+
| DevOps | deploy, docker, kubernetes, ci-cd |
|
|
115
|
+
| Documentation | docs, readme, changelog, api-docs |
|
|
116
|
+
| Code Quality | review, lint, refactor, best-practices |
|
|
117
|
+
| Design | ui, ux, design-system, accessibility |
|
|
118
|
+
| Productivity | workflow, automation, git |
|
|
119
|
+
|
|
120
|
+
## Tips for Effective Searches
|
|
121
|
+
|
|
122
|
+
1. **Use specific keywords**: "react testing" is better than just "testing"
|
|
123
|
+
2. **Try alternative terms**: If "deploy" doesn't work, try "deployment" or "ci-cd"
|
|
124
|
+
3. **Check popular sources**: Many skills come from `vercel-labs/agent-skills` or `ComposioHQ/awesome-claude-skills`
|
|
125
|
+
|
|
126
|
+
## When No Skills Are Found
|
|
127
|
+
|
|
128
|
+
If no relevant skills exist:
|
|
129
|
+
|
|
130
|
+
1. Acknowledge that no existing skill was found
|
|
131
|
+
2. Offer to help with the task directly using your general capabilities
|
|
132
|
+
3. Suggest the user could create their own skill with `npx skills init`
|
|
133
|
+
|
|
134
|
+
Example:
|
|
135
|
+
|
|
136
|
+
```
|
|
137
|
+
I searched for skills related to "xyz" but didn't find any matches.
|
|
138
|
+
I can still help you with this task directly! Would you like me to proceed?
|
|
139
|
+
|
|
140
|
+
If this is something you do often, you could create your own skill:
|
|
141
|
+
npx skills init my-xyz-skill
|
|
142
|
+
```
|