@kensaurus/skills 0.0.0-stage → 2.1.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.
- package/.claude-plugin/marketplace.json +53 -0
- package/.claude-plugin/plugin.json +40 -0
- package/.cursor-plugin/plugin.json +38 -0
- package/.mcp.json +28 -0
- package/CHANGELOG.md +1790 -0
- package/LICENSE +21 -0
- package/LICENSE-APACHE +62 -0
- package/NOTICE +13 -0
- package/README.md +821 -2
- package/SECURITY.md +55 -0
- package/agents/code-reviewer.md +60 -0
- package/agents/completion-judge.md +89 -0
- package/agents/db-migrator.md +125 -0
- package/agents/debugger.md +47 -0
- package/agents/deploy-checker.md +100 -0
- package/agents/perf-monitor.md +74 -0
- package/assets/favicon.png +0 -0
- package/assets/logo-light.png +0 -0
- package/assets/logo.png +0 -0
- package/assets/logo.svg +6 -0
- package/assets/og.png +0 -0
- package/bin/install.mjs +1127 -0
- package/bin/kenji.js +2 -0
- package/commands/adr.md +17 -0
- package/commands/aeo-plan.md +18 -0
- package/commands/arch-boundaries.md +17 -0
- package/commands/aso-plan.md +18 -0
- package/commands/auth-flows.md +19 -0
- package/commands/backup-plan.md +17 -0
- package/commands/burndown-full.md +25 -0
- package/commands/capacitor-plan.md +18 -0
- package/commands/codemod-safety.md +22 -0
- package/commands/commit.md +18 -0
- package/commands/complete-everything.md +40 -0
- package/commands/cost-plan.md +19 -0
- package/commands/deadcode-plan.md +26 -0
- package/commands/deadcode.md +32 -0
- package/commands/debug-issue.md +17 -0
- package/commands/deps-plan.md +18 -0
- package/commands/docs-plan.md +17 -0
- package/commands/doctrine.md +19 -0
- package/commands/error-plan.md +19 -0
- package/commands/feedback-to-closure.md +36 -0
- package/commands/fix-issue.md +76 -0
- package/commands/gate-logic.md +26 -0
- package/commands/green-repo.md +36 -0
- package/commands/grill-me.md +19 -0
- package/commands/gtm-plan.md +21 -0
- package/commands/gtm-weekly.md +17 -0
- package/commands/gtm.md +22 -0
- package/commands/handoff.md +15 -0
- package/commands/housekeep-backlog.md +18 -0
- package/commands/housekeep-files.md +22 -0
- package/commands/housekeep-gates.md +18 -0
- package/commands/instant-nav.md +11 -0
- package/commands/integrity-plan.md +19 -0
- package/commands/launch-kit.md +16 -0
- package/commands/mcp-guide.md +40 -0
- package/commands/mobile-plan.md +19 -0
- package/commands/native-rn-monorepo/README.md +78 -0
- package/commands/native-rn-monorepo/android-build.md +26 -0
- package/commands/native-rn-monorepo/android-install.md +32 -0
- package/commands/native-rn-monorepo/android-logcat.md +37 -0
- package/commands/native-rn-monorepo/ios-ci-logs.md +56 -0
- package/commands/native-rn-monorepo/ios-ci-status.md +52 -0
- package/commands/native-rn-monorepo/ios-ci-trigger.md +59 -0
- package/commands/native-rn-monorepo/rn-reset.md +50 -0
- package/commands/native-rn-monorepo/rn-ship-ios.md +67 -0
- package/commands/native-rn-monorepo/rn-verify.md +53 -0
- package/commands/perf-plan.md +18 -0
- package/commands/plan-mode.md +74 -0
- package/commands/pr.md +16 -0
- package/commands/pricing-plan.md +20 -0
- package/commands/privacy-plan.md +18 -0
- package/commands/readability.md +12 -0
- package/commands/readme.md +15 -0
- package/commands/refactor.md +15 -0
- package/commands/release-prep.md +17 -0
- package/commands/research.md +25 -0
- package/commands/responsive-audit.md +21 -0
- package/commands/review-code.md +18 -0
- package/commands/rls-plan.md +18 -0
- package/commands/secrets-plan.md +18 -0
- package/commands/security-plan.md +19 -0
- package/commands/ship-and-observe.md +36 -0
- package/commands/skill-conflicts.md +19 -0
- package/commands/slop-plan.md +18 -0
- package/commands/stub-plan.md +18 -0
- package/commands/test-mutation.md +16 -0
- package/commands/test-plan.md +17 -0
- package/commands/test.md +29 -0
- package/commands/thirdparty-web-interface-guidelines.md +185 -0
- package/commands/uiux-plan.md +18 -0
- package/commands/uiux.md +45 -0
- package/commands/update-deps.md +21 -0
- package/commands/validation-plan.md +19 -0
- package/commands-portable/fix-issue.md +72 -0
- package/commands-portable/plan-mode.md +92 -0
- package/commands-portable/research.md +91 -0
- package/docs/screenshots/README.md +5 -0
- package/docs/screenshots/audit-dark.png +0 -0
- package/docs/screenshots/build-dark.png +0 -0
- package/docs/screenshots/grill-dark.png +0 -0
- package/docs/screenshots/hero-dark.png +0 -0
- package/docs/screenshots/hero-light.png +0 -0
- package/docs/screenshots/ship-dark.png +0 -0
- package/docs/screenshots/src/showcase.html +320 -0
- package/hooks/completion-gate.mjs +258 -0
- package/hooks/cursor-hooks.json +13 -0
- package/hooks/hooks.json +15 -0
- package/install.sh +21 -0
- package/llms.txt +40 -0
- package/mcp/README.md +266 -0
- package/mcp/VERSIONS.md +41 -0
- package/mcp/mcp-full.json.template +124 -0
- package/mcp/mcp.json.template +29 -0
- package/mcp/pinned-versions.json +27 -0
- package/package.json +94 -4
- package/rules/approved-plan-execution.mdc +65 -0
- package/rules/full-stack-ship-discipline.mdc +37 -0
- package/rules/native-rn-monorepo/README.md +63 -0
- package/rules/native-rn-monorepo/_project.mdc +69 -0
- package/rules/native-rn-monorepo/native-android.mdc +72 -0
- package/rules/native-rn-monorepo/native-ios.mdc +61 -0
- package/rules/native-rn-monorepo/react-native-js.mdc +78 -0
- package/rules/native-rn-monorepo/web.mdc +60 -0
- package/rules/project-starter/components.mdc +54 -0
- package/rules/project-starter/data-fetching.mdc +77 -0
- package/rules/project-starter/git.mdc +41 -0
- package/rules/project-starter/supabase.mdc +37 -0
- package/rules/project-starter/tailwind.mdc +48 -0
- package/rules/project-starter/typescript.mdc +36 -0
- package/rules/project-starter/web-performance.mdc +42 -0
- package/rules/senior-engineer.mdc +30 -0
- package/rules/shell-first-search.mdc +19 -0
- package/rules/skill-workflows.mdc +35 -0
- package/rules/verification-before-completion.mdc +57 -0
- package/skills/audit-accessibility/SKILL.md +441 -0
- package/skills/audit-agent-speed/SKILL.md +181 -0
- package/skills/audit-agent-speed/scripts/stop-typecheck.mjs +151 -0
- package/skills/audit-analytics/SKILL.md +138 -0
- package/skills/audit-auth-flows/SKILL.md +267 -0
- package/skills/audit-backend-architecture/SKILL.md +266 -0
- package/skills/audit-backend-architecture/references/patterns.md +386 -0
- package/skills/audit-bundle-size/SKILL.md +295 -0
- package/skills/audit-cicd/SKILL.md +218 -0
- package/skills/audit-code-quality/SKILL.md +314 -0
- package/skills/audit-code-review/SKILL.md +289 -0
- package/skills/audit-codemod-safety/SKILL.md +159 -0
- package/skills/audit-db-schema/SKILL.md +465 -0
- package/skills/audit-db-schema/references/details.md +110 -0
- package/skills/audit-doctrine/SKILL.md +189 -0
- package/skills/audit-env-parity/SKILL.md +133 -0
- package/skills/audit-fe-api/SKILL.md +458 -0
- package/skills/audit-gate-logic/SKILL.md +219 -0
- package/skills/audit-i18n/SKILL.md +339 -0
- package/skills/audit-infra-cost/SKILL.md +142 -0
- package/skills/audit-langfuse-llm/SKILL.md +468 -0
- package/skills/audit-langfuse-llm/references/details.md +226 -0
- package/skills/audit-llm-security/SKILL.md +147 -0
- package/skills/audit-monetization-iap/SKILL.md +137 -0
- package/skills/audit-payment-system/SKILL.md +268 -0
- package/skills/audit-payment-system/references/checklist.md +283 -0
- package/skills/audit-performance/SKILL.md +383 -0
- package/skills/audit-performance/references/loading-priority-2026.md +81 -0
- package/skills/audit-realworld/SKILL.md +287 -0
- package/skills/audit-registry-listing/SKILL.md +122 -0
- package/skills/audit-resilience/SKILL.md +153 -0
- package/skills/audit-responsive/SKILL.md +221 -0
- package/skills/audit-responsive/references/checklist.md +166 -0
- package/skills/audit-security/SKILL.md +289 -0
- package/skills/audit-skill-conflicts/SKILL.md +178 -0
- package/skills/audit-ui-states/SKILL.md +146 -0
- package/skills/audit-uiux-design-system/SKILL.md +475 -0
- package/skills/audit-uiux-design-system/references/details.md +71 -0
- package/skills/audit-ux/SKILL.md +381 -0
- package/skills/audit-ux/references/details.md +245 -0
- package/skills/audit-ux-journeys/SKILL.md +215 -0
- package/skills/audit-ux-journeys/references/checklist.md +179 -0
- package/skills/backend-db-performance/SKILL.md +441 -0
- package/skills/backend-error-handling/SKILL.md +489 -0
- package/skills/backend-error-handling/references/details.md +58 -0
- package/skills/backend-observability/SKILL.md +88 -0
- package/skills/backend-patterns/SKILL.md +499 -0
- package/skills/backend-patterns/references/architecture-patterns.md +298 -0
- package/skills/backend-realtime/SKILL.md +403 -0
- package/skills/backend-realtime/references/patterns.md +74 -0
- package/skills/burndown-full/SKILL.md +174 -0
- package/skills/complete-everything/SKILL.md +295 -0
- package/skills/data-pipeline/SKILL.md +109 -0
- package/skills/data-visualization/SKILL.md +488 -0
- package/skills/debug-error/SKILL.md +322 -0
- package/skills/debug-fe-be-integration/SKILL.md +459 -0
- package/skills/debug-sentry-monitor/SKILL.md +497 -0
- package/skills/debug-sentry-monitor/references/details.md +165 -0
- package/skills/deploy-npm/SKILL.md +394 -0
- package/skills/deploy-npm/references/example-mushi-mushi.md +52 -0
- package/skills/deploy-verify/SKILL.md +489 -0
- package/skills/design-api/SKILL.md +379 -0
- package/skills/design-canvas/SKILL.md +155 -0
- package/skills/design-email/SKILL.md +370 -0
- package/skills/design-frontend/SKILL.md +143 -0
- package/skills/design-generative-art/SKILL.md +474 -0
- package/skills/design-mobile-first/SKILL.md +506 -0
- package/skills/design-motion/SKILL.md +333 -0
- package/skills/design-motion/references/delight-interactions.md +191 -0
- package/skills/design-prd/SKILL.md +443 -0
- package/skills/design-system/SKILL.md +457 -0
- package/skills/design-theme/SKILL.md +226 -0
- package/skills/design-theme/themes/tsumagoi-ranch.md +150 -0
- package/skills/docs-adr/SKILL.md +168 -0
- package/skills/docs-coauthor/SKILL.md +368 -0
- package/skills/docs-comparison-pages/SKILL.md +117 -0
- package/skills/docs-domain-modeling/SKILL.md +97 -0
- package/skills/docs-launch-kit/SKILL.md +139 -0
- package/skills/docs-writer/SKILL.md +469 -0
- package/skills/enhance-agent-guardrails/SKILL.md +164 -0
- package/skills/enhance-arch-boundaries/SKILL.md +154 -0
- package/skills/enhance-capacitor-ui/SKILL.md +463 -0
- package/skills/enhance-capacitor-ui/references/details.md +750 -0
- package/skills/enhance-email-deliverability/SKILL.md +143 -0
- package/skills/enhance-growth-loops/SKILL.md +122 -0
- package/skills/enhance-lifecycle-email/SKILL.md +130 -0
- package/skills/enhance-motion/SKILL.md +193 -0
- package/skills/enhance-onboarding/SKILL.md +148 -0
- package/skills/enhance-pwa/SKILL.md +303 -0
- package/skills/enhance-readability/SKILL.md +146 -0
- package/skills/enhance-readme/SKILL.md +496 -0
- package/skills/enhance-readme/package-lock.json +187 -0
- package/skills/enhance-readme/package.json +17 -0
- package/skills/enhance-readme/scripts/generate-readme-blocks.mjs +199 -0
- package/skills/enhance-readme/scripts/record-readme-tour.mjs +442 -0
- package/skills/enhance-skill-prompts/SKILL.md +167 -0
- package/skills/enhance-skill-prompts/references/exemplar-audit-auth-flows.md +311 -0
- package/skills/enhance-ux-laws/SKILL.md +409 -0
- package/skills/enhance-web-conversion/SKILL.md +155 -0
- package/skills/enhance-web-forms/SKILL.md +154 -0
- package/skills/enhance-web-instant-nav/SKILL.md +138 -0
- package/skills/enhance-web-instant-nav/references/bfcache-blockers.md +23 -0
- package/skills/enhance-web-instant-nav/references/early-hints.md +33 -0
- package/skills/enhance-web-instant-nav/references/speculation-rules.md +44 -0
- package/skills/enhance-web-landing/SKILL.md +459 -0
- package/skills/enhance-web-landing/references/details.md +773 -0
- package/skills/enhance-web-redesign/SKILL.md +228 -0
- package/skills/enhance-web-seo/SKILL.md +276 -0
- package/skills/enhance-web-ui/SKILL.md +473 -0
- package/skills/enhance-web-ui/references/details.md +674 -0
- package/skills/enhance-web-ux/HEURISTICS.md +248 -0
- package/skills/enhance-web-ux/PATTERNS.md +375 -0
- package/skills/enhance-web-ux/SKILL.md +464 -0
- package/skills/enhance-web-ux/examples.md +222 -0
- package/skills/enhance-web-ux/references/details.md +406 -0
- package/skills/enhance-web-web3d/SKILL.md +397 -0
- package/skills/enhance-web-web3d/references/css-canvas-effects.md +180 -0
- package/skills/handoff/SKILL.md +66 -0
- package/skills/housekeep-backlog/SKILL.md +149 -0
- package/skills/housekeep-dead-code/SKILL.md +387 -0
- package/skills/housekeep-dead-code/references/ratchet-ci.md +205 -0
- package/skills/housekeep-dead-code/references/supabase-hygiene.md +152 -0
- package/skills/housekeep-design/SKILL.md +207 -0
- package/skills/housekeep-files/SKILL.md +220 -0
- package/skills/housekeep-files/references/naming-and-catalog.md +86 -0
- package/skills/housekeep-files/scripts/housekeep-files.ps1 +360 -0
- package/skills/housekeep-files/scripts/housekeep-files.sh +238 -0
- package/skills/housekeep-gates/SKILL.md +174 -0
- package/skills/iterate-agent-harness/SKILL.md +137 -0
- package/skills/iterate-gtm-weekly/SKILL.md +103 -0
- package/skills/iterate-post-launch/SKILL.md +292 -0
- package/skills/meta-mcp-builder/SKILL.md +313 -0
- package/skills/meta-skill-creator/SKILL.md +304 -0
- package/skills/mobile-capacitor-platform/SKILL.md +103 -0
- package/skills/mobile-emulator-start/SKILL.md +296 -0
- package/skills/mobile-emulator-test/SKILL.md +491 -0
- package/skills/mobile-emulator-test/references/details.md +478 -0
- package/skills/mobile-rn-performance/SKILL.md +107 -0
- package/skills/mobile-rn-screen/SKILL.md +476 -0
- package/skills/mobile-rn-screen/references/details.md +785 -0
- package/skills/mushi-health/SKILL.md +206 -0
- package/skills/mushi-integration/SKILL.md +257 -0
- package/skills/plan-aeo-readiness/SKILL.md +166 -0
- package/skills/plan-antislop/SKILL.md +281 -0
- package/skills/plan-aso/SKILL.md +149 -0
- package/skills/plan-backup-dr/SKILL.md +131 -0
- package/skills/plan-capacitor-hardening/SKILL.md +217 -0
- package/skills/plan-data-integrity/SKILL.md +187 -0
- package/skills/plan-dead-code/SKILL.md +386 -0
- package/skills/plan-dead-code/references/knip-config.md +214 -0
- package/skills/plan-dead-code/references/output-templates.md +133 -0
- package/skills/plan-dead-code/references/preservation-contract.md +50 -0
- package/skills/plan-dead-code/references/residue-greps.md +84 -0
- package/skills/plan-dependency-provenance/SKILL.md +200 -0
- package/skills/plan-docs-sync/SKILL.md +143 -0
- package/skills/plan-docs-sync/references/drift-taxonomy.md +43 -0
- package/skills/plan-docs-sync/references/output-templates.md +33 -0
- package/skills/plan-docs-sync/references/preservation-contract.md +17 -0
- package/skills/plan-error-handling/SKILL.md +205 -0
- package/skills/plan-gtm/SKILL.md +276 -0
- package/skills/plan-gtm/references/benchmarks-2026.md +183 -0
- package/skills/plan-input-validation/SKILL.md +179 -0
- package/skills/plan-llm-cost-guardrails/SKILL.md +176 -0
- package/skills/plan-mobile-readiness/SKILL.md +171 -0
- package/skills/plan-perf-audit/SKILL.md +145 -0
- package/skills/plan-perf-audit/references/audit-scope.md +51 -0
- package/skills/plan-perf-audit/references/output-templates.md +33 -0
- package/skills/plan-perf-audit/references/preservation-contract.md +13 -0
- package/skills/plan-pricing/SKILL.md +173 -0
- package/skills/plan-privacy-compliance/SKILL.md +148 -0
- package/skills/plan-rls-audit/SKILL.md +231 -0
- package/skills/plan-secrets-audit/SKILL.md +181 -0
- package/skills/plan-security-audit/SKILL.md +168 -0
- package/skills/plan-security-audit/references/output-templates.md +36 -0
- package/skills/plan-security-audit/references/owasp-supabase-scope.md +55 -0
- package/skills/plan-security-audit/references/preservation-contract.md +18 -0
- package/skills/plan-stub-checker/SKILL.md +216 -0
- package/skills/plan-stub-checker/references/detection-methodology.md +75 -0
- package/skills/plan-stub-checker/references/detection-taxonomy.md +34 -0
- package/skills/plan-stub-checker/references/output-templates.md +63 -0
- package/skills/plan-stub-checker/references/preservation-contract.md +24 -0
- package/skills/plan-test-coverage/SKILL.md +170 -0
- package/skills/plan-test-coverage/references/methodology.md +54 -0
- package/skills/plan-test-coverage/references/output-templates.md +34 -0
- package/skills/plan-test-coverage/references/preservation-contract.md +15 -0
- package/skills/plan-uiux-unification/SKILL.md +230 -0
- package/skills/plan-uiux-unification/references/output-templates.md +67 -0
- package/skills/plan-uiux-unification/references/phase-workbook.md +85 -0
- package/skills/plan-uiux-unification/references/preservation-contract.md +24 -0
- package/skills/protocol-browser-anti-stall/SKILL.md +211 -0
- package/skills/protocol-browser-anti-stall/references/mcp-to-cli-map.md +113 -0
- package/skills/protocol-browser-anti-stall/references/playwright-session-coordination.md +170 -0
- package/skills/research/SKILL.md +422 -0
- package/skills/test-exploratory/SKILL.md +165 -0
- package/skills/test-exploratory/references/charter-template.md +29 -0
- package/skills/test-load/SKILL.md +126 -0
- package/skills/test-mutation/SKILL.md +160 -0
- package/skills/test-playwright/SKILL.md +354 -0
- package/skills/test-qa/SKILL.md +364 -0
- package/skills/test-qa/references/details.md +268 -0
- package/skills/test-red-team/SKILL.md +386 -0
- package/skills/test-red-team/references/owasp-attack-checklist.md +193 -0
- package/skills/test-unit/SKILL.md +259 -0
- package/skills/test-unit/references/details.md +267 -0
- package/skills/test-visual-regression/SKILL.md +132 -0
- package/skills/thirdparty-emil-design-eng/ATTRIBUTION.md +20 -0
- package/skills/thirdparty-emil-design-eng/SKILL.md +21 -0
- package/skills/thirdparty-emil-design-eng/references/emil-design-eng.md +676 -0
- package/skills/thirdparty-ui-ux-pro-max/ATTRIBUTION.md +22 -0
- package/skills/thirdparty-ui-ux-pro-max/SKILL.md +304 -0
- package/skills/thirdparty-ui-ux-pro-max/data/charts.csv +26 -0
- package/skills/thirdparty-ui-ux-pro-max/data/colors.csv +97 -0
- package/skills/thirdparty-ui-ux-pro-max/data/icons.csv +101 -0
- package/skills/thirdparty-ui-ux-pro-max/data/landing.csv +31 -0
- package/skills/thirdparty-ui-ux-pro-max/data/products.csv +97 -0
- package/skills/thirdparty-ui-ux-pro-max/data/react-performance.csv +45 -0
- package/skills/thirdparty-ui-ux-pro-max/data/stacks/astro.csv +54 -0
- package/skills/thirdparty-ui-ux-pro-max/data/stacks/flutter.csv +53 -0
- package/skills/thirdparty-ui-ux-pro-max/data/stacks/html-tailwind.csv +56 -0
- package/skills/thirdparty-ui-ux-pro-max/data/stacks/jetpack-compose.csv +53 -0
- package/skills/thirdparty-ui-ux-pro-max/data/stacks/nextjs.csv +53 -0
- package/skills/thirdparty-ui-ux-pro-max/data/stacks/nuxt-ui.csv +51 -0
- package/skills/thirdparty-ui-ux-pro-max/data/stacks/nuxtjs.csv +59 -0
- package/skills/thirdparty-ui-ux-pro-max/data/stacks/react-native.csv +52 -0
- package/skills/thirdparty-ui-ux-pro-max/data/stacks/react.csv +54 -0
- package/skills/thirdparty-ui-ux-pro-max/data/stacks/shadcn.csv +61 -0
- package/skills/thirdparty-ui-ux-pro-max/data/stacks/svelte.csv +54 -0
- package/skills/thirdparty-ui-ux-pro-max/data/stacks/swiftui.csv +51 -0
- package/skills/thirdparty-ui-ux-pro-max/data/stacks/vue.csv +50 -0
- package/skills/thirdparty-ui-ux-pro-max/data/styles.csv +68 -0
- package/skills/thirdparty-ui-ux-pro-max/data/typography.csv +58 -0
- package/skills/thirdparty-ui-ux-pro-max/data/ui-reasoning.csv +101 -0
- package/skills/thirdparty-ui-ux-pro-max/data/ux-guidelines.csv +100 -0
- package/skills/thirdparty-ui-ux-pro-max/data/web-interface.csv +31 -0
- package/skills/thirdparty-ui-ux-pro-max/scripts/core.py +253 -0
- package/skills/thirdparty-ui-ux-pro-max/scripts/design_system.py +1067 -0
- package/skills/thirdparty-ui-ux-pro-max/scripts/search.py +114 -0
- package/skills/thirdparty-web-interface-guidelines/ATTRIBUTION.md +23 -0
- package/skills/thirdparty-web-interface-guidelines/SKILL.md +190 -0
- package/skills/workflow-build-feature/SKILL.md +118 -0
- package/skills/workflow-coding-discipline/SKILL.md +140 -0
- package/skills/workflow-environment-ready/SKILL.md +128 -0
- package/skills/workflow-feature-flag/SKILL.md +262 -0
- package/skills/workflow-feedback-to-closure/SKILL.md +165 -0
- package/skills/workflow-fix-and-ship/SKILL.md +136 -0
- package/skills/workflow-git-commit/SKILL.md +200 -0
- package/skills/workflow-green-repo/SKILL.md +166 -0
- package/skills/workflow-grilling/SKILL.md +73 -0
- package/skills/workflow-gtm/SKILL.md +153 -0
- package/skills/workflow-housekeep/SKILL.md +453 -0
- package/skills/workflow-housekeep/references/templates.md +109 -0
- package/skills/workflow-launch-ready/SKILL.md +145 -0
- package/skills/workflow-merge-conflicts/SKILL.md +62 -0
- package/skills/workflow-onboard/SKILL.md +99 -0
- package/skills/workflow-parallel-agents/SKILL.md +164 -0
- package/skills/workflow-pr/SKILL.md +197 -0
- package/skills/workflow-quality-gate/SKILL.md +147 -0
- package/skills/workflow-refactor/SKILL.md +274 -0
- package/skills/workflow-release-prep/SKILL.md +207 -0
- package/skills/workflow-ship-and-observe/SKILL.md +164 -0
- package/skills/workflow-spec-tdd/SKILL.md +141 -0
- package/skills/workflow-spec-tdd/references/spec-template.md +126 -0
- package/skills/workflow-spec-tdd/references/tdd-patterns.md +167 -0
- package/skills-cursor/babysit/SKILL.md +17 -0
- package/skills-cursor/canvas/SKILL.md +142 -0
- package/skills-cursor/canvas/sdk/canvas-tokens.d.ts +235 -0
- package/skills-cursor/canvas/sdk/chart-primitives.d.ts +200 -0
- package/skills-cursor/canvas/sdk/dag-layout.d.ts +102 -0
- package/skills-cursor/canvas/sdk/diff-view.d.ts +130 -0
- package/skills-cursor/canvas/sdk/form-primitives.d.ts +194 -0
- package/skills-cursor/canvas/sdk/hooks.d.ts +117 -0
- package/skills-cursor/canvas/sdk/index.d.ts +47 -0
- package/skills-cursor/canvas/sdk/theme.d.ts +61 -0
- package/skills-cursor/canvas/sdk/todo-list.d.ts +49 -0
- package/skills-cursor/canvas/sdk/ui-primitives.d.ts +549 -0
- package/skills-cursor/canvas/sdk/ui-primitives.test.d.ts +2 -0
- package/skills-cursor/create-hook/SKILL.md +238 -0
- package/skills-cursor/create-rule/SKILL.md +185 -0
- package/skills-cursor/create-skill/SKILL.md +269 -0
- package/skills-cursor/create-skill/references/authoring-guide.md +182 -0
- package/skills-cursor/create-subagent/SKILL.md +228 -0
- package/skills-cursor/migrate-to-skills/SKILL.md +121 -0
- package/skills-cursor/shell/SKILL.md +22 -0
- package/skills-cursor/split-to-prs/SKILL.md +47 -0
- package/skills-cursor/statusline/SKILL.md +193 -0
- package/skills-cursor/update-cli-config/SKILL.md +85 -0
- package/skills-cursor/update-cursor-settings/SKILL.md +137 -0
- package/skills.sh.json +297 -0
|
@@ -0,0 +1,549 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* UI primitives for `cursor/canvas`. Styling follows the Cursor dark theme; no extra packages required.
|
|
3
|
+
*/
|
|
4
|
+
import { type CSSProperties, type JSX, type ReactNode } from "react";
|
|
5
|
+
/**
|
|
6
|
+
* Shallow-merge style objects with `override` taking precedence.
|
|
7
|
+
*
|
|
8
|
+
* Use for small tweaks on built-in components (e.g. extra padding or width).
|
|
9
|
+
* **Do not** use this to build elaborate custom chrome — prefer the built-in
|
|
10
|
+
* components and flat solid token colors. No gradients, no box-shadows.
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* ```tsx
|
|
14
|
+
* // Good — minor override on a built-in component
|
|
15
|
+
* <CardBody style={mergeStyle({ padding: 16 })}>…</CardBody>
|
|
16
|
+
*
|
|
17
|
+
* // Bad — hand-rolled decorative styling
|
|
18
|
+
* <div style={mergeStyle(base, { background: "linear-gradient(…)" })}>…</div>
|
|
19
|
+
* ```
|
|
20
|
+
*/
|
|
21
|
+
export declare function mergeStyle(base: CSSProperties, override?: CSSProperties): CSSProperties;
|
|
22
|
+
export type StackProps = {
|
|
23
|
+
children?: ReactNode;
|
|
24
|
+
gap?: number;
|
|
25
|
+
style?: CSSProperties;
|
|
26
|
+
};
|
|
27
|
+
/**
|
|
28
|
+
* Vertical flex column. Use as the top-level page wrapper or to stack cards/sections.
|
|
29
|
+
*
|
|
30
|
+
* @example
|
|
31
|
+
* ```tsx
|
|
32
|
+
* <Stack gap={16}>
|
|
33
|
+
* <H1>Dashboard</H1>
|
|
34
|
+
* <Card>…</Card>
|
|
35
|
+
* <Card>…</Card>
|
|
36
|
+
* </Stack>
|
|
37
|
+
* ```
|
|
38
|
+
*/
|
|
39
|
+
export declare function Stack({ children, gap, style }: StackProps): JSX.Element;
|
|
40
|
+
export type RowProps = {
|
|
41
|
+
children?: ReactNode;
|
|
42
|
+
gap?: number;
|
|
43
|
+
align?: "start" | "center" | "end" | "stretch";
|
|
44
|
+
justify?: "start" | "center" | "end" | "space-between";
|
|
45
|
+
wrap?: boolean;
|
|
46
|
+
style?: CSSProperties;
|
|
47
|
+
};
|
|
48
|
+
/**
|
|
49
|
+
* Horizontal flex row. Use for inline groups of buttons, badges, or metadata.
|
|
50
|
+
*
|
|
51
|
+
* @example
|
|
52
|
+
* ```tsx
|
|
53
|
+
* <Row gap={8} align="center">
|
|
54
|
+
* <Button variant="primary">Save</Button>
|
|
55
|
+
* <Button variant="ghost">Cancel</Button>
|
|
56
|
+
* </Row>
|
|
57
|
+
* ```
|
|
58
|
+
*/
|
|
59
|
+
export declare function Row({ children, gap, align, justify, wrap, style }: RowProps): JSX.Element;
|
|
60
|
+
/**
|
|
61
|
+
* CSS Grid with tokenized gap. Prefer this over `Row` + `wrap` when you need a
|
|
62
|
+
* fixed number of equal-width columns: wrapped flex items can land on their
|
|
63
|
+
* own row and grow to full width (`flex-grow`), which is often surprising for
|
|
64
|
+
* boards and dashboards.
|
|
65
|
+
*/
|
|
66
|
+
export type GridProps = {
|
|
67
|
+
children?: ReactNode;
|
|
68
|
+
/**
|
|
69
|
+
* Equal columns: pass a number (uses `repeat(n, minmax(0, 1fr))`), or a CSS
|
|
70
|
+
* `grid-template-columns` string (e.g. `"1fr 2fr"` or `"minmax(0, 200px) 1fr"`).
|
|
71
|
+
*/
|
|
72
|
+
columns: number | string;
|
|
73
|
+
gap?: number;
|
|
74
|
+
align?: "start" | "center" | "end" | "stretch";
|
|
75
|
+
style?: CSSProperties;
|
|
76
|
+
};
|
|
77
|
+
export declare function Grid({ children, columns, gap, align, style }: GridProps): JSX.Element;
|
|
78
|
+
export type DividerProps = {
|
|
79
|
+
style?: CSSProperties;
|
|
80
|
+
};
|
|
81
|
+
/**
|
|
82
|
+
* Horizontal line for visually separating sections. Uses `stroke.tertiary`
|
|
83
|
+
* to match the Card/Table hairline weight.
|
|
84
|
+
*
|
|
85
|
+
* @example
|
|
86
|
+
* ```tsx
|
|
87
|
+
* <Stack>
|
|
88
|
+
* <Text>Section one</Text>
|
|
89
|
+
* <Divider />
|
|
90
|
+
* <Text>Section two</Text>
|
|
91
|
+
* </Stack>
|
|
92
|
+
* ```
|
|
93
|
+
*/
|
|
94
|
+
export declare function Divider({ style }: DividerProps): JSX.Element;
|
|
95
|
+
/**
|
|
96
|
+
* Flex spacer that pushes siblings apart. Place inside a `Row` to push
|
|
97
|
+
* trailing content to the right edge.
|
|
98
|
+
*
|
|
99
|
+
* @example
|
|
100
|
+
* ```tsx
|
|
101
|
+
* <Row>
|
|
102
|
+
* <Text>Title</Text>
|
|
103
|
+
* <Spacer />
|
|
104
|
+
* <Button variant="primary">Save</Button>
|
|
105
|
+
* </Row>
|
|
106
|
+
* ```
|
|
107
|
+
*/
|
|
108
|
+
export declare function Spacer(): JSX.Element;
|
|
109
|
+
/** Horizontal alignment for a table column. */
|
|
110
|
+
export type TableColumnAlign = "left" | "center" | "right";
|
|
111
|
+
/** Semantic tone for a table row — renders a translucent tinted background. */
|
|
112
|
+
export type TableRowTone = "success" | "danger" | "warning" | "info" | "neutral";
|
|
113
|
+
export type TableProps = {
|
|
114
|
+
/** Column titles, left to right. Column count is fixed by this array. */
|
|
115
|
+
headers: ReactNode[];
|
|
116
|
+
/**
|
|
117
|
+
* Body rows. Each row is an array of cells in the same order as `headers`.
|
|
118
|
+
* Shorter rows are padded with empty cells; extra cells are ignored.
|
|
119
|
+
*/
|
|
120
|
+
rows: ReactNode[][];
|
|
121
|
+
/** Optional alignment per column index (headers/rows). Defaults to left. */
|
|
122
|
+
columnAlign?: Array<TableColumnAlign | undefined>;
|
|
123
|
+
/**
|
|
124
|
+
* Optional semantic tone per row index. Applies a translucent tinted
|
|
125
|
+
* background — use for status highlighting (e.g. failing services, warnings).
|
|
126
|
+
* Sparse: `undefined` entries are uncolored.
|
|
127
|
+
*/
|
|
128
|
+
rowTone?: Array<TableRowTone | undefined>;
|
|
129
|
+
/** When true (default), bordered rounded shell with horizontal scroll if needed. */
|
|
130
|
+
framed?: boolean;
|
|
131
|
+
/** Alternate subtle fill on even rows for easier scanning in large tables. */
|
|
132
|
+
striped?: boolean;
|
|
133
|
+
/** Stick the header row when the framed container scrolls vertically. */
|
|
134
|
+
stickyHeader?: boolean;
|
|
135
|
+
style?: CSSProperties;
|
|
136
|
+
/** Shown in a single spanning cell when `rows` is empty. */
|
|
137
|
+
emptyMessage?: ReactNode;
|
|
138
|
+
};
|
|
139
|
+
/**
|
|
140
|
+
* Data table with column headers and rows. Framed by default with its own
|
|
141
|
+
* bordered container — **do not wrap in a Card** unless the card itself is
|
|
142
|
+
* a named entity that happens to contain a table. Render directly under a
|
|
143
|
+
* heading in the normal case.
|
|
144
|
+
*
|
|
145
|
+
* @example
|
|
146
|
+
* ```tsx
|
|
147
|
+
* // Good — table directly under a heading
|
|
148
|
+
* <H2>Active services</H2>
|
|
149
|
+
* <Table
|
|
150
|
+
* headers={["Service", "Status", "RPS"]}
|
|
151
|
+
* rows={[
|
|
152
|
+
* ["api-gateway", "Steady", "3.2k"],
|
|
153
|
+
* ["workers", "Hot", "8.1k"],
|
|
154
|
+
* ]}
|
|
155
|
+
* columnAlign={["left", "left", "right"]}
|
|
156
|
+
* />
|
|
157
|
+
*
|
|
158
|
+
* // Allowed — table inside a named-entity card
|
|
159
|
+
* <Card>
|
|
160
|
+
* <CardHeader>billing-service</CardHeader>
|
|
161
|
+
* <CardBody><Table headers={…} rows={…} /></CardBody>
|
|
162
|
+
* </Card>
|
|
163
|
+
* ```
|
|
164
|
+
*/
|
|
165
|
+
export declare function Table({ headers, rows, columnAlign, rowTone, framed, striped, stickyHeader, style, emptyMessage }: TableProps): JSX.Element;
|
|
166
|
+
export type TextWeight = "normal" | "medium" | "semibold" | "bold";
|
|
167
|
+
export type TextProps = {
|
|
168
|
+
children?: ReactNode;
|
|
169
|
+
tone?: "primary" | "secondary" | "tertiary" | "quaternary";
|
|
170
|
+
size?: "body" | "small";
|
|
171
|
+
/**
|
|
172
|
+
* Element tag to render. Defaults to `"p"` for top-level body copy and
|
|
173
|
+
* automatically switches to `"span"` when nested inside another typography
|
|
174
|
+
* container so inline emphasis stays valid HTML.
|
|
175
|
+
*/
|
|
176
|
+
as?: "p" | "span";
|
|
177
|
+
/** Font weight. Default is `"normal"` (400). Use `"semibold"` or `"bold"` for emphasis. */
|
|
178
|
+
weight?: TextWeight;
|
|
179
|
+
/** Render as italic. */
|
|
180
|
+
italic?: boolean;
|
|
181
|
+
/**
|
|
182
|
+
* Truncate overflowing text with an ellipsis on a single line.
|
|
183
|
+
* - `true` / `"end"` — ellipsis at the end (default truncation).
|
|
184
|
+
* - `"start"` — ellipsis at the start. Useful for file paths where the
|
|
185
|
+
* filename matters more than the directory prefix.
|
|
186
|
+
*
|
|
187
|
+
* Requires the parent to have a bounded width (flex child with
|
|
188
|
+
* `minWidth: 0`, fixed width, etc.) — otherwise the text just expands
|
|
189
|
+
* and never overflows.
|
|
190
|
+
*/
|
|
191
|
+
truncate?: boolean | "start" | "end";
|
|
192
|
+
style?: CSSProperties;
|
|
193
|
+
};
|
|
194
|
+
/**
|
|
195
|
+
* Body text with tone, size, weight, and italic variants.
|
|
196
|
+
*
|
|
197
|
+
* Top-level `Text` renders a `<p>`. Nested `Text` automatically renders a
|
|
198
|
+
* `<span>` so inline emphasis like `<Text>Use <Text weight="semibold">this</Text></Text>`
|
|
199
|
+
* does not emit invalid nested paragraphs. Use `as` to override when needed.
|
|
200
|
+
*
|
|
201
|
+
* Compose with `<Code>` for inline code and `<Link>` for hyperlinks inside
|
|
202
|
+
* the text flow.
|
|
203
|
+
*
|
|
204
|
+
* @example
|
|
205
|
+
* ```tsx
|
|
206
|
+
* <Text>Primary body text.</Text>
|
|
207
|
+
* <Text weight="semibold">Important note.</Text>
|
|
208
|
+
* <Text italic tone="secondary">Supplementary remark.</Text>
|
|
209
|
+
* <Text>Run <Code>npm install</Code> to get started.</Text>
|
|
210
|
+
* <Text>See the <Link href="https://example.com">docs</Link> for details.</Text>
|
|
211
|
+
* ```
|
|
212
|
+
*/
|
|
213
|
+
export declare function Text({ children, tone, size, as, weight, italic, truncate, style }: TextProps): JSX.Element;
|
|
214
|
+
export type H1Props = {
|
|
215
|
+
children?: ReactNode;
|
|
216
|
+
style?: CSSProperties;
|
|
217
|
+
};
|
|
218
|
+
/**
|
|
219
|
+
* Page-level heading. Use once at the top of a canvas.
|
|
220
|
+
* **Do not** place inside `CardHeader` — card headers use their own label.
|
|
221
|
+
*
|
|
222
|
+
* @example
|
|
223
|
+
* ```tsx
|
|
224
|
+
* <Stack>
|
|
225
|
+
* <H1>Performance Report</H1>
|
|
226
|
+
* <Card>…</Card>
|
|
227
|
+
* </Stack>
|
|
228
|
+
* ```
|
|
229
|
+
*/
|
|
230
|
+
export declare function H1({ children, style }: H1Props): JSX.Element;
|
|
231
|
+
export type H2Props = {
|
|
232
|
+
children?: ReactNode;
|
|
233
|
+
style?: CSSProperties;
|
|
234
|
+
};
|
|
235
|
+
/**
|
|
236
|
+
* Section heading. Use between groups of cards or sections.
|
|
237
|
+
* **Do not** place inside `CardHeader` — card headers use their own label.
|
|
238
|
+
*
|
|
239
|
+
* @example
|
|
240
|
+
* ```tsx
|
|
241
|
+
* <Stack>
|
|
242
|
+
* <H2>Recent activity</H2>
|
|
243
|
+
* <Card>…</Card>
|
|
244
|
+
* <Card>…</Card>
|
|
245
|
+
* </Stack>
|
|
246
|
+
* ```
|
|
247
|
+
*/
|
|
248
|
+
export declare function H2({ children, style }: H2Props): JSX.Element;
|
|
249
|
+
export type H3Props = {
|
|
250
|
+
children?: ReactNode;
|
|
251
|
+
style?: CSSProperties;
|
|
252
|
+
};
|
|
253
|
+
/**
|
|
254
|
+
* Sub-section heading. Use below `H2` for finer hierarchy.
|
|
255
|
+
*
|
|
256
|
+
* @example
|
|
257
|
+
* ```tsx
|
|
258
|
+
* <Stack>
|
|
259
|
+
* <H2>API Reference</H2>
|
|
260
|
+
* <H3>Authentication</H3>
|
|
261
|
+
* <Text>All requests require a bearer token.</Text>
|
|
262
|
+
* </Stack>
|
|
263
|
+
* ```
|
|
264
|
+
*/
|
|
265
|
+
export declare function H3({ children, style }: H3Props): JSX.Element;
|
|
266
|
+
export type CodeProps = {
|
|
267
|
+
children?: ReactNode;
|
|
268
|
+
style?: CSSProperties;
|
|
269
|
+
};
|
|
270
|
+
/**
|
|
271
|
+
* Inline `<code>` span for identifiers, file names, or short snippets.
|
|
272
|
+
* Uses `0.92em` so it scales with surrounding text (headings, body, etc.).
|
|
273
|
+
*
|
|
274
|
+
* Prefer writing backtick markdown inside `Text` — e.g. `` <Text>Run `npm install`</Text> `` —
|
|
275
|
+
* which is automatically parsed. Use `<Code>` only when you need an explicit element.
|
|
276
|
+
*
|
|
277
|
+
* @example
|
|
278
|
+
* ```tsx
|
|
279
|
+
* <Text>Run <Code>npm install</Code> to get started.</Text>
|
|
280
|
+
* ```
|
|
281
|
+
*/
|
|
282
|
+
export declare function Code({ children, style }: CodeProps): JSX.Element;
|
|
283
|
+
export type LinkProps = {
|
|
284
|
+
children?: ReactNode;
|
|
285
|
+
href: string;
|
|
286
|
+
style?: CSSProperties;
|
|
287
|
+
};
|
|
288
|
+
/**
|
|
289
|
+
* Inline link that opens in the user's default browser.
|
|
290
|
+
*
|
|
291
|
+
* Prefer writing markdown links inside `Text` — e.g. `<Text>See the [docs](url)</Text>` —
|
|
292
|
+
* which are automatically parsed. Use `<Link>` when you need an explicit anchor
|
|
293
|
+
* outside of a text flow or when composing with other elements.
|
|
294
|
+
*
|
|
295
|
+
* @example
|
|
296
|
+
* ```tsx
|
|
297
|
+
* <Link href="https://docs.example.com">View documentation</Link>
|
|
298
|
+
* ```
|
|
299
|
+
*/
|
|
300
|
+
export declare function Link({ children, href, style }: LinkProps): JSX.Element;
|
|
301
|
+
export type CardSize = "base" | "lg";
|
|
302
|
+
export type CardVariant = "default" | "borderless";
|
|
303
|
+
/**
|
|
304
|
+
* Inline chevron SVG used by disclosure-style controls (collapsible cards,
|
|
305
|
+
* expandable list items, etc.). Shared by `Card` and `todo-list.tsx` so
|
|
306
|
+
* every disclosure in the canvas SDK uses the same glyph.
|
|
307
|
+
*/
|
|
308
|
+
export declare function CanvasChevron({ expanded }: {
|
|
309
|
+
expanded: boolean;
|
|
310
|
+
}): JSX.Element;
|
|
311
|
+
export type CardProps = {
|
|
312
|
+
children?: ReactNode;
|
|
313
|
+
/** Default: bordered surface with radius; `borderless` removes both. */
|
|
314
|
+
variant?: CardVariant;
|
|
315
|
+
/** `lg` uses a taller header and roomier title padding (matches packages/ui). */
|
|
316
|
+
size?: CardSize;
|
|
317
|
+
/**
|
|
318
|
+
* When true, the header uses `position: sticky` so it stays visible while
|
|
319
|
+
* the card body scrolls. Requires the card (or a parent) to have a
|
|
320
|
+
* constrained height and `overflow: auto` — the canvas host controls this,
|
|
321
|
+
* so sticky behavior depends on the host viewport.
|
|
322
|
+
*/
|
|
323
|
+
stickyHeader?: boolean;
|
|
324
|
+
/**
|
|
325
|
+
* Make the card collapsible. The header becomes a clickable toggle with
|
|
326
|
+
* a leading chevron; `CardBody` renders nothing while the card is closed.
|
|
327
|
+
*/
|
|
328
|
+
collapsible?: boolean;
|
|
329
|
+
/** Initial open state in uncontrolled mode. Ignored when `open` is set. */
|
|
330
|
+
defaultOpen?: boolean;
|
|
331
|
+
/** Controlled open state. Pair with `onOpenChange`. */
|
|
332
|
+
open?: boolean;
|
|
333
|
+
/** Fires on every toggle with the next open state. */
|
|
334
|
+
onOpenChange?: (open: boolean) => void;
|
|
335
|
+
style?: CSSProperties;
|
|
336
|
+
};
|
|
337
|
+
/**
|
|
338
|
+
* Bordered surface for a **labeled, self-contained unit** — a file, a service,
|
|
339
|
+
* a config block, or a table with a title. Compose with `CardHeader` + `CardBody`.
|
|
340
|
+
*
|
|
341
|
+
* **When to use Card:**
|
|
342
|
+
* - Displaying a named entity (file path, service name, resource).
|
|
343
|
+
* - Wrapping a `<Table>` or `<DiffView>` that needs a title.
|
|
344
|
+
* - A distinct, bounded section the user might scan by header label.
|
|
345
|
+
*
|
|
346
|
+
* **When NOT to use Card:**
|
|
347
|
+
* - General text sections — use `<H2>` + `<Text>` instead. Not every section
|
|
348
|
+
* needs a border.
|
|
349
|
+
* - Page-level layout — use `<Stack>` with headings. A canvas should not be a
|
|
350
|
+
* wall of stacked cards.
|
|
351
|
+
* - Nesting — do not put cards inside cards. Use `<Divider>` within a card body.
|
|
352
|
+
*
|
|
353
|
+
* Pass **plain text** as `CardHeader` children — the header provides its own
|
|
354
|
+
* 12px font. Do **not** put `<H1>` or `<H2>` inside a card header.
|
|
355
|
+
*
|
|
356
|
+
* Set `collapsible` to make the header a toggle that shows/hides `CardBody`.
|
|
357
|
+
*
|
|
358
|
+
* @example
|
|
359
|
+
* ```tsx
|
|
360
|
+
* // Card wraps a titled diff
|
|
361
|
+
* <Card>
|
|
362
|
+
* <CardHeader trailing={<DiffStats additions={5} deletions={2} />}>
|
|
363
|
+
* src/utils.ts
|
|
364
|
+
* </CardHeader>
|
|
365
|
+
* <CardBody style={{ padding: 0 }}>
|
|
366
|
+
* <DiffView path="src/utils.ts" lines={lines} />
|
|
367
|
+
* </CardBody>
|
|
368
|
+
* </Card>
|
|
369
|
+
*
|
|
370
|
+
* // Collapsible card
|
|
371
|
+
* <Card collapsible defaultOpen={false}>
|
|
372
|
+
* <CardHeader>deploy-service.ts</CardHeader>
|
|
373
|
+
* <CardBody>Service handles rolling deployments across regions.</CardBody>
|
|
374
|
+
* </Card>
|
|
375
|
+
*
|
|
376
|
+
* // Bad — card wrapping plain text that should just be a heading
|
|
377
|
+
* // Use <H2>Overview</H2><Text>…</Text> instead.
|
|
378
|
+
* ```
|
|
379
|
+
*/
|
|
380
|
+
export declare function Card({ children, variant, size, stickyHeader, collapsible, defaultOpen, open: openProp, onOpenChange, style }: CardProps): JSX.Element;
|
|
381
|
+
export type CardHeaderProps = {
|
|
382
|
+
/** Plain text title. Do **not** pass headings, buttons, pills, or layout rows. */
|
|
383
|
+
children?: ReactNode;
|
|
384
|
+
/** Small trailing content aligned to the right edge — a status label, a
|
|
385
|
+
* single pill, or a short metadata string. Keep it compact. */
|
|
386
|
+
trailing?: ReactNode;
|
|
387
|
+
style?: CSSProperties;
|
|
388
|
+
};
|
|
389
|
+
/**
|
|
390
|
+
* 28px header row (32px at `size="lg"`). A compact label for the card.
|
|
391
|
+
*
|
|
392
|
+
* **`children`** — plain text only. This is a 12px label, not a toolbar.
|
|
393
|
+
* Do **not** pass `<H1>`, `<H2>`, `<Text weight="bold">`, `<Pill>`,
|
|
394
|
+
* `<Button>`, `<Row>`, or any interactive/layout elements as children.
|
|
395
|
+
*
|
|
396
|
+
* **`trailing`** — optional right-aligned slot for small status indicators
|
|
397
|
+
* (a short label, a single `<Pill>`, a metadata string like a timestamp).
|
|
398
|
+
*
|
|
399
|
+
* @example
|
|
400
|
+
* ```tsx
|
|
401
|
+
* // Good — plain title
|
|
402
|
+
* <CardHeader>config.yaml</CardHeader>
|
|
403
|
+
*
|
|
404
|
+
* // Good — title with trailing status
|
|
405
|
+
* <CardHeader trailing={<Pill active>Healthy</Pill>}>
|
|
406
|
+
* billing-service
|
|
407
|
+
* </CardHeader>
|
|
408
|
+
*
|
|
409
|
+
* // Bad — heading in header (use CardHeader text, not H2)
|
|
410
|
+
* // Bad — buttons in header (no room, wrong context)
|
|
411
|
+
* // Bad — multiple pills in header (use trailing for one, or move to CardBody)
|
|
412
|
+
* ```
|
|
413
|
+
*/
|
|
414
|
+
export declare function CardHeader({ children, trailing, style }: CardHeaderProps): JSX.Element;
|
|
415
|
+
export type CardBodyProps = {
|
|
416
|
+
children?: ReactNode;
|
|
417
|
+
style?: CSSProperties;
|
|
418
|
+
};
|
|
419
|
+
/**
|
|
420
|
+
* Padded content area inside a Card.
|
|
421
|
+
* Override `style` to adjust padding for custom layouts.
|
|
422
|
+
*
|
|
423
|
+
* @example
|
|
424
|
+
* ```tsx
|
|
425
|
+
* <Card>
|
|
426
|
+
* <CardHeader>Overview</CardHeader>
|
|
427
|
+
* <CardBody>This service is currently healthy.</CardBody>
|
|
428
|
+
* </Card>
|
|
429
|
+
* ```
|
|
430
|
+
*/
|
|
431
|
+
export declare function CardBody({ children, style }: CardBodyProps): JSX.Element | null;
|
|
432
|
+
export type ButtonProps = {
|
|
433
|
+
children?: ReactNode;
|
|
434
|
+
variant?: "primary" | "secondary" | "ghost";
|
|
435
|
+
disabled?: boolean;
|
|
436
|
+
type?: "button" | "submit" | "reset";
|
|
437
|
+
style?: CSSProperties;
|
|
438
|
+
onClick?: () => void;
|
|
439
|
+
};
|
|
440
|
+
/**
|
|
441
|
+
* Action button (24px height, sized to its label). **Never stretch to full
|
|
442
|
+
* width** — buttons are always inline and hug their text.
|
|
443
|
+
*
|
|
444
|
+
* @example
|
|
445
|
+
* ```tsx
|
|
446
|
+
* <Row gap={8}>
|
|
447
|
+
* <Button variant="primary" onClick={handleSave}>Save</Button>
|
|
448
|
+
* <Button variant="secondary">Export</Button>
|
|
449
|
+
* <Button variant="ghost">Cancel</Button>
|
|
450
|
+
* </Row>
|
|
451
|
+
* ```
|
|
452
|
+
*/
|
|
453
|
+
export declare function Button({ children, variant, disabled, type, style, onClick }: ButtonProps): JSX.Element;
|
|
454
|
+
export type PillTone = "neutral" | "added" | "deleted" | "renamed" | "success" | "warning" | "info";
|
|
455
|
+
export type PillSize = "sm" | "md";
|
|
456
|
+
export type PillProps = {
|
|
457
|
+
children?: ReactNode;
|
|
458
|
+
/** Whether the pill is in its selected/active state (filled background). */
|
|
459
|
+
active?: boolean;
|
|
460
|
+
/**
|
|
461
|
+
* Semantic tone. Recolors the border and text. When `active` is also
|
|
462
|
+
* set, fills the background with the tone color at low opacity.
|
|
463
|
+
* Defaults to `neutral` (current stroke/text tokens).
|
|
464
|
+
*/
|
|
465
|
+
tone?: PillTone;
|
|
466
|
+
/**
|
|
467
|
+
* Visual size. `"md"` (default) is the standard pill. `"sm"` is a
|
|
468
|
+
* compact variant with smaller text, tighter padding, and no border —
|
|
469
|
+
* designed for tight spaces like `CardHeader` trailing slots.
|
|
470
|
+
*/
|
|
471
|
+
size?: PillSize;
|
|
472
|
+
/** Shown before the label (icon, emoji, etc.). */
|
|
473
|
+
leadingContent?: ReactNode;
|
|
474
|
+
/** e.g. shortcut hint — matches ui `Pill` ghost keyboard hint (muted primary). */
|
|
475
|
+
keyboardHint?: string;
|
|
476
|
+
disabled?: boolean;
|
|
477
|
+
title?: string;
|
|
478
|
+
style?: CSSProperties;
|
|
479
|
+
onClick?: () => void;
|
|
480
|
+
};
|
|
481
|
+
/**
|
|
482
|
+
* Pill-shaped label or toggle button. Use for tab bars, filter groups, or
|
|
483
|
+
* action suggestions. Set `active` for the selected state (filled background).
|
|
484
|
+
*
|
|
485
|
+
* @example
|
|
486
|
+
* ```tsx
|
|
487
|
+
* // Tab-style selector
|
|
488
|
+
* <Row gap={8}>
|
|
489
|
+
* {tabs.map(tab => (
|
|
490
|
+
* <Pill key={tab} active={tab === selected} onClick={() => setSelected(tab)}>
|
|
491
|
+
* {tab}
|
|
492
|
+
* </Pill>
|
|
493
|
+
* ))}
|
|
494
|
+
* </Row>
|
|
495
|
+
*
|
|
496
|
+
* // Action suggestion with shortcut hint
|
|
497
|
+
* <Pill onClick={handlePlan} keyboardHint="⇧Tab">Plan new idea</Pill>
|
|
498
|
+
* ```
|
|
499
|
+
*/
|
|
500
|
+
export declare function Pill({ children, active, tone, size, leadingContent, keyboardHint, disabled, title, style, onClick }: PillProps): JSX.Element;
|
|
501
|
+
export type StatTone = "success" | "danger" | "warning" | "info";
|
|
502
|
+
export type StatProps = {
|
|
503
|
+
/** The primary metric value (number, percentage, short string). */
|
|
504
|
+
value: ReactNode;
|
|
505
|
+
/** Label below the value. */
|
|
506
|
+
label: string;
|
|
507
|
+
/** Semantic color for the value. Omit for default primary text. */
|
|
508
|
+
tone?: StatTone;
|
|
509
|
+
style?: CSSProperties;
|
|
510
|
+
};
|
|
511
|
+
/**
|
|
512
|
+
* Single metric display — a large value with a compact label beneath it.
|
|
513
|
+
* Use inside `<Grid>` for dashboard summary strips.
|
|
514
|
+
*
|
|
515
|
+
* @example
|
|
516
|
+
* ```tsx
|
|
517
|
+
* <Grid columns={3} gap={16}>
|
|
518
|
+
* <Stat value="4" label="Healthy" tone="success" />
|
|
519
|
+
* <Stat value="1" label="Degraded" tone="warning" />
|
|
520
|
+
* <Stat value="99.2%" label="Avg Uptime" />
|
|
521
|
+
* </Grid>
|
|
522
|
+
* ```
|
|
523
|
+
*/
|
|
524
|
+
export declare function Stat({ value, label, tone, style }: StatProps): JSX.Element;
|
|
525
|
+
export type CalloutTone = "info" | "success" | "warning" | "danger" | "neutral";
|
|
526
|
+
export type CalloutProps = {
|
|
527
|
+
/** Body content. Plain strings, `<Text>`, `<Code>`, `<Link>`, or short lists. */
|
|
528
|
+
children?: ReactNode;
|
|
529
|
+
/** Semantic tone. Recolors the border, background tint, and title text. */
|
|
530
|
+
tone?: CalloutTone;
|
|
531
|
+
/** Optional bold title line, shown above the body in the tone color. */
|
|
532
|
+
title?: ReactNode;
|
|
533
|
+
/** Optional leading icon (emoji, inline SVG, or short text glyph). */
|
|
534
|
+
icon?: ReactNode;
|
|
535
|
+
style?: CSSProperties;
|
|
536
|
+
};
|
|
537
|
+
/**
|
|
538
|
+
* Tinted, bordered notice block for warnings, tips, or short status messages
|
|
539
|
+
* inline within a section.
|
|
540
|
+
*
|
|
541
|
+
* @example
|
|
542
|
+
* ```tsx
|
|
543
|
+
* <Callout tone="warning" title="Heads up">
|
|
544
|
+
* Rolling deploy is in progress. Metrics may be noisy for 10 minutes.
|
|
545
|
+
* </Callout>
|
|
546
|
+
* ```
|
|
547
|
+
*/
|
|
548
|
+
export declare function Callout({ children, tone, title, icon, style }: CalloutProps): JSX.Element;
|
|
549
|
+
//# sourceMappingURL=ui-primitives.d.ts.map
|