@muskanmeet/invoicing-design-system 0.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/.cache/replit/env/latest +78 -0
- package/.cache/replit/env/latest.json +1 -0
- package/.cache/replit/modules/nodejs-20.res +1 -0
- package/.cache/replit/modules/python-3.11.res +1 -0
- package/.cache/replit/modules/replit-rtld-loader.res +1 -0
- package/.cache/replit/modules/replit.res +1 -0
- package/.cache/replit/modules.stamp +0 -0
- package/.cache/replit/nix/dotreplitenv.json +1 -0
- package/.cache/replit/toolchain.json +1 -0
- package/.cache/typescript/5.9/package-lock.json +50 -0
- package/.cache/typescript/5.9/package.json +1 -0
- package/.config/nextjs-nodejs/config.json +7 -0
- package/.eslintrc.json +3 -0
- package/.local/.commit_message +31 -0
- package/.local/secondary_skills/LICENSE.txt +21 -0
- package/.local/secondary_skills/ad-creative/.fingerprint +1 -0
- package/.local/secondary_skills/ad-creative/SKILL.md +872 -0
- package/.local/secondary_skills/ai-recruiter/.fingerprint +1 -0
- package/.local/secondary_skills/ai-recruiter/SKILL.md +1087 -0
- package/.local/secondary_skills/ai-sdr/.fingerprint +1 -0
- package/.local/secondary_skills/ai-sdr/SKILL.md +204 -0
- package/.local/secondary_skills/ai-secretary/.fingerprint +1 -0
- package/.local/secondary_skills/ai-secretary/SKILL.md +1132 -0
- package/.local/secondary_skills/branding-generator/.fingerprint +1 -0
- package/.local/secondary_skills/branding-generator/SKILL.md +286 -0
- package/.local/secondary_skills/competitive-analysis/.fingerprint +1 -0
- package/.local/secondary_skills/competitive-analysis/SKILL.md +429 -0
- package/.local/secondary_skills/content-machine/.fingerprint +1 -0
- package/.local/secondary_skills/content-machine/SKILL.md +321 -0
- package/.local/secondary_skills/deep-research/.fingerprint +1 -0
- package/.local/secondary_skills/deep-research/SKILL.md +517 -0
- package/.local/secondary_skills/design-thinker/.fingerprint +1 -0
- package/.local/secondary_skills/design-thinker/SKILL.md +327 -0
- package/.local/secondary_skills/excel-generator/.fingerprint +1 -0
- package/.local/secondary_skills/excel-generator/SKILL.md +954 -0
- package/.local/secondary_skills/excel-generator/financial-models.md +289 -0
- package/.local/secondary_skills/file-converter/.fingerprint +1 -0
- package/.local/secondary_skills/file-converter/SKILL.md +823 -0
- package/.local/secondary_skills/flashcard-generator/.fingerprint +1 -0
- package/.local/secondary_skills/flashcard-generator/SKILL.md +233 -0
- package/.local/secondary_skills/geo/.fingerprint +1 -0
- package/.local/secondary_skills/geo/SKILL.md +378 -0
- package/.local/secondary_skills/geo/references/content-patterns.md +158 -0
- package/.local/secondary_skills/geo/references/platform-notes.md +128 -0
- package/.local/secondary_skills/geo/references/scorecard.md +113 -0
- package/.local/secondary_skills/geo/references/technical-checklist.md +257 -0
- package/.local/secondary_skills/github-solution-finder/.fingerprint +1 -0
- package/.local/secondary_skills/github-solution-finder/SKILL.md +174 -0
- package/.local/secondary_skills/infographic-builder/.fingerprint +1 -0
- package/.local/secondary_skills/infographic-builder/SKILL.md +317 -0
- package/.local/secondary_skills/infographic-builder/antv-syntax.md +470 -0
- package/.local/secondary_skills/infographic-builder/react-fallback.md +210 -0
- package/.local/secondary_skills/insurance-optimizer/.fingerprint +1 -0
- package/.local/secondary_skills/insurance-optimizer/SKILL.md +209 -0
- package/.local/secondary_skills/interview-prep/.fingerprint +1 -0
- package/.local/secondary_skills/interview-prep/SKILL.md +349 -0
- package/.local/secondary_skills/invoice-generator/.fingerprint +1 -0
- package/.local/secondary_skills/invoice-generator/SKILL.md +527 -0
- package/.local/secondary_skills/legal-contract/.fingerprint +1 -0
- package/.local/secondary_skills/legal-contract/SKILL.md +977 -0
- package/.local/secondary_skills/meal-planner/.fingerprint +1 -0
- package/.local/secondary_skills/meal-planner/SKILL.md +517 -0
- package/.local/secondary_skills/personal-shopper/.fingerprint +1 -0
- package/.local/secondary_skills/personal-shopper/SKILL.md +361 -0
- package/.local/secondary_skills/photo-editor/.fingerprint +1 -0
- package/.local/secondary_skills/photo-editor/SKILL.md +605 -0
- package/.local/secondary_skills/podcast-generator/.fingerprint +1 -0
- package/.local/secondary_skills/podcast-generator/SKILL.md +560 -0
- package/.local/secondary_skills/podcast-marketing/.fingerprint +1 -0
- package/.local/secondary_skills/podcast-marketing/SKILL.md +550 -0
- package/.local/secondary_skills/podcast-marketing/audio-processing.md +530 -0
- package/.local/secondary_skills/podcast-marketing/content-atoms.md +253 -0
- package/.local/secondary_skills/podcast-marketing/content-calendar.md +318 -0
- package/.local/secondary_skills/podcast-marketing/content-templates.md +325 -0
- package/.local/secondary_skills/podcast-marketing/quote-cards.md +238 -0
- package/.local/secondary_skills/podcast-marketing/rss-and-batch.md +359 -0
- package/.local/secondary_skills/podcast-marketing/video-clips.md +660 -0
- package/.local/secondary_skills/podcast-marketing/youtube-processing.md +328 -0
- package/.local/secondary_skills/product-manager/.fingerprint +1 -0
- package/.local/secondary_skills/product-manager/SKILL.md +272 -0
- package/.local/secondary_skills/programmatic-seo/.fingerprint +1 -0
- package/.local/secondary_skills/programmatic-seo/SKILL.md +1207 -0
- package/.local/secondary_skills/real-estate-analyzer/.fingerprint +1 -0
- package/.local/secondary_skills/real-estate-analyzer/SKILL.md +786 -0
- package/.local/secondary_skills/recipe-creator/.fingerprint +1 -0
- package/.local/secondary_skills/recipe-creator/SKILL.md +259 -0
- package/.local/secondary_skills/recreate-screenshot/.fingerprint +1 -0
- package/.local/secondary_skills/recreate-screenshot/SKILL.md +215 -0
- package/.local/secondary_skills/replit-migration-guardrails/.fingerprint +1 -0
- package/.local/secondary_skills/replit-migration-guardrails/SKILL.md +55 -0
- package/.local/secondary_skills/replit-migration-guardrails/references/base44.md +47 -0
- package/.local/secondary_skills/replit-migration-guardrails/references/vercel.md +78 -0
- package/.local/secondary_skills/resume-maker/.fingerprint +1 -0
- package/.local/secondary_skills/resume-maker/SKILL.md +790 -0
- package/.local/secondary_skills/seo-auditor/.fingerprint +1 -0
- package/.local/secondary_skills/seo-auditor/SKILL.md +448 -0
- package/.local/secondary_skills/skill-creator/.fingerprint +1 -0
- package/.local/secondary_skills/skill-creator/SKILL.md +214 -0
- package/.local/secondary_skills/skill-finder/.fingerprint +1 -0
- package/.local/secondary_skills/skill-finder/SKILL.md +299 -0
- package/.local/secondary_skills/stock-analyzer/.fingerprint +1 -0
- package/.local/secondary_skills/stock-analyzer/SKILL.md +798 -0
- package/.local/secondary_skills/storyboard/.fingerprint +1 -0
- package/.local/secondary_skills/storyboard/SKILL.md +558 -0
- package/.local/secondary_skills/supplier-research/.fingerprint +1 -0
- package/.local/secondary_skills/supplier-research/SKILL.md +213 -0
- package/.local/secondary_skills/tax-reviewer/.fingerprint +1 -0
- package/.local/secondary_skills/tax-reviewer/SKILL.md +131 -0
- package/.local/secondary_skills/travel-assistant/.fingerprint +1 -0
- package/.local/secondary_skills/travel-assistant/SKILL.md +667 -0
- package/.local/secondary_skills/video-editing/.fingerprint +1 -0
- package/.local/secondary_skills/video-editing/SKILL.md +705 -0
- package/.local/secondary_skills/video-editing/dead-space-and-chunking.md +1081 -0
- package/.local/secondary_skills/video-editing/operations.md +1719 -0
- package/.local/secondary_skills/video-editing/virality-scoring.md +1212 -0
- package/.local/secondary_skills/video-editing/voiceover.md +788 -0
- package/.local/secondary_skills/website-cloning/.fingerprint +1 -0
- package/.local/secondary_skills/website-cloning/SKILL.md +544 -0
- package/.local/secondary_skills/website-cloning/extraction.md +1207 -0
- package/.local/secondary_skills/website-cloning/pitfalls.md +297 -0
- package/.local/skills/LICENSE.txt +21 -0
- package/.local/skills/agent-inbox/.fingerprint +1 -0
- package/.local/skills/agent-inbox/SKILL.md +128 -0
- package/.local/skills/artifacts/.fingerprint +1 -0
- package/.local/skills/artifacts/SKILL.md +21 -0
- package/.local/skills/artifacts/artifacts/automation/artifact.yaml +40 -0
- package/.local/skills/artifacts/artifacts/automation/files/package.json.template +47 -0
- package/.local/skills/artifacts/artifacts/automation/files/scripts/build.sh +6 -0
- package/.local/skills/artifacts/artifacts/automation/files/scripts/inngest.sh +18 -0
- package/.local/skills/artifacts/artifacts/automation/files/src/global.d.ts +1 -0
- package/.local/skills/artifacts/artifacts/automation/files/src/mastra/agents/agent.ts +89 -0
- package/.local/skills/artifacts/artifacts/automation/files/src/mastra/index.ts +212 -0
- package/.local/skills/artifacts/artifacts/automation/files/src/mastra/inngest/client.ts +17 -0
- package/.local/skills/artifacts/artifacts/automation/files/src/mastra/inngest/index.ts +214 -0
- package/.local/skills/artifacts/artifacts/automation/files/src/mastra/storage/index.ts +8 -0
- package/.local/skills/artifacts/artifacts/automation/files/src/mastra/tools/exampleTool.ts +71 -0
- package/.local/skills/artifacts/artifacts/automation/files/src/mastra/workflows/workflow.ts +203 -0
- package/.local/skills/artifacts/artifacts/automation/files/src/triggers/cronTriggers.ts +61 -0
- package/.local/skills/artifacts/artifacts/automation/files/src/triggers/exampleConnectorTrigger.ts +153 -0
- package/.local/skills/artifacts/artifacts/automation/files/src/triggers/slackTriggers.ts +638 -0
- package/.local/skills/artifacts/artifacts/automation/files/src/triggers/telegramTriggers.ts +94 -0
- package/.local/skills/artifacts/artifacts/automation/files/tests/testCronAutomation.ts +86 -0
- package/.local/skills/artifacts/artifacts/automation/files/tests/testWebhookAutomation.ts +118 -0
- package/.local/skills/artifacts/artifacts/automation/files/tsconfig.json +26 -0
- package/.local/skills/artifacts/artifacts/data-visualization/artifact.yaml +48 -0
- package/.local/skills/artifacts/artifacts/expo/OWNERS +2 -0
- package/.local/skills/artifacts/artifacts/expo/artifact.yaml +47 -0
- package/.local/skills/artifacts/artifacts/expo/files/app/(tabs)/_layout.tsx +86 -0
- package/.local/skills/artifacts/artifacts/expo/files/app/(tabs)/index.tsx +28 -0
- package/.local/skills/artifacts/artifacts/expo/files/app/+not-found.tsx +45 -0
- package/.local/skills/artifacts/artifacts/expo/files/app/_layout.tsx +60 -0
- package/.local/skills/artifacts/artifacts/expo/files/app.json.template +38 -0
- package/.local/skills/artifacts/artifacts/expo/files/assets/images/icon.png +0 -0
- package/.local/skills/artifacts/artifacts/expo/files/babel.config.js +6 -0
- package/.local/skills/artifacts/artifacts/expo/files/components/ErrorBoundary.tsx +54 -0
- package/.local/skills/artifacts/artifacts/expo/files/components/ErrorFallback.tsx +278 -0
- package/.local/skills/artifacts/artifacts/expo/files/components/KeyboardAwareScrollViewCompat.tsx +29 -0
- package/.local/skills/artifacts/artifacts/expo/files/constants/colors.ts +59 -0
- package/.local/skills/artifacts/artifacts/expo/files/hooks/useColors.ts +24 -0
- package/.local/skills/artifacts/artifacts/expo/files/metro.config.js +3 -0
- package/.local/skills/artifacts/artifacts/expo/files/package.json.template +58 -0
- package/.local/skills/artifacts/artifacts/expo/files/scripts/build.js +573 -0
- package/.local/skills/artifacts/artifacts/expo/files/server/serve.js +135 -0
- package/.local/skills/artifacts/artifacts/expo/files/server/templates/landing-page.html +460 -0
- package/.local/skills/artifacts/artifacts/expo/files/tsconfig.json +23 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/artifact.yaml +15 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/files/components.json +21 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/files/index.html +31 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/files/mockupPreviewPlugin.ts +199 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/files/package.json.template +75 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/files/public/favicon.svg +3 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/.generated/mockup-components.ts +3 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/App.tsx +146 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/accordion.tsx +55 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/alert-dialog.tsx +139 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/alert.tsx +59 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/aspect-ratio.tsx +5 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/avatar.tsx +50 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/badge.tsx +43 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/breadcrumb.tsx +115 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/button-group.tsx +83 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/button.tsx +65 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/calendar.tsx +213 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/card.tsx +76 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/carousel.tsx +260 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/chart.tsx +367 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/checkbox.tsx +28 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/collapsible.tsx +11 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/command.tsx +153 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/context-menu.tsx +198 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/dialog.tsx +120 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/drawer.tsx +116 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/dropdown-menu.tsx +201 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/empty.tsx +104 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/field.tsx +244 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/form.tsx +176 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/hover-card.tsx +27 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/input-group.tsx +168 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/input-otp.tsx +69 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/input.tsx +22 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/item.tsx +193 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/kbd.tsx +28 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/label.tsx +26 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/menubar.tsx +254 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/navigation-menu.tsx +128 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/pagination.tsx +117 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/popover.tsx +31 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/progress.tsx +28 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/radio-group.tsx +42 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/resizable.tsx +45 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/scroll-area.tsx +46 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/select.tsx +159 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/separator.tsx +29 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/sheet.tsx +140 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/sidebar.tsx +727 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/skeleton.tsx +15 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/slider.tsx +26 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/sonner.tsx +31 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/spinner.tsx +16 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/switch.tsx +27 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/table.tsx +120 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/tabs.tsx +53 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/textarea.tsx +22 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/toast.tsx +127 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/toaster.tsx +33 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/toggle-group.tsx +61 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/toggle.tsx +43 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/tooltip.tsx +32 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/hooks/use-mobile.tsx +19 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/hooks/use-toast.ts +189 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/index.css +158 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/lib/utils.ts +6 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/main.tsx +5 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/files/tsconfig.json +20 -0
- package/.local/skills/artifacts/artifacts/mockup-sandbox/files/vite.config.ts +72 -0
- package/.local/skills/artifacts/artifacts/react-vite/artifact.yaml +41 -0
- package/.local/skills/artifacts/artifacts/react-vite/files/components.json +20 -0
- package/.local/skills/artifacts/artifacts/react-vite/files/index.html.template +24 -0
- package/.local/skills/artifacts/artifacts/react-vite/files/package.json.template +77 -0
- package/.local/skills/artifacts/artifacts/react-vite/files/public/favicon.svg +3 -0
- package/.local/skills/artifacts/artifacts/react-vite/files/public/robots.txt +2 -0
- package/.local/skills/artifacts/artifacts/react-vite/files/src/App.tsx +42 -0
- package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/accordion.tsx +55 -0
- package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/alert-dialog.tsx +139 -0
- package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/alert.tsx +59 -0
- package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/aspect-ratio.tsx +5 -0
- package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/avatar.tsx +50 -0
- package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/badge.tsx +43 -0
- package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/breadcrumb.tsx +115 -0
- package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/button-group.tsx +83 -0
- package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/button.tsx +65 -0
- package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/calendar.tsx +213 -0
- package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/card.tsx +76 -0
- package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/carousel.tsx +260 -0
- package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/chart.tsx +367 -0
- package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/checkbox.tsx +28 -0
- package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/collapsible.tsx +11 -0
- package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/command.tsx +153 -0
- package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/context-menu.tsx +198 -0
- package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/dialog.tsx +120 -0
- package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/drawer.tsx +116 -0
- package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/dropdown-menu.tsx +201 -0
- package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/empty.tsx +104 -0
- package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/field.tsx +244 -0
- package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/form.tsx +176 -0
- package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/hover-card.tsx +27 -0
- package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/input-group.tsx +168 -0
- package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/input-otp.tsx +69 -0
- package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/input.tsx +22 -0
- package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/item.tsx +193 -0
- package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/kbd.tsx +28 -0
- package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/label.tsx +26 -0
- package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/menubar.tsx +254 -0
- package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/navigation-menu.tsx +128 -0
- package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/pagination.tsx +117 -0
- package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/popover.tsx +31 -0
- package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/progress.tsx +28 -0
- package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/radio-group.tsx +42 -0
- package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/resizable.tsx +45 -0
- package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/scroll-area.tsx +46 -0
- package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/select.tsx +159 -0
- package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/separator.tsx +29 -0
- package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/sheet.tsx +140 -0
- package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/sidebar.tsx +727 -0
- package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/skeleton.tsx +15 -0
- package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/slider.tsx +26 -0
- package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/sonner.tsx +31 -0
- package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/spinner.tsx +16 -0
- package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/switch.tsx +27 -0
- package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/table.tsx +120 -0
- package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/tabs.tsx +53 -0
- package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/textarea.tsx +22 -0
- package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/toast.tsx +127 -0
- package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/toaster.tsx +33 -0
- package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/toggle-group.tsx +61 -0
- package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/toggle.tsx +43 -0
- package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/tooltip.tsx +32 -0
- package/.local/skills/artifacts/artifacts/react-vite/files/src/hooks/use-mobile.tsx +19 -0
- package/.local/skills/artifacts/artifacts/react-vite/files/src/hooks/use-toast.ts +191 -0
- package/.local/skills/artifacts/artifacts/react-vite/files/src/index.css +393 -0
- package/.local/skills/artifacts/artifacts/react-vite/files/src/lib/utils.ts +6 -0
- package/.local/skills/artifacts/artifacts/react-vite/files/src/main.tsx +5 -0
- package/.local/skills/artifacts/artifacts/react-vite/files/src/pages/not-found.tsx +21 -0
- package/.local/skills/artifacts/artifacts/react-vite/files/tsconfig.json +22 -0
- package/.local/skills/artifacts/artifacts/react-vite/files/vite.config.ts +75 -0
- package/.local/skills/artifacts/artifacts/slides/artifact.yaml +33 -0
- package/.local/skills/artifacts/artifacts/slides/files/index.html.template +46 -0
- package/.local/skills/artifacts/artifacts/slides/files/package.json.template +30 -0
- package/.local/skills/artifacts/artifacts/slides/files/public/favicon.svg +3 -0
- package/.local/skills/artifacts/artifacts/slides/files/scripts/validate-slides.ts +193 -0
- package/.local/skills/artifacts/artifacts/slides/files/src/App.tsx +251 -0
- package/.local/skills/artifacts/artifacts/slides/files/src/data/slides-manifest.json +1 -0
- package/.local/skills/artifacts/artifacts/slides/files/src/data/slidesManifestSchema.ts +33 -0
- package/.local/skills/artifacts/artifacts/slides/files/src/index.css +48 -0
- package/.local/skills/artifacts/artifacts/slides/files/src/main.tsx +14 -0
- package/.local/skills/artifacts/artifacts/slides/files/src/slideLoader.ts +51 -0
- package/.local/skills/artifacts/artifacts/slides/files/tsconfig.json +17 -0
- package/.local/skills/artifacts/artifacts/slides/files/vite.config.ts +74 -0
- package/.local/skills/artifacts/artifacts/video-js/artifact.yaml +38 -0
- package/.local/skills/artifacts/artifacts/video-js/files/index.html.template +27 -0
- package/.local/skills/artifacts/artifacts/video-js/files/package.json.template +36 -0
- package/.local/skills/artifacts/artifacts/video-js/files/public/favicon.svg +3 -0
- package/.local/skills/artifacts/artifacts/video-js/files/scripts/validate-recording.sh +38 -0
- package/.local/skills/artifacts/artifacts/video-js/files/src/App.tsx +5 -0
- package/.local/skills/artifacts/artifacts/video-js/files/src/components/video/ReplitLoadingScene.tsx +105 -0
- package/.local/skills/artifacts/artifacts/video-js/files/src/components/video/VideoTemplate.tsx +30 -0
- package/.local/skills/artifacts/artifacts/video-js/files/src/components/video/index.ts +1 -0
- package/.local/skills/artifacts/artifacts/video-js/files/src/hooks/use-mobile.tsx +19 -0
- package/.local/skills/artifacts/artifacts/video-js/files/src/index.css +50 -0
- package/.local/skills/artifacts/artifacts/video-js/files/src/lib/utils.ts +6 -0
- package/.local/skills/artifacts/artifacts/video-js/files/src/lib/video/animations.ts +239 -0
- package/.local/skills/artifacts/artifacts/video-js/files/src/lib/video/hooks.ts +104 -0
- package/.local/skills/artifacts/artifacts/video-js/files/src/lib/video/index.ts +19 -0
- package/.local/skills/artifacts/artifacts/video-js/files/src/main.tsx +5 -0
- package/.local/skills/artifacts/artifacts/video-js/files/tsconfig.json +16 -0
- package/.local/skills/artifacts/artifacts/video-js/files/vite.config.ts +79 -0
- package/.local/skills/artifacts/bootstrap-legacy.js +115 -0
- package/.local/skills/artifacts/bootstrap.js +118 -0
- package/.local/skills/artifacts/references/multi-artifact-creation.md +94 -0
- package/.local/skills/canvas/.fingerprint +1 -0
- package/.local/skills/canvas/SKILL.md +534 -0
- package/.local/skills/canvas/__init__.py +1 -0
- package/.local/skills/code_review/.fingerprint +1 -0
- package/.local/skills/code_review/SKILL.md +82 -0
- package/.local/skills/database/.fingerprint +1 -0
- package/.local/skills/database/SKILL.md +351 -0
- package/.local/skills/database/references/database-migrations-on-publish.md +57 -0
- package/.local/skills/delegation/.fingerprint +1 -0
- package/.local/skills/delegation/SKILL.md +200 -0
- package/.local/skills/deployment/.fingerprint +1 -0
- package/.local/skills/deployment/SKILL.md +261 -0
- package/.local/skills/deployment/references/deployment-failure-debugging.md +243 -0
- package/.local/skills/deployment/references/deployment-logs.md +147 -0
- package/.local/skills/design/.fingerprint +1 -0
- package/.local/skills/design/SKILL.md +235 -0
- package/.local/skills/design-exploration/.fingerprint +1 -0
- package/.local/skills/design-exploration/SKILL.md +95 -0
- package/.local/skills/diagnostics/.fingerprint +1 -0
- package/.local/skills/diagnostics/SKILL.md +122 -0
- package/.local/skills/environment-secrets/.fingerprint +1 -0
- package/.local/skills/environment-secrets/SKILL.md +201 -0
- package/.local/skills/expo/.fingerprint +1 -0
- package/.local/skills/expo/OWNERS +2 -0
- package/.local/skills/expo/SKILL.md +298 -0
- package/.local/skills/expo/references/design_and_aesthetics.md +141 -0
- package/.local/skills/expo/references/device_features_and_permissions.md +48 -0
- package/.local/skills/expo/references/first_build.md +114 -0
- package/.local/skills/expo/references/react_context.md +54 -0
- package/.local/skills/external_apis/.fingerprint +1 -0
- package/.local/skills/external_apis/SKILL.md +25 -0
- package/.local/skills/external_apis/references/brave.md +116 -0
- package/.local/skills/external_apis/references/elevenlabs.md +44 -0
- package/.local/skills/external_apis/references/exa.md +34 -0
- package/.local/skills/external_apis/references/firecrawl.md +37 -0
- package/.local/skills/external_apis/references/nano_banana.md +33 -0
- package/.local/skills/follow-up-tasks/.fingerprint +1 -0
- package/.local/skills/follow-up-tasks/SKILL.md +80 -0
- package/.local/skills/image-search/.fingerprint +1 -0
- package/.local/skills/image-search/SKILL.md +150 -0
- package/.local/skills/integrations/.fingerprint +1 -0
- package/.local/skills/integrations/SKILL.md +205 -0
- package/.local/skills/media-generation/.fingerprint +1 -0
- package/.local/skills/media-generation/SKILL.md +170 -0
- package/.local/skills/media-generation/audio_generation.md +138 -0
- package/.local/skills/media-generation/video_generation.md +82 -0
- package/.local/skills/mockup-extract/.fingerprint +1 -0
- package/.local/skills/mockup-extract/SKILL.md +123 -0
- package/.local/skills/mockup-graduate/.fingerprint +1 -0
- package/.local/skills/mockup-graduate/SKILL.md +97 -0
- package/.local/skills/mockup-sandbox/.fingerprint +1 -0
- package/.local/skills/mockup-sandbox/SKILL.md +750 -0
- package/.local/skills/package-management/.fingerprint +1 -0
- package/.local/skills/package-management/SKILL.md +264 -0
- package/.local/skills/post_merge_setup/.fingerprint +1 -0
- package/.local/skills/post_merge_setup/SKILL.md +102 -0
- package/.local/skills/project_tasks/.fingerprint +1 -0
- package/.local/skills/project_tasks/SKILL.md +361 -0
- package/.local/skills/query-integration-data/.fingerprint +1 -0
- package/.local/skills/query-integration-data/SKILL.md +385 -0
- package/.local/skills/react-vite/.fingerprint +1 -0
- package/.local/skills/react-vite/SKILL.md +110 -0
- package/.local/skills/react-vite/references/frontend_general_rules.md +66 -0
- package/.local/skills/react-vite/references/seo.md +158 -0
- package/.local/skills/remove-image-background/.fingerprint +1 -0
- package/.local/skills/remove-image-background/SKILL.md +55 -0
- package/.local/skills/repl_setup/.fingerprint +1 -0
- package/.local/skills/repl_setup/SKILL.md +90 -0
- package/.local/skills/repl_setup/references/angular.md +103 -0
- package/.local/skills/repl_setup/references/react_vite.md +121 -0
- package/.local/skills/repl_setup/references/vue.md +102 -0
- package/.local/skills/replit-docs/.fingerprint +1 -0
- package/.local/skills/replit-docs/SKILL.md +81 -0
- package/.local/skills/revenuecat/.fingerprint +1 -0
- package/.local/skills/revenuecat/SKILL.md +133 -0
- package/.local/skills/revenuecat/references/initial-setup.md +566 -0
- package/.local/skills/revenuecat/references/replit-revenuecat-sdk-docs.md +279 -0
- package/.local/skills/revenuecat/references/subsequent-management.md +63 -0
- package/.local/skills/security_scan/.fingerprint +1 -0
- package/.local/skills/security_scan/SKILL.md +51 -0
- package/.local/skills/skill-authoring/.fingerprint +1 -0
- package/.local/skills/skill-authoring/SKILL.md +99 -0
- package/.local/skills/slides/.fingerprint +1 -0
- package/.local/skills/slides/SKILL.md +523 -0
- package/.local/skills/slides/references/brand_research.md +86 -0
- package/.local/skills/slides/references/export_failures.md +36 -0
- package/.local/skills/slides/references/exporting.md +49 -0
- package/.local/skills/slides/references/importing.md +40 -0
- package/.local/skills/slides/references/visual_qa.md +121 -0
- package/.local/skills/slides/templates/90s-board-deck.md +285 -0
- package/.local/skills/slides/templates/academic-lecture.md +437 -0
- package/.local/skills/slides/templates/adventure-outdoor.md +845 -0
- package/.local/skills/slides/templates/analytics-dashboard.md +407 -0
- package/.local/skills/slides/templates/annual-report-cover.md +592 -0
- package/.local/skills/slides/templates/apple-minimal.md +570 -0
- package/.local/skills/slides/templates/architecture-studio.md +339 -0
- package/.local/skills/slides/templates/arctic-expedition.md +582 -0
- package/.local/skills/slides/templates/arctic-minimal.md +364 -0
- package/.local/skills/slides/templates/art-deco.md +308 -0
- package/.local/skills/slides/templates/artisan-ceramics.md +659 -0
- package/.local/skills/slides/templates/artisan-food.md +709 -0
- package/.local/skills/slides/templates/artisanal-chalkboard.md +623 -0
- package/.local/skills/slides/templates/astronomy-log.md +562 -0
- package/.local/skills/slides/templates/aurora-expedition.md +754 -0
- package/.local/skills/slides/templates/automotive-electric.md +339 -0
- package/.local/skills/slides/templates/bauhaus-avant-garde.md +443 -0
- package/.local/skills/slides/templates/bioluminescent-sea.md +814 -0
- package/.local/skills/slides/templates/biophilic-urban.md +565 -0
- package/.local/skills/slides/templates/blackboard-chalk.md +517 -0
- package/.local/skills/slides/templates/blueprint.md +478 -0
- package/.local/skills/slides/templates/botanical-index.md +822 -0
- package/.local/skills/slides/templates/botanical-wellness.md +611 -0
- package/.local/skills/slides/templates/brand-book-page.md +466 -0
- package/.local/skills/slides/templates/brutalist-concrete.md +362 -0
- package/.local/skills/slides/templates/brutalist-studio.md +325 -0
- package/.local/skills/slides/templates/brutalist-web-punk.md +591 -0
- package/.local/skills/slides/templates/celestial-observatory.md +453 -0
- package/.local/skills/slides/templates/ceramics-artisan.md +740 -0
- package/.local/skills/slides/templates/cinema-verite.md +415 -0
- package/.local/skills/slides/templates/claymorphism.md +737 -0
- package/.local/skills/slides/templates/collage-zine.md +357 -0
- package/.local/skills/slides/templates/copper-sage.md +325 -0
- package/.local/skills/slides/templates/coral-reef.md +508 -0
- package/.local/skills/slides/templates/corporate-grid.md +331 -0
- package/.local/skills/slides/templates/corporate-memphis-flat.md +938 -0
- package/.local/skills/slides/templates/cosmos-explorer.md +998 -0
- package/.local/skills/slides/templates/cpg-coffee.md +850 -0
- package/.local/skills/slides/templates/craft-coffee-roast.md +693 -0
- package/.local/skills/slides/templates/creative-agency.md +244 -0
- package/.local/skills/slides/templates/creative-director.md +875 -0
- package/.local/skills/slides/templates/culinary-brand.md +698 -0
- package/.local/skills/slides/templates/de-stijl-construct.md +320 -0
- package/.local/skills/slides/templates/desert-dunes-photo.md +483 -0
- package/.local/skills/slides/templates/desert-mirror.md +577 -0
- package/.local/skills/slides/templates/desert-modernism.md +439 -0
- package/.local/skills/slides/templates/developer-api-docs.md +654 -0
- package/.local/skills/slides/templates/editorial-magazine.md +694 -0
- package/.local/skills/slides/templates/engineering-blueprint.md +730 -0
- package/.local/skills/slides/templates/executive-mono.md +363 -0
- package/.local/skills/slides/templates/expedition-peak.md +298 -0
- package/.local/skills/slides/templates/fashion-campaign.md +681 -0
- package/.local/skills/slides/templates/fashion-editorial.md +497 -0
- package/.local/skills/slides/templates/figma-geometric.md +420 -0
- package/.local/skills/slides/templates/film-noir.md +857 -0
- package/.local/skills/slides/templates/fitness-athletics.md +663 -0
- package/.local/skills/slides/templates/flat-vector.md +912 -0
- package/.local/skills/slides/templates/fluid-luxe.md +665 -0
- package/.local/skills/slides/templates/furniture-brand.md +505 -0
- package/.local/skills/slides/templates/gallery-modern.md +436 -0
- package/.local/skills/slides/templates/gaming-esports.md +410 -0
- package/.local/skills/slides/templates/geodesic-future.md +368 -0
- package/.local/skills/slides/templates/glass-artisan.md +666 -0
- package/.local/skills/slides/templates/glassmorphism.md +320 -0
- package/.local/skills/slides/templates/greenhouse-botanical.md +662 -0
- package/.local/skills/slides/templates/healthcare-clarity.md +468 -0
- package/.local/skills/slides/templates/holographic-drop.md +663 -0
- package/.local/skills/slides/templates/hospitality-resort.md +608 -0
- package/.local/skills/slides/templates/hypercar-launch.md +557 -0
- package/.local/skills/slides/templates/infographic-title.md +306 -0
- package/.local/skills/slides/templates/ink-wash.md +244 -0
- package/.local/skills/slides/templates/investor-memo.md +509 -0
- package/.local/skills/slides/templates/isometric-data.md +703 -0
- package/.local/skills/slides/templates/ivory-boardroom.md +439 -0
- package/.local/skills/slides/templates/japanese-minimal.md +308 -0
- package/.local/skills/slides/templates/jazz-blue-note.md +478 -0
- package/.local/skills/slides/templates/kinetic-type.md +206 -0
- package/.local/skills/slides/templates/lagoon-luxury.md +320 -0
- package/.local/skills/slides/templates/lavender-pastoral.md +577 -0
- package/.local/skills/slides/templates/linear-precise.md +460 -0
- package/.local/skills/slides/templates/lineart-sketch.md +930 -0
- package/.local/skills/slides/templates/lost-temple.md +689 -0
- package/.local/skills/slides/templates/luxury-fashion.md +269 -0
- package/.local/skills/slides/templates/luxury-watch.md +678 -0
- package/.local/skills/slides/templates/marble-elegance.md +673 -0
- package/.local/skills/slides/templates/mediterranean-travel.md +811 -0
- package/.local/skills/slides/templates/memphis-design.md +426 -0
- package/.local/skills/slides/templates/midnight-jazz.md +260 -0
- package/.local/skills/slides/templates/minimalist-poster.md +538 -0
- package/.local/skills/slides/templates/molten-craft.md +743 -0
- package/.local/skills/slides/templates/moroccan-tile.md +738 -0
- package/.local/skills/slides/templates/motorsport.md +782 -0
- package/.local/skills/slides/templates/mountain-drift.md +311 -0
- package/.local/skills/slides/templates/music-label.md +641 -0
- package/.local/skills/slides/templates/neo-tokyo.md +637 -0
- package/.local/skills/slides/templates/neobrutalism.md +334 -0
- package/.local/skills/slides/templates/newspaper-broadsheet.md +687 -0
- package/.local/skills/slides/templates/noir-fragrance.md +672 -0
- package/.local/skills/slides/templates/non-profit-impact.md +320 -0
- package/.local/skills/slides/templates/ocean-breeze.md +398 -0
- package/.local/skills/slides/templates/origami-couture.md +636 -0
- package/.local/skills/slides/templates/origami-paper.md +308 -0
- package/.local/skills/slides/templates/pastel-playground.md +1114 -0
- package/.local/skills/slides/templates/perfume-noir.md +646 -0
- package/.local/skills/slides/templates/prairie-storm.md +625 -0
- package/.local/skills/slides/templates/private-equity-dark.md +506 -0
- package/.local/skills/slides/templates/renaissance-florals.md +225 -0
- package/.local/skills/slides/templates/retro-print.md +880 -0
- package/.local/skills/slides/templates/retro-vinyl-sleeve.md +229 -0
- package/.local/skills/slides/templates/riso-zine.md +1094 -0
- package/.local/skills/slides/templates/risograph.md +1151 -0
- package/.local/skills/slides/templates/saas-product-launch.md +972 -0
- package/.local/skills/slides/templates/scandinavian.md +372 -0
- package/.local/skills/slides/templates/skater-culture.md +583 -0
- package/.local/skills/slides/templates/slate-modern.md +469 -0
- package/.local/skills/slides/templates/sneaker-drop.md +1006 -0
- package/.local/skills/slides/templates/social-campaign.md +321 -0
- package/.local/skills/slides/templates/stained-glass.md +574 -0
- package/.local/skills/slides/templates/strategy-one-pager.md +508 -0
- package/.local/skills/slides/templates/street-drop.md +677 -0
- package/.local/skills/slides/templates/street-mural.md +588 -0
- package/.local/skills/slides/templates/studio-noir.md +466 -0
- package/.local/skills/slides/templates/sustainability-esg.md +686 -0
- package/.local/skills/slides/templates/swiss-archive.md +648 -0
- package/.local/skills/slides/templates/swiss-typographic.md +364 -0
- package/.local/skills/slides/templates/tea-ceremony.md +456 -0
- package/.local/skills/slides/templates/tech-earbuds.md +870 -0
- package/.local/skills/slides/templates/terracotta-studio.md +235 -0
- package/.local/skills/slides/templates/thesis-defense.md +390 -0
- package/.local/skills/slides/templates/travel-aerial.md +648 -0
- package/.local/skills/slides/templates/treasury-policy.md +475 -0
- package/.local/skills/slides/templates/tropical-lush.md +332 -0
- package/.local/skills/slides/templates/underwater-dream.md +627 -0
- package/.local/skills/slides/templates/urban-golden.md +342 -0
- package/.local/skills/slides/templates/vintage-apothecary.md +552 -0
- package/.local/skills/slides/templates/vintage-ticket-stub.md +637 -0
- package/.local/skills/slides/templates/vinyl-crate.md +550 -0
- package/.local/skills/slides/templates/vision-editorial.md +612 -0
- package/.local/skills/slides/templates/volcanic-edge.md +347 -0
- package/.local/skills/slides/templates/watercolor-city.md +827 -0
- package/.local/skills/slides/templates/wine-spirits.md +203 -0
- package/.local/skills/slides/templates/wireframe-prototype.md +718 -0
- package/.local/skills/slides/templates/workspace-design.md +782 -0
- package/.local/skills/slides/templates/workspace-modern.md +406 -0
- package/.local/skills/slides/templates/zen-meditation.md +284 -0
- package/.local/skills/slides/templates/zen-void.md +244 -0
- package/.local/skills/stripe/.fingerprint +1 -0
- package/.local/skills/stripe/SKILL.md +455 -0
- package/.local/skills/stripe/references/code-templates.md +588 -0
- package/.local/skills/threat_modeling/.fingerprint +1 -0
- package/.local/skills/threat_modeling/SKILL.md +240 -0
- package/.local/skills/validation/.fingerprint +1 -0
- package/.local/skills/validation/SKILL.md +237 -0
- package/.local/skills/video-js/.fingerprint +1 -0
- package/.local/skills/video-js/SKILL.md +793 -0
- package/.local/skills/video-js/references/audio.md +237 -0
- package/.local/skills/video-js/references/finalize_playback.md +16 -0
- package/.local/skills/video-js/references/first_build.md +87 -0
- package/.local/skills/video-js/references/scene_selectors.md +428 -0
- package/.local/skills/web-search/.fingerprint +1 -0
- package/.local/skills/web-search/SKILL.md +110 -0
- package/.local/skills/whop/.fingerprint +1 -0
- package/.local/skills/whop/SKILL.md +104 -0
- package/.local/skills/whop/references/code-templates.md +66 -0
- package/.local/skills/whop/references/whop-api.mjs +22 -0
- package/.local/skills/whop/references/whop-mcp.mjs +40 -0
- package/.local/skills/whop/references/whopClient.ts +54 -0
- package/.local/skills/workflows/.fingerprint +1 -0
- package/.local/skills/workflows/SKILL.md +245 -0
- package/.local/state/replit/agent/.agent_state_037313043e76b5c652f276153ea014a68570e145.bin +0 -0
- package/.local/state/replit/agent/.agent_state_0f5361c2a53ab324b2a941a797f6494891be084c.bin +0 -0
- package/.local/state/replit/agent/.agent_state_4272443827dc90eac8c5b1963a34ee86da70bb99.bin +0 -0
- package/.local/state/replit/agent/.agent_state_4f14655950cbd611b228b4f0e1f664b66a56af24.bin +0 -0
- package/.local/state/replit/agent/.agent_state_ce28955a30856aa3d095b3568c322c8ec098993f.bin +0 -0
- package/.local/state/replit/agent/.agent_state_ec5347d04ebfbf6cf850fe04e15590d423e96d1d.bin +0 -0
- package/.local/state/replit/agent/.agent_state_f68f8c104d815ccc387290f0fba2c87c818d29f1.bin +0 -0
- package/.local/state/replit/agent/.agent_state_f87c1803a179510408c57c7a380c26f5c2197a30.bin +0 -0
- package/.local/state/replit/agent/.agent_state_main.bin +0 -0
- package/.local/state/replit/agent/.latest.json +1 -0
- package/.local/state/replit/agent/repl_state.bin +0 -0
- package/.local/state/scribe/scribe.db +0 -0
- package/.local/state/scribe/scribe.db-shm +0 -0
- package/.local/state/scribe/scribe.db-wal +0 -0
- package/.local/state/workflow-logs/2tfQP52ibxJTy4lpZ7_JX/start_application.shell.exec.0 +27 -0
- package/.local/state/workflow-logs/6QjtmQThaHrR_QHf4v8HA/validation.external.managed.0 +31 -0
- package/.local/state/workflow-logs/6QjtmQThaHrR_QHf4v8HA/validation.json +1 -0
- package/.local/state/workflow-logs/85n-z_SHy4JSGaUeJIcxy/start_application.shell.exec.0 +18 -0
- package/.local/state/workflow-logs/GIL2Ql5124lrEqGrfRO4k/start_application.shell.exec.0 +222 -0
- package/.local/state/workflow-logs/LiH2MjG_9FwFummNHhDtO/validation.external.managed.0 +45 -0
- package/.local/state/workflow-logs/LiH2MjG_9FwFummNHhDtO/validation.json +1 -0
- package/.local/state/workflow-logs/OKp1t-fEO5U_zQi1SKOQ-/start_application.shell.exec.0 +10 -0
- package/.local/state/workflow-logs/Tpp7d6Hu6CO1NKGo_eAi7/validation.external.managed.0 +43 -0
- package/.local/state/workflow-logs/Tpp7d6Hu6CO1NKGo_eAi7/validation.json +1 -0
- package/.local/state/workflow-logs/UDYycRqPV-N4B7whZP-yX/start_application.shell.exec.0 +252 -0
- package/.local/state/workflow-logs/V8Anmvz-HuvAztflZ8yCo/start_application.shell.exec.0 +87 -0
- package/.local/state/workflow-logs/a5fMnjr9tCwoaFY93pYuN/start_application.shell.exec.0 +2519 -0
- package/.local/state/workflow-logs/ggFzYcdHfIlW0owP2pb0U/start_application.shell.exec.0 +28 -0
- package/.local/state/workflow-logs/hIHNKfUtPX3jZs8qXw_Vt/validation.external.managed.0 +41 -0
- package/.local/state/workflow-logs/hIHNKfUtPX3jZs8qXw_Vt/validation.json +1 -0
- package/.local/state/workflow-logs/nbLvtuGJXB0wPmnruB3BE/start_application.shell.exec.0 +199 -0
- package/.local/state/workflow-logs/uDhN6S0ypUEh0MphXaFGY/start_application.shell.exec.0 +73 -0
- package/.local/state/workflow-logs/xZqU5CdTivcY6KEDEcVmD/start_application.shell.exec.0 +17 -0
- package/.local/tasks/breadcrumb-component.md +89 -0
- package/.local/tasks/calendar-component.md +93 -0
- package/.local/tasks/invoicing-design-system-app.md +39 -0
- package/.local/tasks/task-1.md +42 -0
- package/.local/tasks/task-7.md +92 -0
- package/.local/tasks/task-8.md +96 -0
- package/.replit +34 -0
- package/.upm/store.json +1 -0
- package/README.md +121 -0
- package/app/dashboard/page.tsx +10 -0
- package/app/design-system/page.tsx +802 -0
- package/app/invoices/page.tsx +10 -0
- package/app/layout.tsx +28 -0
- package/app/login/page.tsx +5 -0
- package/app/page.tsx +93 -0
- package/app/signup/page.tsx +5 -0
- package/attached_assets/Colors_1779781016394.png +0 -0
- package/attached_assets/Navy_1779781016404.png +0 -0
- package/attached_assets/Orange_1779781016405.png +0 -0
- package/attached_assets/Screenshot_2026-05-26_at_1.14.29_PM_1779781472515.png +0 -0
- package/attached_assets/Screenshot_2026-05-26_at_11.28.20_AM_1779775171071.png +0 -0
- package/attached_assets/Screenshot_2026-05-26_at_2.04.42_PM_1779784485318.png +0 -0
- package/attached_assets/Typography_1779781016406.png +0 -0
- package/design-system/components/avatar.tsx +46 -0
- package/design-system/components/badge.tsx +34 -0
- package/design-system/components/breadcrumb.tsx +149 -0
- package/design-system/components/button.tsx +57 -0
- package/design-system/components/calendar.tsx +77 -0
- package/design-system/components/card.tsx +62 -0
- package/design-system/components/checkbox.tsx +27 -0
- package/design-system/components/date-picker.tsx +153 -0
- package/design-system/components/dialog.tsx +106 -0
- package/design-system/components/dropdown-menu.tsx +88 -0
- package/design-system/components/form-field.tsx +78 -0
- package/design-system/components/input.tsx +25 -0
- package/design-system/components/label.tsx +25 -0
- package/design-system/components/popover.tsx +30 -0
- package/design-system/components/radio-group.tsx +35 -0
- package/design-system/components/select.tsx +84 -0
- package/design-system/components/separator.tsx +24 -0
- package/design-system/components/switch.tsx +28 -0
- package/design-system/components/table.tsx +80 -0
- package/design-system/components/tabs.tsx +54 -0
- package/design-system/components/textarea.tsx +25 -0
- package/design-system/components/toast.tsx +118 -0
- package/design-system/components/toaster.tsx +38 -0
- package/design-system/components/tooltip.tsx +27 -0
- package/design-system/hooks/index.ts +2 -0
- package/design-system/hooks/use-media-query.ts +27 -0
- package/design-system/hooks/use-toast.ts +91 -0
- package/design-system/index.ts +36 -0
- package/design-system/lib/cn.ts +6 -0
- package/design-system/styles.css +142 -0
- package/design-system/tokens/tokens.css +149 -0
- package/design-system/tokens/tokens.ts +190 -0
- package/next.config.mjs +6 -0
- package/package.json +46 -0
- package/postcss.config.mjs +6 -0
- package/screens/_shared/app-shell.tsx +145 -0
- package/screens/auth/auth-screen.tsx +156 -0
- package/screens/dashboard/dashboard-screen.tsx +207 -0
- package/screens/index.ts +17 -0
- package/screens/invoices/invoices-screen.tsx +317 -0
- package/tailwind.config.ts +110 -0
- package/tsconfig.json +26 -0
|
@@ -0,0 +1,297 @@
|
|
|
1
|
+
# Common Pitfalls & Solutions
|
|
2
|
+
|
|
3
|
+
Documented from real-world cloning projects. Each pitfall was encountered during production use and caused user-visible quality issues.
|
|
4
|
+
|
|
5
|
+
## Pitfall 1: Building from Memory Instead of Source HTML
|
|
6
|
+
|
|
7
|
+
**Problem**: After extracting the page, the builder works from a mental model or screenshot interpretation, leading to wrong section types, missing elements, and fabricated content.
|
|
8
|
+
|
|
9
|
+
**Solution**: Before writing ANY component, open `raw.html`and read the exact HTML for that section. Verify:
|
|
10
|
+
|
|
11
|
+
- Exact heading text (copy-paste, don't retype)
|
|
12
|
+
- Button labels and their HTML classes
|
|
13
|
+
|
|
14
|
+
- Which elements actually exist (don't add badges/labels that aren't there)
|
|
15
|
+
- Layout structure (flex vs grid vs absolute)
|
|
16
|
+
|
|
17
|
+
- Number of child elements
|
|
18
|
+
|
|
19
|
+
## Pitfall 2: Reusing Components for Different Visual Patterns
|
|
20
|
+
|
|
21
|
+
**Problem**: A`ProductCarousel`component with price badges and "personalize" labels gets reused for a category carousel that should only have images and names. The result looks completely wrong.
|
|
22
|
+
|
|
23
|
+
**Solution**: Apply the "one component per visual pattern" rule:
|
|
24
|
+
|
|
25
|
+
- If two sections have different card structures, they need different components
|
|
26
|
+
- Product cards (image + name + price + badge) ≠ Category cards (image + name only)
|
|
27
|
+
|
|
28
|
+
- Even if the layout is similar (horizontal scroll), the card contents dictate the component
|
|
29
|
+
- When in doubt, create a new component — it's cheaper than debugging a wrong reuse
|
|
30
|
+
|
|
31
|
+
## Pitfall 3: Wrong Button Styles
|
|
32
|
+
|
|
33
|
+
**Problem**: Using outlined/bordered buttons when the original has solid/filled buttons (or vice versa). Using wrong colors, wrong border-radius, wrong font-size.
|
|
34
|
+
|
|
35
|
+
**Solution**: For every button in raw.html:
|
|
36
|
+
|
|
37
|
+
1. Check the HTML classes — do they include "filled", "primary", "solid", etc.?
|
|
38
|
+
2. Extract computed styles:`background-color`, `border`, `border-radius`, `color`, `font-size`, `padding`
|
|
39
|
+
|
|
40
|
+
3. Especially check: is `background-color`transparent (outlined) or a solid color (filled)?
|
|
41
|
+
4. Match the exact`border-radius`—`4px`≠`999px`(pill shape)
|
|
42
|
+
|
|
43
|
+
## Pitfall 4: Wrong Text Alignment
|
|
44
|
+
|
|
45
|
+
**Problem**: Center-aligning text when the original is left-aligned, or vice versa.
|
|
46
|
+
|
|
47
|
+
**Solution**: Always extract`text-align`from computed styles. Common patterns:
|
|
48
|
+
|
|
49
|
+
- Hero headings: often centered
|
|
50
|
+
- Split-layout text blocks: usually left-aligned
|
|
51
|
+
|
|
52
|
+
- Card titles: varies — check each one
|
|
53
|
+
- Footer columns: usually left-aligned
|
|
54
|
+
|
|
55
|
+
## Pitfall 5: Missing Mobile Navigation
|
|
56
|
+
|
|
57
|
+
**Problem**: Clones skip the hamburger menu, making the site unusable on mobile.
|
|
58
|
+
|
|
59
|
+
**Solution**: At 390px viewport width:
|
|
60
|
+
|
|
61
|
+
1. Look for hamburger/menu buttons
|
|
62
|
+
2. Click the button to open the drawer
|
|
63
|
+
|
|
64
|
+
3. Capture: drawer width, slide direction, background color, link list, close mechanism
|
|
65
|
+
4. Screenshot the open state
|
|
66
|
+
|
|
67
|
+
5. Implement with: slide-in animation, backdrop overlay, body scroll lock, close on backdrop click
|
|
68
|
+
|
|
69
|
+
## Pitfall 6: Placeholder Images
|
|
70
|
+
|
|
71
|
+
**Problem**: Builder can't find the right image, so it reuses a hero image or leaves a broken`<img>`tag.
|
|
72
|
+
|
|
73
|
+
**Solution**:
|
|
74
|
+
|
|
75
|
+
- Download ALL images in Phase 1, before building starts
|
|
76
|
+
- Map each image to its section in`downloaded-assets.json`
|
|
77
|
+
|
|
78
|
+
- If an image download fails, immediately try alternative approaches:
|
|
79
|
+
- Add User-Agent header
|
|
80
|
+
|
|
81
|
+
- Try different CDN size parameters
|
|
82
|
+
- Use `curl`with`-L`flag for redirects
|
|
83
|
+
|
|
84
|
+
- Screenshot the element as a fallback
|
|
85
|
+
- Never use a placeholder or borrowed image from another section
|
|
86
|
+
|
|
87
|
+
## Pitfall 7: Fabricated Content
|
|
88
|
+
|
|
89
|
+
**Problem**: Builder adds text, badges, or decorative elements that don't exist on the original page.
|
|
90
|
+
|
|
91
|
+
**Solution**: The raw HTML is the source of truth. Before adding any element, verify it exists in`raw.html`. Specifically:
|
|
92
|
+
|
|
93
|
+
- Don't add "NEW" badges unless they're in the HTML
|
|
94
|
+
- Don't add star ratings unless they're in the HTML
|
|
95
|
+
|
|
96
|
+
- Don't add prices to category cards that only have names
|
|
97
|
+
- Don't add "Shop Now" buttons that don't exist
|
|
98
|
+
|
|
99
|
+
- Don't add background patterns or gradients that aren't in the original CSS
|
|
100
|
+
|
|
101
|
+
## Pitfall 8: Skipped Sections
|
|
102
|
+
|
|
103
|
+
**Problem**: Builder misses sections because they weren't prominent in the screenshot or seemed redundant.
|
|
104
|
+
|
|
105
|
+
**Solution**: Use the section inventory checklist. Every single section must be built and checked off. Common sections that get skipped:
|
|
106
|
+
|
|
107
|
+
- Announcement bars (thin bar at top of page)
|
|
108
|
+
- Brand logo marquees
|
|
109
|
+
|
|
110
|
+
- "As seen in" sections
|
|
111
|
+
- Newsletter signup sections (often above footer)
|
|
112
|
+
|
|
113
|
+
- Secondary CTAs between major sections
|
|
114
|
+
|
|
115
|
+
## Pitfall 9: Wrong Section Order
|
|
116
|
+
|
|
117
|
+
**Problem**: Sections are arranged in a different order than the original.
|
|
118
|
+
|
|
119
|
+
**Solution**: The section inventory records the exact top-to-bottom order from the DOM. Assemble `App.tsx`in exactly this order. Don't reorder for "better flow" — match the original exactly.
|
|
120
|
+
|
|
121
|
+
## Pitfall 10: Font Loading Issues
|
|
122
|
+
|
|
123
|
+
**Problem**: Fonts flash, don't load, or use the wrong weight/style.
|
|
124
|
+
|
|
125
|
+
**Solution**:
|
|
126
|
+
|
|
127
|
+
- Use`<link rel="preconnect">`for font domains
|
|
128
|
+
- Add`font-display: swap`to all`@font-face`declarations
|
|
129
|
+
|
|
130
|
+
- Load the exact font weights used (don't just load 400 and 700 — check if 500 or 600 is used)
|
|
131
|
+
- For self-hosted fonts, use`@font-face`in`index.css`with local paths to`public/fonts/`
|
|
132
|
+
|
|
133
|
+
## Pitfall 11: Playwright `networkidle`Timeout
|
|
134
|
+
|
|
135
|
+
**Problem**:`page.goto(url, wait_until="networkidle")`hangs forever on sites with persistent WebSocket/analytics connections.
|
|
136
|
+
|
|
137
|
+
**Solution**: Use`wait_until="domcontentloaded"`+`page.wait_for_timeout(5000)`.
|
|
138
|
+
|
|
139
|
+
## Pitfall 12: CDN Image 403 Errors
|
|
140
|
+
|
|
141
|
+
**Problem**: CDN images return 403 when fetched without proper headers.
|
|
142
|
+
|
|
143
|
+
**Solution**: Always download with a real browser User-Agent:
|
|
144
|
+
|
|
145
|
+
```text
|
|
146
|
+
|
|
147
|
+
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36
|
|
148
|
+
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
For Shopify CDN, also try appending `?v=timestamp`.
|
|
152
|
+
|
|
153
|
+
## Pitfall 13: Oversized or Undersized Elements
|
|
154
|
+
|
|
155
|
+
**Problem**: Buttons, images, or containers are dramatically too large or too small because they inherited wrong CSS classes or had unconstrained widths.
|
|
156
|
+
|
|
157
|
+
**Solution**: For every visible element, extract and set:
|
|
158
|
+
|
|
159
|
+
- `width`/`max-width`(especially for buttons — don't let them fill 100%)
|
|
160
|
+
-`height`(especially for images — maintain aspect ratio with`object-fit`)
|
|
161
|
+
|
|
162
|
+
- `font-size`(don't let headings inherit a 72px size from a parent)
|
|
163
|
+
- Use`max-width`on containers (typically 1200-1440px) to prevent full-viewport stretch
|
|
164
|
+
|
|
165
|
+
## Pitfall 14: Unused Template Dependencies
|
|
166
|
+
|
|
167
|
+
**Problem**: Artifact scaffolding includes 40+ shadcn/Radix dependencies that bloat the project.
|
|
168
|
+
|
|
169
|
+
**Solution**: Replace`index.css`entirely with plain CSS (no Tailwind/shadcn). For`package.json`, the only deps a clone needs are: `react`, `react-dom`, `vite`, `@vitejs/plugin-react`, and Replit vite plugins. Remove everything else.
|
|
170
|
+
|
|
171
|
+
## Pitfall 15: Sticky Header Not Working
|
|
172
|
+
|
|
173
|
+
**Problem**: Header doesn't stick or doesn't show scroll-triggered style changes.
|
|
174
|
+
|
|
175
|
+
**Solution**:
|
|
176
|
+
|
|
177
|
+
```tsx
|
|
178
|
+
|
|
179
|
+
const [scrolled, setScrolled] = useState(false);
|
|
180
|
+
|
|
181
|
+
useEffect(() => {
|
|
182
|
+
|
|
183
|
+
const handler = () => setScrolled(window.scrollY > 50);
|
|
184
|
+
|
|
185
|
+
window.addEventListener('scroll', handler, { passive: true });
|
|
186
|
+
|
|
187
|
+
return () => window.removeEventListener('scroll', handler);
|
|
188
|
+
|
|
189
|
+
}, []);
|
|
190
|
+
|
|
191
|
+
```
|
|
192
|
+
|
|
193
|
+
Apply `position: sticky; top: 0; z-index: 50`with CSS transition on`background-color`and`box-shadow`.
|
|
194
|
+
|
|
195
|
+
## Pitfall 16: Text-Based Logo Instead of Real SVG
|
|
196
|
+
|
|
197
|
+
**Problem**: Builder uses an SVG `<text>`element or a styled`<span>`to render the brand name, instead of extracting the real logo SVG paths from the source HTML. The result looks obviously fake.
|
|
198
|
+
|
|
199
|
+
**Solution**: Search`raw.html`for`<svg`elements near logo/brand class names. Most sites embed their logo as inline SVG with`<path>`elements. Extract the complete SVG including`viewBox`, `width`, `height`, and all `<path>` data. Common search patterns:
|
|
200
|
+
|
|
201
|
+
```python
|
|
202
|
+
|
|
203
|
+
# Search near 'logo' class references in raw HTML
|
|
204
|
+
|
|
205
|
+
idx = html.find('logo')
|
|
206
|
+
|
|
207
|
+
# Then look for <svg nearby
|
|
208
|
+
|
|
209
|
+
```
|
|
210
|
+
|
|
211
|
+
## Pitfall 17: Per-Section Verification Loops Are Too Slow
|
|
212
|
+
|
|
213
|
+
**Problem**: Building one section, screenshotting it, comparing, fixing, then moving to the next section creates 10+ screenshot cycles that consume enormous time and context.
|
|
214
|
+
|
|
215
|
+
**Solution**: Build ALL sections from raw HTML in one pass, assemble them in App.tsx, then take ONE full-page screenshot and fix all issues at once. The raw HTML provides enough information to get sections 90% right on the first build. The full-page screenshot catches the remaining 10%.
|
|
216
|
+
|
|
217
|
+
## Pitfall 18: Shopify CDN `_small`Suffix Not Upscaled
|
|
218
|
+
|
|
219
|
+
**Problem**: Shopify product/hero images contain`_small.jpg`or`_small.png`in the filename, producing low-resolution downloads. The CDN upscaler only handles`?width=X` query params but not the filename suffix pattern.
|
|
220
|
+
|
|
221
|
+
**Solution**: Add filename suffix replacement alongside query param upscaling:
|
|
222
|
+
|
|
223
|
+
```python
|
|
224
|
+
|
|
225
|
+
if 'cdn.shopify.com' in url and '_small.' in url:
|
|
226
|
+
|
|
227
|
+
url = url.replace('_small.', '_1200x.')
|
|
228
|
+
|
|
229
|
+
```
|
|
230
|
+
|
|
231
|
+
## Pitfall 19: Keeping Router/Query Boilerplate in Clone
|
|
232
|
+
|
|
233
|
+
**Problem**: The `createArtifact`scaffold includes wouter Router, React Query provider, toast provider, etc. These are dead code for a single-page static clone and add complexity.
|
|
234
|
+
|
|
235
|
+
**Solution**: Replace`App.tsx`with a simple component that renders all sections in order. No router, no query client, no toast provider. A clone is one page rendered statically.
|
|
236
|
+
|
|
237
|
+
## Pitfall 20: Translating or Anglicizing a Non-English Page
|
|
238
|
+
|
|
239
|
+
**Problem**: The target URL is a localized page (e.g.,`/es-do`for Spanish,`/fr` for French), but the clone is built in English. This happens because: (a) the raw HTML may return English text (localization happens via client-side JS), or (b) the builder unconsciously writes English text instead of copying from the source.
|
|
240
|
+
|
|
241
|
+
**Solution**:
|
|
242
|
+
|
|
243
|
+
1. Check the URL for locale indicators (`/es`, `/fr`, `/de`, `/ja`, `/pt`, etc.)
|
|
244
|
+
2. If a locale is present, ALL user-facing text must be in that language — headings, buttons, nav links, footer, CTAs, descriptions
|
|
245
|
+
|
|
246
|
+
3. If the raw HTML shows English despite a locale URL, translate the UI text to match the URL's language
|
|
247
|
+
4. **Brand terms stay in English**: product names, color names, brand program names (e.g., "ALO Wellness Club", "SUNSHINE")
|
|
248
|
+
|
|
249
|
+
5. Do NOT assume the page is English just because `raw.html`contains English — many sites load translations via JavaScript
|
|
250
|
+
|
|
251
|
+
## Pitfall 21: Wrong Announcement Bar Background Color
|
|
252
|
+
|
|
253
|
+
**Problem**: The announcement/promo bar at the top of the page gets a guessed background color (commonly black or white) instead of the actual color. The real color is often a distinctive brand color (e.g., lime yellow-green`#f2f5a2`).
|
|
254
|
+
|
|
255
|
+
**Solution**: During Phase 1, extract the computed `background-color` from the banner element AND its child containers:
|
|
256
|
+
|
|
257
|
+
```python
|
|
258
|
+
|
|
259
|
+
banner = document.querySelector('[class*="banner"], [class*="announcement"]')
|
|
260
|
+
|
|
261
|
+
bannerBg = getComputedStyle(banner.querySelector('div, .col-12') or banner).backgroundColor
|
|
262
|
+
|
|
263
|
+
```
|
|
264
|
+
|
|
265
|
+
The background may be on a child element (e.g., `.col-12`inside the banner), not the banner itself. Always check both.
|
|
266
|
+
|
|
267
|
+
## Pitfall 22: Wrong Logo Position (Centered vs Left-Aligned)
|
|
268
|
+
|
|
269
|
+
**Problem**: The logo is placed in the center of the header when the original has it left-aligned (or vice versa). This is one of the most visually jarring mistakes because the logo's position defines the entire header layout.
|
|
270
|
+
|
|
271
|
+
**Solution**: Take a header-only screenshot (top 150px) during Phase 1 extraction and use it as the definitive reference. The three common header layouts are:
|
|
272
|
+
|
|
273
|
+
- **Logo-left + nav-right**: Logo left-aligned, nav links to the right of logo, icons on far right
|
|
274
|
+
- **Logo-center + nav-split**: Nav links split left/right with logo centered
|
|
275
|
+
|
|
276
|
+
- **Logo-left + nav-center**: Logo left, nav links centered, icons right
|
|
277
|
+
|
|
278
|
+
Extract the logo's bounding rect and compare its`left`position to`headerWidth / 3` to classify.
|
|
279
|
+
|
|
280
|
+
## Pitfall 23: Missing Account/Rewards/Loyalty UI in Header
|
|
281
|
+
|
|
282
|
+
**Problem**: The header is built with just logo + nav + icons, but the original has additional text elements like "SIGN IN TO GET REWARDS", loyalty program links, or account status text. These are easy to miss because they look like minor text, but they're prominent UI elements.
|
|
283
|
+
|
|
284
|
+
**Solution**: During Phase 1, search for loyalty/rewards/account elements in the header:
|
|
285
|
+
|
|
286
|
+
```python
|
|
287
|
+
|
|
288
|
+
rightElements = header.querySelectorAll('[class*="loyalty"], [class*="rewards"], [class*="account"]')
|
|
289
|
+
|
|
290
|
+
```
|
|
291
|
+
|
|
292
|
+
Extract their text and HTML. Include them in the header component alongside the icon bar. Common patterns:
|
|
293
|
+
|
|
294
|
+
- Account icon + "Sign in to get rewards" text
|
|
295
|
+
- Points balance display
|
|
296
|
+
|
|
297
|
+
- "Join Now" or "Login" links next to nav icons
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
Copyright (c) 2026 Replit, Inc. All rights reserved.
|
|
2
|
+
|
|
3
|
+
The contents of this directory are proprietary to Replit, Inc. and are
|
|
4
|
+
licensed for use solely within the Replit platform under the applicable
|
|
5
|
+
Replit user terms. Use of the contents of this directory within the
|
|
6
|
+
Replit platform, including by Replit users for commercial purposes, is
|
|
7
|
+
unlimited and expressly permitted.
|
|
8
|
+
|
|
9
|
+
Outside of the Replit platform, the contents of this directory are
|
|
10
|
+
licensed under the Creative Commons Attribution-NonCommercial 4.0
|
|
11
|
+
International License (CC BY-NC 4.0). You may obtain a copy of that
|
|
12
|
+
license at:
|
|
13
|
+
https://creativecommons.org/licenses/by-nc/4.0/
|
|
14
|
+
|
|
15
|
+
Under CC BY-NC 4.0, you may share and adapt the contents of this
|
|
16
|
+
directory for non-commercial purposes, provided you appropriately credit
|
|
17
|
+
Replit, Inc. and indicate if changes were made. Commercial use of the
|
|
18
|
+
contents of this directory outside of the Replit platform is strictly
|
|
19
|
+
prohibited without a separate license from Replit, Inc.
|
|
20
|
+
|
|
21
|
+
For commercial licensing inquiries, contact: support@replit.com
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
78ae765dc9c5477c61c66c615eb0e960
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: agent-inbox
|
|
3
|
+
description: List and manage user feedback items from the agent inbox. Use when the user asks about feedback, bug reports, feature requests, or inbox items.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Agent Inbox Skill
|
|
7
|
+
|
|
8
|
+
List and manage user feedback items from the agent inbox.
|
|
9
|
+
|
|
10
|
+
## When to Use
|
|
11
|
+
|
|
12
|
+
Use this skill when the user:
|
|
13
|
+
|
|
14
|
+
- Asks about feedback, bug reports, or feature requests
|
|
15
|
+
- Wants to check their agent inbox
|
|
16
|
+
- Asks you to review or manage inbox items
|
|
17
|
+
- Wants to acknowledge, dismiss, or mark feedback as implemented
|
|
18
|
+
|
|
19
|
+
## When NOT to Use
|
|
20
|
+
|
|
21
|
+
- To automatically check the inbox without the user asking
|
|
22
|
+
- To auto-implement feedback (present items to the user instead)
|
|
23
|
+
- For general project task management (use project tasks instead)
|
|
24
|
+
|
|
25
|
+
## Available Functions
|
|
26
|
+
|
|
27
|
+
### listAgentInboxItems(statusFilter, topicFilter)
|
|
28
|
+
|
|
29
|
+
List inbox items with optional filters. Checks if the agent inbox is enabled first.
|
|
30
|
+
|
|
31
|
+
**Parameters:**
|
|
32
|
+
|
|
33
|
+
- `statusFilter` (list[str], optional): Filter by status
|
|
34
|
+
- `topicFilter` (list[str], optional): Filter by topic
|
|
35
|
+
|
|
36
|
+
**Status values:** `"PENDING"`, `"ACKNOWLEDGED"`, `"DISMISSED"`, `"IMPLEMENTED"`, `"DELETED"`
|
|
37
|
+
|
|
38
|
+
**Topic values:** `"BUG_REPORT"`, `"FEATURE_REQUEST"`, `"DESIGN"`, `"CONTENT"`, `"OTHER"`
|
|
39
|
+
|
|
40
|
+
**Returns:** Dict with:
|
|
41
|
+
|
|
42
|
+
- `items`: List of inbox items
|
|
43
|
+
- `totalCount`: Total number of matching items
|
|
44
|
+
|
|
45
|
+
Each item contains:
|
|
46
|
+
|
|
47
|
+
- `id`: Unique item identifier
|
|
48
|
+
- `replId`: The repl this item belongs to
|
|
49
|
+
- `status`: Current status
|
|
50
|
+
- `topic`: Item topic/category
|
|
51
|
+
- `feedbackText`: The feedback content
|
|
52
|
+
- `currentPage`: Page the feedback was submitted from
|
|
53
|
+
- `screenshots`: List of screenshot URLs
|
|
54
|
+
- `timeCreated`: ISO timestamp
|
|
55
|
+
- `timeUpdated`: ISO timestamp
|
|
56
|
+
|
|
57
|
+
**Example:**
|
|
58
|
+
|
|
59
|
+
```javascript
|
|
60
|
+
// List all pending items
|
|
61
|
+
const result = await listAgentInboxItems({ statusFilter: ["PENDING"] });
|
|
62
|
+
for (const item of result.items) {
|
|
63
|
+
console.log(`[${item.topic}] ${item.feedbackText}`);
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
// List bug reports
|
|
67
|
+
const result = await listAgentInboxItems({ topicFilter: ["BUG_REPORT"] });
|
|
68
|
+
for (const item of result.items) {
|
|
69
|
+
console.log(`[${item.topic}] ${item.feedbackText}`);
|
|
70
|
+
}
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
### updateAgentInboxItem(itemId, status)
|
|
74
|
+
|
|
75
|
+
Update the status of an inbox item.
|
|
76
|
+
|
|
77
|
+
**Parameters:**
|
|
78
|
+
|
|
79
|
+
- `itemId` (str, required): The item ID to update
|
|
80
|
+
- `status` (str, required): New status to set
|
|
81
|
+
|
|
82
|
+
**Status values:** `"PENDING"`, `"ACKNOWLEDGED"`, `"DISMISSED"`, `"IMPLEMENTED"`, `"DELETED"`
|
|
83
|
+
|
|
84
|
+
**Returns:** Dict with the updated item fields (same shape as items in list response).
|
|
85
|
+
|
|
86
|
+
**Example:**
|
|
87
|
+
|
|
88
|
+
```javascript
|
|
89
|
+
// Acknowledge an item after reviewing it
|
|
90
|
+
const result = await updateAgentInboxItem({ itemId: "abc123", status: "ACKNOWLEDGED" });
|
|
91
|
+
console.log(`Updated: ${result.id} -> ${result.status}`);
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
## Item Topics
|
|
95
|
+
|
|
96
|
+
- `BUG_REPORT`: Bug reports from users
|
|
97
|
+
- `FEATURE_REQUEST`: Feature requests
|
|
98
|
+
- `DESIGN`: Design feedback
|
|
99
|
+
- `CONTENT`: Content-related feedback
|
|
100
|
+
- `OTHER`: Other feedback
|
|
101
|
+
|
|
102
|
+
## Item Statuses
|
|
103
|
+
|
|
104
|
+
- `PENDING`: New, unprocessed item
|
|
105
|
+
- `ACKNOWLEDGED`: Item has been seen and noted
|
|
106
|
+
- `DISMISSED`: Item was dismissed
|
|
107
|
+
- `IMPLEMENTED`: Feedback has been implemented
|
|
108
|
+
- `DELETED`: Item was deleted
|
|
109
|
+
|
|
110
|
+
## Example Workflow
|
|
111
|
+
|
|
112
|
+
```javascript
|
|
113
|
+
// 1. List pending inbox items
|
|
114
|
+
const result = await listAgentInboxItems({ statusFilter: ["PENDING"] });
|
|
115
|
+
console.log(`Found ${result.totalCount} pending items`);
|
|
116
|
+
|
|
117
|
+
// 2. Review each item and acknowledge
|
|
118
|
+
for (const item of result.items) {
|
|
119
|
+
console.log(`[${item.topic}] ${item.feedbackText}`);
|
|
120
|
+
await updateAgentInboxItem({ itemId: item.id, status: "ACKNOWLEDGED" });
|
|
121
|
+
}
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
## Error Handling
|
|
125
|
+
|
|
126
|
+
- **Inbox not enabled**: Raises `RuntimeError` if the agent inbox is not enabled for the repl
|
|
127
|
+
- **Invalid status**: Raises `ValueError` for unrecognized status strings
|
|
128
|
+
- **Invalid topic**: Raises `ValueError` for unrecognized topic strings
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
7795715843a4f90d0629ef0e74dba85f
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: artifacts
|
|
3
|
+
description: "This project only supports mockup sandbox. Call createArtifact() with artifactType 'mockup-sandbox' only."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
# Artifacts
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
**This project only supports mockup sandbox.** Only call `createArtifact()` with `artifactType: "mockup-sandbox"`. Do NOT use any other artifact type.
|
|
12
|
+
|
|
13
|
+
If the user asks to create any other type of artifact (web app, video, slides, mobile), inform them that:
|
|
14
|
+
|
|
15
|
+
- This project does not support artifacts.
|
|
16
|
+
- They can create other artifact types by creating a new project.
|
|
17
|
+
- Link: https://docs.replit.com/replitai/artifacts
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
name: automation
|
|
2
|
+
description: "Mastra automation scaffold"
|
|
3
|
+
priority: 1
|
|
4
|
+
kind: automation
|
|
5
|
+
|
|
6
|
+
access:
|
|
7
|
+
type: all_of
|
|
8
|
+
conditions:
|
|
9
|
+
- type: flag
|
|
10
|
+
name: flag-automation-artifact
|
|
11
|
+
variation: "true"
|
|
12
|
+
- type: stack
|
|
13
|
+
name: PNPM_WORKSPACE
|
|
14
|
+
|
|
15
|
+
service_configs:
|
|
16
|
+
- name: automation
|
|
17
|
+
development:
|
|
18
|
+
run: pnpm --filter @workspace/__SLUG__ run dev
|
|
19
|
+
production:
|
|
20
|
+
build:
|
|
21
|
+
- pnpm
|
|
22
|
+
- --filter
|
|
23
|
+
- '@workspace/__SLUG__'
|
|
24
|
+
- run
|
|
25
|
+
- build
|
|
26
|
+
run:
|
|
27
|
+
- sh
|
|
28
|
+
- -c
|
|
29
|
+
- cd artifacts/__SLUG__/.mastra/output && NODE_ENV=production node index.mjs
|
|
30
|
+
- name: inngest
|
|
31
|
+
development:
|
|
32
|
+
run: bash scripts/inngest.sh
|
|
33
|
+
|
|
34
|
+
initial_open_files:
|
|
35
|
+
- src/mastra/tools/exampleTool.ts
|
|
36
|
+
- src/mastra/agents/agent.ts
|
|
37
|
+
- src/mastra/workflows/workflow.ts
|
|
38
|
+
- src/mastra/index.ts
|
|
39
|
+
- src/mastra/inngest/client.ts
|
|
40
|
+
- src/mastra/inngest/index.ts
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "__REPLIT_ARTIFACT_PACKAGE_NAME__",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"main": "index.js",
|
|
5
|
+
"scripts": {
|
|
6
|
+
"test": "echo \"Error: no test specified\" && exit 1",
|
|
7
|
+
"dev": "mastra dev",
|
|
8
|
+
"build": "mastra build",
|
|
9
|
+
"check": "tsc",
|
|
10
|
+
"check:format": "prettier --check '**/*.ts'",
|
|
11
|
+
"format": "prettier --write '**/*.ts'"
|
|
12
|
+
},
|
|
13
|
+
"keywords": [],
|
|
14
|
+
"type": "module",
|
|
15
|
+
"author": "",
|
|
16
|
+
"license": "ISC",
|
|
17
|
+
"description": "",
|
|
18
|
+
"engines": {
|
|
19
|
+
"node": ">=20.9.0"
|
|
20
|
+
},
|
|
21
|
+
"dependencies": {
|
|
22
|
+
"@ai-sdk/openai": "^3.0.11",
|
|
23
|
+
"@inngest/realtime": "^0.4.5",
|
|
24
|
+
"@mastra/core": "^1.0.4",
|
|
25
|
+
"@mastra/inngest": "^1.0.0",
|
|
26
|
+
"@mastra/libsql": "^1.0.0",
|
|
27
|
+
"@mastra/loggers": "^1.0.0",
|
|
28
|
+
"@mastra/memory": "^1.0.0",
|
|
29
|
+
"@mastra/pg": "^1.0.0",
|
|
30
|
+
"@slack/web-api": "^7.9.3",
|
|
31
|
+
"@types/pg": "^8.15.5",
|
|
32
|
+
"ai": "^5.0.0",
|
|
33
|
+
"dotenv": "^17.2.0",
|
|
34
|
+
"inngest": "^3.47.0",
|
|
35
|
+
"inngest-cli": "^1.14.3",
|
|
36
|
+
"pino": "^9.9.4",
|
|
37
|
+
"tsx": "^4.20.3",
|
|
38
|
+
"zod": "^4.3.6"
|
|
39
|
+
},
|
|
40
|
+
"devDependencies": {
|
|
41
|
+
"@types/node": "^25.0.10",
|
|
42
|
+
"mastra": "^1.0.1",
|
|
43
|
+
"prettier": "^3.6.2",
|
|
44
|
+
"ts-node": "^10.9.1",
|
|
45
|
+
"typescript": "^5.9.3"
|
|
46
|
+
}
|
|
47
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
|
|
3
|
+
set -e
|
|
4
|
+
|
|
5
|
+
INNGEST_CONFIG=".config/inngest/inngest.yaml"
|
|
6
|
+
AUTOMATION_PORT="${AUTOMATION_PORT:-5000}"
|
|
7
|
+
INNGEST_PORT="${PORT:-3000}"
|
|
8
|
+
|
|
9
|
+
# Try to store Inngest data in Postgres if it's available. Otherwise, put it in SQLite.
|
|
10
|
+
if [[ ! -f "${INNGEST_CONFIG}" ]]; then
|
|
11
|
+
mkdir -p "$(dirname "${INNGEST_CONFIG}")"
|
|
12
|
+
if [[ -n "${DATABASE_URL:-}" ]]; then
|
|
13
|
+
printf 'postgres-uri: "%s"' "${DATABASE_URL}" > "${INNGEST_CONFIG}"
|
|
14
|
+
else
|
|
15
|
+
printf 'sqlite-dir: "/home/runner/workspace/.local/share/inngest"' > "${INNGEST_CONFIG}"
|
|
16
|
+
fi
|
|
17
|
+
fi
|
|
18
|
+
exec inngest-cli dev -u "http://localhost:${AUTOMATION_PORT}/api/inngest" --host 127.0.0.1 --port "${INNGEST_PORT}" --config "${INNGEST_CONFIG}"
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
declare module "mastra";
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import { Agent } from "@mastra/core/agent";
|
|
2
|
+
import { Memory } from "@mastra/memory";
|
|
3
|
+
import { sharedPostgresStorage } from "../storage";
|
|
4
|
+
import { exampleTool } from "../tools/exampleTool";
|
|
5
|
+
import { createOpenAI } from "@ai-sdk/openai";
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* LLM CLIENT CONFIGURATION
|
|
9
|
+
*
|
|
10
|
+
* IMPORTANT: Both approaches require the SAME syntax for Replit Playground compatibility:
|
|
11
|
+
* - Use AI SDK v5: model, e.g. openai("gpt-4o-mini")
|
|
12
|
+
* - In workflows: Use agent.generate()
|
|
13
|
+
* - The Replit Playground UI always calls the legacy Mastra endpoint
|
|
14
|
+
* NOTE: You must always keep the API key as an environment variable for safety!
|
|
15
|
+
* ---
|
|
16
|
+
* OPTION 1: Replit AI Integrations, **only** if user has enabled it via connector.
|
|
17
|
+
*
|
|
18
|
+
* No OpenAI API key required - charges billed to Replit credits
|
|
19
|
+
* Automatic key rotation and management
|
|
20
|
+
*/
|
|
21
|
+
const openai = createOpenAI({
|
|
22
|
+
baseURL: process.env.AI_INTEGRATIONS_OPENAI_BASE_URL,
|
|
23
|
+
apiKey: process.env.AI_INTEGRATIONS_OPENAI_API_KEY,
|
|
24
|
+
});
|
|
25
|
+
/*
|
|
26
|
+
* OPTION 2: Standard OpenAI Setup (Your Own API Key)
|
|
27
|
+
*/
|
|
28
|
+
// const openai = createOpenAI({
|
|
29
|
+
// baseURL: process.env.OPENAI_BASE_URL || undefined,
|
|
30
|
+
// apiKey: process.env.OPENAI_API_KEY,
|
|
31
|
+
// });
|
|
32
|
+
|
|
33
|
+
/**
|
|
34
|
+
* Mastra Agent
|
|
35
|
+
*
|
|
36
|
+
* MASTRA AGENT GUIDE:
|
|
37
|
+
* - Agents are AI-powered assistants that can use tools and maintain conversation memory
|
|
38
|
+
* - They combine an LLM model with tools and optional memory storage
|
|
39
|
+
* - Agents can be used in workflows
|
|
40
|
+
*/
|
|
41
|
+
|
|
42
|
+
export const automationAgent = new Agent({
|
|
43
|
+
// Give your agent a descriptive name
|
|
44
|
+
name: "Automation Agent",
|
|
45
|
+
// make the id be camelCase version of the name
|
|
46
|
+
id: "automationAgent",
|
|
47
|
+
|
|
48
|
+
/**
|
|
49
|
+
* Instructions define your agent's behavior and personality
|
|
50
|
+
* Be specific about:
|
|
51
|
+
* - What the agent should do
|
|
52
|
+
* - How it should respond
|
|
53
|
+
* - What tools it should use and when
|
|
54
|
+
* - Any constraints or guidelines
|
|
55
|
+
*/
|
|
56
|
+
instructions: `
|
|
57
|
+
You are a helpful example agent that demonstrates how to use Mastra agents.
|
|
58
|
+
|
|
59
|
+
Your primary function is to process messages using the example tool and explain what you're doing.
|
|
60
|
+
|
|
61
|
+
When responding:
|
|
62
|
+
- Always be helpful and educational
|
|
63
|
+
- Explain what tools you're using and why
|
|
64
|
+
- If asked to process a message, use the exampleTool
|
|
65
|
+
- Share the results in a clear, formatted way
|
|
66
|
+
- Add educational comments about how Mastra works when relevant
|
|
67
|
+
|
|
68
|
+
Remember: You're teaching developers how to use Mastra by example!
|
|
69
|
+
`,
|
|
70
|
+
|
|
71
|
+
/**
|
|
72
|
+
* Choose your LLM model
|
|
73
|
+
*
|
|
74
|
+
* MUST use AI SDK v5 syntax for Replit Playground compatibility.
|
|
75
|
+
* Use openai.responses("gpt-5") for gpt-5 class models, use openai("gpt-4o") for gpt-4 class models.
|
|
76
|
+
*/
|
|
77
|
+
model: openai.responses("gpt-5"),
|
|
78
|
+
|
|
79
|
+
/**
|
|
80
|
+
* Provide tools that the agent can use
|
|
81
|
+
* Tools must be created with createTool()
|
|
82
|
+
* You can provide multiple tools.
|
|
83
|
+
*/
|
|
84
|
+
tools: {
|
|
85
|
+
exampleTool,
|
|
86
|
+
// If users want web search capabilities, use code line below to enable that
|
|
87
|
+
// webSearch: openai.tools.webSearch(),
|
|
88
|
+
},
|
|
89
|
+
});
|