@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.
Files changed (695) hide show
  1. package/.cache/replit/env/latest +78 -0
  2. package/.cache/replit/env/latest.json +1 -0
  3. package/.cache/replit/modules/nodejs-20.res +1 -0
  4. package/.cache/replit/modules/python-3.11.res +1 -0
  5. package/.cache/replit/modules/replit-rtld-loader.res +1 -0
  6. package/.cache/replit/modules/replit.res +1 -0
  7. package/.cache/replit/modules.stamp +0 -0
  8. package/.cache/replit/nix/dotreplitenv.json +1 -0
  9. package/.cache/replit/toolchain.json +1 -0
  10. package/.cache/typescript/5.9/package-lock.json +50 -0
  11. package/.cache/typescript/5.9/package.json +1 -0
  12. package/.config/nextjs-nodejs/config.json +7 -0
  13. package/.eslintrc.json +3 -0
  14. package/.local/.commit_message +31 -0
  15. package/.local/secondary_skills/LICENSE.txt +21 -0
  16. package/.local/secondary_skills/ad-creative/.fingerprint +1 -0
  17. package/.local/secondary_skills/ad-creative/SKILL.md +872 -0
  18. package/.local/secondary_skills/ai-recruiter/.fingerprint +1 -0
  19. package/.local/secondary_skills/ai-recruiter/SKILL.md +1087 -0
  20. package/.local/secondary_skills/ai-sdr/.fingerprint +1 -0
  21. package/.local/secondary_skills/ai-sdr/SKILL.md +204 -0
  22. package/.local/secondary_skills/ai-secretary/.fingerprint +1 -0
  23. package/.local/secondary_skills/ai-secretary/SKILL.md +1132 -0
  24. package/.local/secondary_skills/branding-generator/.fingerprint +1 -0
  25. package/.local/secondary_skills/branding-generator/SKILL.md +286 -0
  26. package/.local/secondary_skills/competitive-analysis/.fingerprint +1 -0
  27. package/.local/secondary_skills/competitive-analysis/SKILL.md +429 -0
  28. package/.local/secondary_skills/content-machine/.fingerprint +1 -0
  29. package/.local/secondary_skills/content-machine/SKILL.md +321 -0
  30. package/.local/secondary_skills/deep-research/.fingerprint +1 -0
  31. package/.local/secondary_skills/deep-research/SKILL.md +517 -0
  32. package/.local/secondary_skills/design-thinker/.fingerprint +1 -0
  33. package/.local/secondary_skills/design-thinker/SKILL.md +327 -0
  34. package/.local/secondary_skills/excel-generator/.fingerprint +1 -0
  35. package/.local/secondary_skills/excel-generator/SKILL.md +954 -0
  36. package/.local/secondary_skills/excel-generator/financial-models.md +289 -0
  37. package/.local/secondary_skills/file-converter/.fingerprint +1 -0
  38. package/.local/secondary_skills/file-converter/SKILL.md +823 -0
  39. package/.local/secondary_skills/flashcard-generator/.fingerprint +1 -0
  40. package/.local/secondary_skills/flashcard-generator/SKILL.md +233 -0
  41. package/.local/secondary_skills/geo/.fingerprint +1 -0
  42. package/.local/secondary_skills/geo/SKILL.md +378 -0
  43. package/.local/secondary_skills/geo/references/content-patterns.md +158 -0
  44. package/.local/secondary_skills/geo/references/platform-notes.md +128 -0
  45. package/.local/secondary_skills/geo/references/scorecard.md +113 -0
  46. package/.local/secondary_skills/geo/references/technical-checklist.md +257 -0
  47. package/.local/secondary_skills/github-solution-finder/.fingerprint +1 -0
  48. package/.local/secondary_skills/github-solution-finder/SKILL.md +174 -0
  49. package/.local/secondary_skills/infographic-builder/.fingerprint +1 -0
  50. package/.local/secondary_skills/infographic-builder/SKILL.md +317 -0
  51. package/.local/secondary_skills/infographic-builder/antv-syntax.md +470 -0
  52. package/.local/secondary_skills/infographic-builder/react-fallback.md +210 -0
  53. package/.local/secondary_skills/insurance-optimizer/.fingerprint +1 -0
  54. package/.local/secondary_skills/insurance-optimizer/SKILL.md +209 -0
  55. package/.local/secondary_skills/interview-prep/.fingerprint +1 -0
  56. package/.local/secondary_skills/interview-prep/SKILL.md +349 -0
  57. package/.local/secondary_skills/invoice-generator/.fingerprint +1 -0
  58. package/.local/secondary_skills/invoice-generator/SKILL.md +527 -0
  59. package/.local/secondary_skills/legal-contract/.fingerprint +1 -0
  60. package/.local/secondary_skills/legal-contract/SKILL.md +977 -0
  61. package/.local/secondary_skills/meal-planner/.fingerprint +1 -0
  62. package/.local/secondary_skills/meal-planner/SKILL.md +517 -0
  63. package/.local/secondary_skills/personal-shopper/.fingerprint +1 -0
  64. package/.local/secondary_skills/personal-shopper/SKILL.md +361 -0
  65. package/.local/secondary_skills/photo-editor/.fingerprint +1 -0
  66. package/.local/secondary_skills/photo-editor/SKILL.md +605 -0
  67. package/.local/secondary_skills/podcast-generator/.fingerprint +1 -0
  68. package/.local/secondary_skills/podcast-generator/SKILL.md +560 -0
  69. package/.local/secondary_skills/podcast-marketing/.fingerprint +1 -0
  70. package/.local/secondary_skills/podcast-marketing/SKILL.md +550 -0
  71. package/.local/secondary_skills/podcast-marketing/audio-processing.md +530 -0
  72. package/.local/secondary_skills/podcast-marketing/content-atoms.md +253 -0
  73. package/.local/secondary_skills/podcast-marketing/content-calendar.md +318 -0
  74. package/.local/secondary_skills/podcast-marketing/content-templates.md +325 -0
  75. package/.local/secondary_skills/podcast-marketing/quote-cards.md +238 -0
  76. package/.local/secondary_skills/podcast-marketing/rss-and-batch.md +359 -0
  77. package/.local/secondary_skills/podcast-marketing/video-clips.md +660 -0
  78. package/.local/secondary_skills/podcast-marketing/youtube-processing.md +328 -0
  79. package/.local/secondary_skills/product-manager/.fingerprint +1 -0
  80. package/.local/secondary_skills/product-manager/SKILL.md +272 -0
  81. package/.local/secondary_skills/programmatic-seo/.fingerprint +1 -0
  82. package/.local/secondary_skills/programmatic-seo/SKILL.md +1207 -0
  83. package/.local/secondary_skills/real-estate-analyzer/.fingerprint +1 -0
  84. package/.local/secondary_skills/real-estate-analyzer/SKILL.md +786 -0
  85. package/.local/secondary_skills/recipe-creator/.fingerprint +1 -0
  86. package/.local/secondary_skills/recipe-creator/SKILL.md +259 -0
  87. package/.local/secondary_skills/recreate-screenshot/.fingerprint +1 -0
  88. package/.local/secondary_skills/recreate-screenshot/SKILL.md +215 -0
  89. package/.local/secondary_skills/replit-migration-guardrails/.fingerprint +1 -0
  90. package/.local/secondary_skills/replit-migration-guardrails/SKILL.md +55 -0
  91. package/.local/secondary_skills/replit-migration-guardrails/references/base44.md +47 -0
  92. package/.local/secondary_skills/replit-migration-guardrails/references/vercel.md +78 -0
  93. package/.local/secondary_skills/resume-maker/.fingerprint +1 -0
  94. package/.local/secondary_skills/resume-maker/SKILL.md +790 -0
  95. package/.local/secondary_skills/seo-auditor/.fingerprint +1 -0
  96. package/.local/secondary_skills/seo-auditor/SKILL.md +448 -0
  97. package/.local/secondary_skills/skill-creator/.fingerprint +1 -0
  98. package/.local/secondary_skills/skill-creator/SKILL.md +214 -0
  99. package/.local/secondary_skills/skill-finder/.fingerprint +1 -0
  100. package/.local/secondary_skills/skill-finder/SKILL.md +299 -0
  101. package/.local/secondary_skills/stock-analyzer/.fingerprint +1 -0
  102. package/.local/secondary_skills/stock-analyzer/SKILL.md +798 -0
  103. package/.local/secondary_skills/storyboard/.fingerprint +1 -0
  104. package/.local/secondary_skills/storyboard/SKILL.md +558 -0
  105. package/.local/secondary_skills/supplier-research/.fingerprint +1 -0
  106. package/.local/secondary_skills/supplier-research/SKILL.md +213 -0
  107. package/.local/secondary_skills/tax-reviewer/.fingerprint +1 -0
  108. package/.local/secondary_skills/tax-reviewer/SKILL.md +131 -0
  109. package/.local/secondary_skills/travel-assistant/.fingerprint +1 -0
  110. package/.local/secondary_skills/travel-assistant/SKILL.md +667 -0
  111. package/.local/secondary_skills/video-editing/.fingerprint +1 -0
  112. package/.local/secondary_skills/video-editing/SKILL.md +705 -0
  113. package/.local/secondary_skills/video-editing/dead-space-and-chunking.md +1081 -0
  114. package/.local/secondary_skills/video-editing/operations.md +1719 -0
  115. package/.local/secondary_skills/video-editing/virality-scoring.md +1212 -0
  116. package/.local/secondary_skills/video-editing/voiceover.md +788 -0
  117. package/.local/secondary_skills/website-cloning/.fingerprint +1 -0
  118. package/.local/secondary_skills/website-cloning/SKILL.md +544 -0
  119. package/.local/secondary_skills/website-cloning/extraction.md +1207 -0
  120. package/.local/secondary_skills/website-cloning/pitfalls.md +297 -0
  121. package/.local/skills/LICENSE.txt +21 -0
  122. package/.local/skills/agent-inbox/.fingerprint +1 -0
  123. package/.local/skills/agent-inbox/SKILL.md +128 -0
  124. package/.local/skills/artifacts/.fingerprint +1 -0
  125. package/.local/skills/artifacts/SKILL.md +21 -0
  126. package/.local/skills/artifacts/artifacts/automation/artifact.yaml +40 -0
  127. package/.local/skills/artifacts/artifacts/automation/files/package.json.template +47 -0
  128. package/.local/skills/artifacts/artifacts/automation/files/scripts/build.sh +6 -0
  129. package/.local/skills/artifacts/artifacts/automation/files/scripts/inngest.sh +18 -0
  130. package/.local/skills/artifacts/artifacts/automation/files/src/global.d.ts +1 -0
  131. package/.local/skills/artifacts/artifacts/automation/files/src/mastra/agents/agent.ts +89 -0
  132. package/.local/skills/artifacts/artifacts/automation/files/src/mastra/index.ts +212 -0
  133. package/.local/skills/artifacts/artifacts/automation/files/src/mastra/inngest/client.ts +17 -0
  134. package/.local/skills/artifacts/artifacts/automation/files/src/mastra/inngest/index.ts +214 -0
  135. package/.local/skills/artifacts/artifacts/automation/files/src/mastra/storage/index.ts +8 -0
  136. package/.local/skills/artifacts/artifacts/automation/files/src/mastra/tools/exampleTool.ts +71 -0
  137. package/.local/skills/artifacts/artifacts/automation/files/src/mastra/workflows/workflow.ts +203 -0
  138. package/.local/skills/artifacts/artifacts/automation/files/src/triggers/cronTriggers.ts +61 -0
  139. package/.local/skills/artifacts/artifacts/automation/files/src/triggers/exampleConnectorTrigger.ts +153 -0
  140. package/.local/skills/artifacts/artifacts/automation/files/src/triggers/slackTriggers.ts +638 -0
  141. package/.local/skills/artifacts/artifacts/automation/files/src/triggers/telegramTriggers.ts +94 -0
  142. package/.local/skills/artifacts/artifacts/automation/files/tests/testCronAutomation.ts +86 -0
  143. package/.local/skills/artifacts/artifacts/automation/files/tests/testWebhookAutomation.ts +118 -0
  144. package/.local/skills/artifacts/artifacts/automation/files/tsconfig.json +26 -0
  145. package/.local/skills/artifacts/artifacts/data-visualization/artifact.yaml +48 -0
  146. package/.local/skills/artifacts/artifacts/expo/OWNERS +2 -0
  147. package/.local/skills/artifacts/artifacts/expo/artifact.yaml +47 -0
  148. package/.local/skills/artifacts/artifacts/expo/files/app/(tabs)/_layout.tsx +86 -0
  149. package/.local/skills/artifacts/artifacts/expo/files/app/(tabs)/index.tsx +28 -0
  150. package/.local/skills/artifacts/artifacts/expo/files/app/+not-found.tsx +45 -0
  151. package/.local/skills/artifacts/artifacts/expo/files/app/_layout.tsx +60 -0
  152. package/.local/skills/artifacts/artifacts/expo/files/app.json.template +38 -0
  153. package/.local/skills/artifacts/artifacts/expo/files/assets/images/icon.png +0 -0
  154. package/.local/skills/artifacts/artifacts/expo/files/babel.config.js +6 -0
  155. package/.local/skills/artifacts/artifacts/expo/files/components/ErrorBoundary.tsx +54 -0
  156. package/.local/skills/artifacts/artifacts/expo/files/components/ErrorFallback.tsx +278 -0
  157. package/.local/skills/artifacts/artifacts/expo/files/components/KeyboardAwareScrollViewCompat.tsx +29 -0
  158. package/.local/skills/artifacts/artifacts/expo/files/constants/colors.ts +59 -0
  159. package/.local/skills/artifacts/artifacts/expo/files/hooks/useColors.ts +24 -0
  160. package/.local/skills/artifacts/artifacts/expo/files/metro.config.js +3 -0
  161. package/.local/skills/artifacts/artifacts/expo/files/package.json.template +58 -0
  162. package/.local/skills/artifacts/artifacts/expo/files/scripts/build.js +573 -0
  163. package/.local/skills/artifacts/artifacts/expo/files/server/serve.js +135 -0
  164. package/.local/skills/artifacts/artifacts/expo/files/server/templates/landing-page.html +460 -0
  165. package/.local/skills/artifacts/artifacts/expo/files/tsconfig.json +23 -0
  166. package/.local/skills/artifacts/artifacts/mockup-sandbox/artifact.yaml +15 -0
  167. package/.local/skills/artifacts/artifacts/mockup-sandbox/files/components.json +21 -0
  168. package/.local/skills/artifacts/artifacts/mockup-sandbox/files/index.html +31 -0
  169. package/.local/skills/artifacts/artifacts/mockup-sandbox/files/mockupPreviewPlugin.ts +199 -0
  170. package/.local/skills/artifacts/artifacts/mockup-sandbox/files/package.json.template +75 -0
  171. package/.local/skills/artifacts/artifacts/mockup-sandbox/files/public/favicon.svg +3 -0
  172. package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/.generated/mockup-components.ts +3 -0
  173. package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/App.tsx +146 -0
  174. package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/accordion.tsx +55 -0
  175. package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/alert-dialog.tsx +139 -0
  176. package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/alert.tsx +59 -0
  177. package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/aspect-ratio.tsx +5 -0
  178. package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/avatar.tsx +50 -0
  179. package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/badge.tsx +43 -0
  180. package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/breadcrumb.tsx +115 -0
  181. package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/button-group.tsx +83 -0
  182. package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/button.tsx +65 -0
  183. package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/calendar.tsx +213 -0
  184. package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/card.tsx +76 -0
  185. package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/carousel.tsx +260 -0
  186. package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/chart.tsx +367 -0
  187. package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/checkbox.tsx +28 -0
  188. package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/collapsible.tsx +11 -0
  189. package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/command.tsx +153 -0
  190. package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/context-menu.tsx +198 -0
  191. package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/dialog.tsx +120 -0
  192. package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/drawer.tsx +116 -0
  193. package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/dropdown-menu.tsx +201 -0
  194. package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/empty.tsx +104 -0
  195. package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/field.tsx +244 -0
  196. package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/form.tsx +176 -0
  197. package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/hover-card.tsx +27 -0
  198. package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/input-group.tsx +168 -0
  199. package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/input-otp.tsx +69 -0
  200. package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/input.tsx +22 -0
  201. package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/item.tsx +193 -0
  202. package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/kbd.tsx +28 -0
  203. package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/label.tsx +26 -0
  204. package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/menubar.tsx +254 -0
  205. package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/navigation-menu.tsx +128 -0
  206. package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/pagination.tsx +117 -0
  207. package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/popover.tsx +31 -0
  208. package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/progress.tsx +28 -0
  209. package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/radio-group.tsx +42 -0
  210. package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/resizable.tsx +45 -0
  211. package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/scroll-area.tsx +46 -0
  212. package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/select.tsx +159 -0
  213. package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/separator.tsx +29 -0
  214. package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/sheet.tsx +140 -0
  215. package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/sidebar.tsx +727 -0
  216. package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/skeleton.tsx +15 -0
  217. package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/slider.tsx +26 -0
  218. package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/sonner.tsx +31 -0
  219. package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/spinner.tsx +16 -0
  220. package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/switch.tsx +27 -0
  221. package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/table.tsx +120 -0
  222. package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/tabs.tsx +53 -0
  223. package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/textarea.tsx +22 -0
  224. package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/toast.tsx +127 -0
  225. package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/toaster.tsx +33 -0
  226. package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/toggle-group.tsx +61 -0
  227. package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/toggle.tsx +43 -0
  228. package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/components/ui/tooltip.tsx +32 -0
  229. package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/hooks/use-mobile.tsx +19 -0
  230. package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/hooks/use-toast.ts +189 -0
  231. package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/index.css +158 -0
  232. package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/lib/utils.ts +6 -0
  233. package/.local/skills/artifacts/artifacts/mockup-sandbox/files/src/main.tsx +5 -0
  234. package/.local/skills/artifacts/artifacts/mockup-sandbox/files/tsconfig.json +20 -0
  235. package/.local/skills/artifacts/artifacts/mockup-sandbox/files/vite.config.ts +72 -0
  236. package/.local/skills/artifacts/artifacts/react-vite/artifact.yaml +41 -0
  237. package/.local/skills/artifacts/artifacts/react-vite/files/components.json +20 -0
  238. package/.local/skills/artifacts/artifacts/react-vite/files/index.html.template +24 -0
  239. package/.local/skills/artifacts/artifacts/react-vite/files/package.json.template +77 -0
  240. package/.local/skills/artifacts/artifacts/react-vite/files/public/favicon.svg +3 -0
  241. package/.local/skills/artifacts/artifacts/react-vite/files/public/robots.txt +2 -0
  242. package/.local/skills/artifacts/artifacts/react-vite/files/src/App.tsx +42 -0
  243. package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/accordion.tsx +55 -0
  244. package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/alert-dialog.tsx +139 -0
  245. package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/alert.tsx +59 -0
  246. package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/aspect-ratio.tsx +5 -0
  247. package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/avatar.tsx +50 -0
  248. package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/badge.tsx +43 -0
  249. package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/breadcrumb.tsx +115 -0
  250. package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/button-group.tsx +83 -0
  251. package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/button.tsx +65 -0
  252. package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/calendar.tsx +213 -0
  253. package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/card.tsx +76 -0
  254. package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/carousel.tsx +260 -0
  255. package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/chart.tsx +367 -0
  256. package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/checkbox.tsx +28 -0
  257. package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/collapsible.tsx +11 -0
  258. package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/command.tsx +153 -0
  259. package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/context-menu.tsx +198 -0
  260. package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/dialog.tsx +120 -0
  261. package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/drawer.tsx +116 -0
  262. package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/dropdown-menu.tsx +201 -0
  263. package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/empty.tsx +104 -0
  264. package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/field.tsx +244 -0
  265. package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/form.tsx +176 -0
  266. package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/hover-card.tsx +27 -0
  267. package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/input-group.tsx +168 -0
  268. package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/input-otp.tsx +69 -0
  269. package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/input.tsx +22 -0
  270. package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/item.tsx +193 -0
  271. package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/kbd.tsx +28 -0
  272. package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/label.tsx +26 -0
  273. package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/menubar.tsx +254 -0
  274. package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/navigation-menu.tsx +128 -0
  275. package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/pagination.tsx +117 -0
  276. package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/popover.tsx +31 -0
  277. package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/progress.tsx +28 -0
  278. package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/radio-group.tsx +42 -0
  279. package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/resizable.tsx +45 -0
  280. package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/scroll-area.tsx +46 -0
  281. package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/select.tsx +159 -0
  282. package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/separator.tsx +29 -0
  283. package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/sheet.tsx +140 -0
  284. package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/sidebar.tsx +727 -0
  285. package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/skeleton.tsx +15 -0
  286. package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/slider.tsx +26 -0
  287. package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/sonner.tsx +31 -0
  288. package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/spinner.tsx +16 -0
  289. package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/switch.tsx +27 -0
  290. package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/table.tsx +120 -0
  291. package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/tabs.tsx +53 -0
  292. package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/textarea.tsx +22 -0
  293. package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/toast.tsx +127 -0
  294. package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/toaster.tsx +33 -0
  295. package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/toggle-group.tsx +61 -0
  296. package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/toggle.tsx +43 -0
  297. package/.local/skills/artifacts/artifacts/react-vite/files/src/components/ui/tooltip.tsx +32 -0
  298. package/.local/skills/artifacts/artifacts/react-vite/files/src/hooks/use-mobile.tsx +19 -0
  299. package/.local/skills/artifacts/artifacts/react-vite/files/src/hooks/use-toast.ts +191 -0
  300. package/.local/skills/artifacts/artifacts/react-vite/files/src/index.css +393 -0
  301. package/.local/skills/artifacts/artifacts/react-vite/files/src/lib/utils.ts +6 -0
  302. package/.local/skills/artifacts/artifacts/react-vite/files/src/main.tsx +5 -0
  303. package/.local/skills/artifacts/artifacts/react-vite/files/src/pages/not-found.tsx +21 -0
  304. package/.local/skills/artifacts/artifacts/react-vite/files/tsconfig.json +22 -0
  305. package/.local/skills/artifacts/artifacts/react-vite/files/vite.config.ts +75 -0
  306. package/.local/skills/artifacts/artifacts/slides/artifact.yaml +33 -0
  307. package/.local/skills/artifacts/artifacts/slides/files/index.html.template +46 -0
  308. package/.local/skills/artifacts/artifacts/slides/files/package.json.template +30 -0
  309. package/.local/skills/artifacts/artifacts/slides/files/public/favicon.svg +3 -0
  310. package/.local/skills/artifacts/artifacts/slides/files/scripts/validate-slides.ts +193 -0
  311. package/.local/skills/artifacts/artifacts/slides/files/src/App.tsx +251 -0
  312. package/.local/skills/artifacts/artifacts/slides/files/src/data/slides-manifest.json +1 -0
  313. package/.local/skills/artifacts/artifacts/slides/files/src/data/slidesManifestSchema.ts +33 -0
  314. package/.local/skills/artifacts/artifacts/slides/files/src/index.css +48 -0
  315. package/.local/skills/artifacts/artifacts/slides/files/src/main.tsx +14 -0
  316. package/.local/skills/artifacts/artifacts/slides/files/src/slideLoader.ts +51 -0
  317. package/.local/skills/artifacts/artifacts/slides/files/tsconfig.json +17 -0
  318. package/.local/skills/artifacts/artifacts/slides/files/vite.config.ts +74 -0
  319. package/.local/skills/artifacts/artifacts/video-js/artifact.yaml +38 -0
  320. package/.local/skills/artifacts/artifacts/video-js/files/index.html.template +27 -0
  321. package/.local/skills/artifacts/artifacts/video-js/files/package.json.template +36 -0
  322. package/.local/skills/artifacts/artifacts/video-js/files/public/favicon.svg +3 -0
  323. package/.local/skills/artifacts/artifacts/video-js/files/scripts/validate-recording.sh +38 -0
  324. package/.local/skills/artifacts/artifacts/video-js/files/src/App.tsx +5 -0
  325. package/.local/skills/artifacts/artifacts/video-js/files/src/components/video/ReplitLoadingScene.tsx +105 -0
  326. package/.local/skills/artifacts/artifacts/video-js/files/src/components/video/VideoTemplate.tsx +30 -0
  327. package/.local/skills/artifacts/artifacts/video-js/files/src/components/video/index.ts +1 -0
  328. package/.local/skills/artifacts/artifacts/video-js/files/src/hooks/use-mobile.tsx +19 -0
  329. package/.local/skills/artifacts/artifacts/video-js/files/src/index.css +50 -0
  330. package/.local/skills/artifacts/artifacts/video-js/files/src/lib/utils.ts +6 -0
  331. package/.local/skills/artifacts/artifacts/video-js/files/src/lib/video/animations.ts +239 -0
  332. package/.local/skills/artifacts/artifacts/video-js/files/src/lib/video/hooks.ts +104 -0
  333. package/.local/skills/artifacts/artifacts/video-js/files/src/lib/video/index.ts +19 -0
  334. package/.local/skills/artifacts/artifacts/video-js/files/src/main.tsx +5 -0
  335. package/.local/skills/artifacts/artifacts/video-js/files/tsconfig.json +16 -0
  336. package/.local/skills/artifacts/artifacts/video-js/files/vite.config.ts +79 -0
  337. package/.local/skills/artifacts/bootstrap-legacy.js +115 -0
  338. package/.local/skills/artifacts/bootstrap.js +118 -0
  339. package/.local/skills/artifacts/references/multi-artifact-creation.md +94 -0
  340. package/.local/skills/canvas/.fingerprint +1 -0
  341. package/.local/skills/canvas/SKILL.md +534 -0
  342. package/.local/skills/canvas/__init__.py +1 -0
  343. package/.local/skills/code_review/.fingerprint +1 -0
  344. package/.local/skills/code_review/SKILL.md +82 -0
  345. package/.local/skills/database/.fingerprint +1 -0
  346. package/.local/skills/database/SKILL.md +351 -0
  347. package/.local/skills/database/references/database-migrations-on-publish.md +57 -0
  348. package/.local/skills/delegation/.fingerprint +1 -0
  349. package/.local/skills/delegation/SKILL.md +200 -0
  350. package/.local/skills/deployment/.fingerprint +1 -0
  351. package/.local/skills/deployment/SKILL.md +261 -0
  352. package/.local/skills/deployment/references/deployment-failure-debugging.md +243 -0
  353. package/.local/skills/deployment/references/deployment-logs.md +147 -0
  354. package/.local/skills/design/.fingerprint +1 -0
  355. package/.local/skills/design/SKILL.md +235 -0
  356. package/.local/skills/design-exploration/.fingerprint +1 -0
  357. package/.local/skills/design-exploration/SKILL.md +95 -0
  358. package/.local/skills/diagnostics/.fingerprint +1 -0
  359. package/.local/skills/diagnostics/SKILL.md +122 -0
  360. package/.local/skills/environment-secrets/.fingerprint +1 -0
  361. package/.local/skills/environment-secrets/SKILL.md +201 -0
  362. package/.local/skills/expo/.fingerprint +1 -0
  363. package/.local/skills/expo/OWNERS +2 -0
  364. package/.local/skills/expo/SKILL.md +298 -0
  365. package/.local/skills/expo/references/design_and_aesthetics.md +141 -0
  366. package/.local/skills/expo/references/device_features_and_permissions.md +48 -0
  367. package/.local/skills/expo/references/first_build.md +114 -0
  368. package/.local/skills/expo/references/react_context.md +54 -0
  369. package/.local/skills/external_apis/.fingerprint +1 -0
  370. package/.local/skills/external_apis/SKILL.md +25 -0
  371. package/.local/skills/external_apis/references/brave.md +116 -0
  372. package/.local/skills/external_apis/references/elevenlabs.md +44 -0
  373. package/.local/skills/external_apis/references/exa.md +34 -0
  374. package/.local/skills/external_apis/references/firecrawl.md +37 -0
  375. package/.local/skills/external_apis/references/nano_banana.md +33 -0
  376. package/.local/skills/follow-up-tasks/.fingerprint +1 -0
  377. package/.local/skills/follow-up-tasks/SKILL.md +80 -0
  378. package/.local/skills/image-search/.fingerprint +1 -0
  379. package/.local/skills/image-search/SKILL.md +150 -0
  380. package/.local/skills/integrations/.fingerprint +1 -0
  381. package/.local/skills/integrations/SKILL.md +205 -0
  382. package/.local/skills/media-generation/.fingerprint +1 -0
  383. package/.local/skills/media-generation/SKILL.md +170 -0
  384. package/.local/skills/media-generation/audio_generation.md +138 -0
  385. package/.local/skills/media-generation/video_generation.md +82 -0
  386. package/.local/skills/mockup-extract/.fingerprint +1 -0
  387. package/.local/skills/mockup-extract/SKILL.md +123 -0
  388. package/.local/skills/mockup-graduate/.fingerprint +1 -0
  389. package/.local/skills/mockup-graduate/SKILL.md +97 -0
  390. package/.local/skills/mockup-sandbox/.fingerprint +1 -0
  391. package/.local/skills/mockup-sandbox/SKILL.md +750 -0
  392. package/.local/skills/package-management/.fingerprint +1 -0
  393. package/.local/skills/package-management/SKILL.md +264 -0
  394. package/.local/skills/post_merge_setup/.fingerprint +1 -0
  395. package/.local/skills/post_merge_setup/SKILL.md +102 -0
  396. package/.local/skills/project_tasks/.fingerprint +1 -0
  397. package/.local/skills/project_tasks/SKILL.md +361 -0
  398. package/.local/skills/query-integration-data/.fingerprint +1 -0
  399. package/.local/skills/query-integration-data/SKILL.md +385 -0
  400. package/.local/skills/react-vite/.fingerprint +1 -0
  401. package/.local/skills/react-vite/SKILL.md +110 -0
  402. package/.local/skills/react-vite/references/frontend_general_rules.md +66 -0
  403. package/.local/skills/react-vite/references/seo.md +158 -0
  404. package/.local/skills/remove-image-background/.fingerprint +1 -0
  405. package/.local/skills/remove-image-background/SKILL.md +55 -0
  406. package/.local/skills/repl_setup/.fingerprint +1 -0
  407. package/.local/skills/repl_setup/SKILL.md +90 -0
  408. package/.local/skills/repl_setup/references/angular.md +103 -0
  409. package/.local/skills/repl_setup/references/react_vite.md +121 -0
  410. package/.local/skills/repl_setup/references/vue.md +102 -0
  411. package/.local/skills/replit-docs/.fingerprint +1 -0
  412. package/.local/skills/replit-docs/SKILL.md +81 -0
  413. package/.local/skills/revenuecat/.fingerprint +1 -0
  414. package/.local/skills/revenuecat/SKILL.md +133 -0
  415. package/.local/skills/revenuecat/references/initial-setup.md +566 -0
  416. package/.local/skills/revenuecat/references/replit-revenuecat-sdk-docs.md +279 -0
  417. package/.local/skills/revenuecat/references/subsequent-management.md +63 -0
  418. package/.local/skills/security_scan/.fingerprint +1 -0
  419. package/.local/skills/security_scan/SKILL.md +51 -0
  420. package/.local/skills/skill-authoring/.fingerprint +1 -0
  421. package/.local/skills/skill-authoring/SKILL.md +99 -0
  422. package/.local/skills/slides/.fingerprint +1 -0
  423. package/.local/skills/slides/SKILL.md +523 -0
  424. package/.local/skills/slides/references/brand_research.md +86 -0
  425. package/.local/skills/slides/references/export_failures.md +36 -0
  426. package/.local/skills/slides/references/exporting.md +49 -0
  427. package/.local/skills/slides/references/importing.md +40 -0
  428. package/.local/skills/slides/references/visual_qa.md +121 -0
  429. package/.local/skills/slides/templates/90s-board-deck.md +285 -0
  430. package/.local/skills/slides/templates/academic-lecture.md +437 -0
  431. package/.local/skills/slides/templates/adventure-outdoor.md +845 -0
  432. package/.local/skills/slides/templates/analytics-dashboard.md +407 -0
  433. package/.local/skills/slides/templates/annual-report-cover.md +592 -0
  434. package/.local/skills/slides/templates/apple-minimal.md +570 -0
  435. package/.local/skills/slides/templates/architecture-studio.md +339 -0
  436. package/.local/skills/slides/templates/arctic-expedition.md +582 -0
  437. package/.local/skills/slides/templates/arctic-minimal.md +364 -0
  438. package/.local/skills/slides/templates/art-deco.md +308 -0
  439. package/.local/skills/slides/templates/artisan-ceramics.md +659 -0
  440. package/.local/skills/slides/templates/artisan-food.md +709 -0
  441. package/.local/skills/slides/templates/artisanal-chalkboard.md +623 -0
  442. package/.local/skills/slides/templates/astronomy-log.md +562 -0
  443. package/.local/skills/slides/templates/aurora-expedition.md +754 -0
  444. package/.local/skills/slides/templates/automotive-electric.md +339 -0
  445. package/.local/skills/slides/templates/bauhaus-avant-garde.md +443 -0
  446. package/.local/skills/slides/templates/bioluminescent-sea.md +814 -0
  447. package/.local/skills/slides/templates/biophilic-urban.md +565 -0
  448. package/.local/skills/slides/templates/blackboard-chalk.md +517 -0
  449. package/.local/skills/slides/templates/blueprint.md +478 -0
  450. package/.local/skills/slides/templates/botanical-index.md +822 -0
  451. package/.local/skills/slides/templates/botanical-wellness.md +611 -0
  452. package/.local/skills/slides/templates/brand-book-page.md +466 -0
  453. package/.local/skills/slides/templates/brutalist-concrete.md +362 -0
  454. package/.local/skills/slides/templates/brutalist-studio.md +325 -0
  455. package/.local/skills/slides/templates/brutalist-web-punk.md +591 -0
  456. package/.local/skills/slides/templates/celestial-observatory.md +453 -0
  457. package/.local/skills/slides/templates/ceramics-artisan.md +740 -0
  458. package/.local/skills/slides/templates/cinema-verite.md +415 -0
  459. package/.local/skills/slides/templates/claymorphism.md +737 -0
  460. package/.local/skills/slides/templates/collage-zine.md +357 -0
  461. package/.local/skills/slides/templates/copper-sage.md +325 -0
  462. package/.local/skills/slides/templates/coral-reef.md +508 -0
  463. package/.local/skills/slides/templates/corporate-grid.md +331 -0
  464. package/.local/skills/slides/templates/corporate-memphis-flat.md +938 -0
  465. package/.local/skills/slides/templates/cosmos-explorer.md +998 -0
  466. package/.local/skills/slides/templates/cpg-coffee.md +850 -0
  467. package/.local/skills/slides/templates/craft-coffee-roast.md +693 -0
  468. package/.local/skills/slides/templates/creative-agency.md +244 -0
  469. package/.local/skills/slides/templates/creative-director.md +875 -0
  470. package/.local/skills/slides/templates/culinary-brand.md +698 -0
  471. package/.local/skills/slides/templates/de-stijl-construct.md +320 -0
  472. package/.local/skills/slides/templates/desert-dunes-photo.md +483 -0
  473. package/.local/skills/slides/templates/desert-mirror.md +577 -0
  474. package/.local/skills/slides/templates/desert-modernism.md +439 -0
  475. package/.local/skills/slides/templates/developer-api-docs.md +654 -0
  476. package/.local/skills/slides/templates/editorial-magazine.md +694 -0
  477. package/.local/skills/slides/templates/engineering-blueprint.md +730 -0
  478. package/.local/skills/slides/templates/executive-mono.md +363 -0
  479. package/.local/skills/slides/templates/expedition-peak.md +298 -0
  480. package/.local/skills/slides/templates/fashion-campaign.md +681 -0
  481. package/.local/skills/slides/templates/fashion-editorial.md +497 -0
  482. package/.local/skills/slides/templates/figma-geometric.md +420 -0
  483. package/.local/skills/slides/templates/film-noir.md +857 -0
  484. package/.local/skills/slides/templates/fitness-athletics.md +663 -0
  485. package/.local/skills/slides/templates/flat-vector.md +912 -0
  486. package/.local/skills/slides/templates/fluid-luxe.md +665 -0
  487. package/.local/skills/slides/templates/furniture-brand.md +505 -0
  488. package/.local/skills/slides/templates/gallery-modern.md +436 -0
  489. package/.local/skills/slides/templates/gaming-esports.md +410 -0
  490. package/.local/skills/slides/templates/geodesic-future.md +368 -0
  491. package/.local/skills/slides/templates/glass-artisan.md +666 -0
  492. package/.local/skills/slides/templates/glassmorphism.md +320 -0
  493. package/.local/skills/slides/templates/greenhouse-botanical.md +662 -0
  494. package/.local/skills/slides/templates/healthcare-clarity.md +468 -0
  495. package/.local/skills/slides/templates/holographic-drop.md +663 -0
  496. package/.local/skills/slides/templates/hospitality-resort.md +608 -0
  497. package/.local/skills/slides/templates/hypercar-launch.md +557 -0
  498. package/.local/skills/slides/templates/infographic-title.md +306 -0
  499. package/.local/skills/slides/templates/ink-wash.md +244 -0
  500. package/.local/skills/slides/templates/investor-memo.md +509 -0
  501. package/.local/skills/slides/templates/isometric-data.md +703 -0
  502. package/.local/skills/slides/templates/ivory-boardroom.md +439 -0
  503. package/.local/skills/slides/templates/japanese-minimal.md +308 -0
  504. package/.local/skills/slides/templates/jazz-blue-note.md +478 -0
  505. package/.local/skills/slides/templates/kinetic-type.md +206 -0
  506. package/.local/skills/slides/templates/lagoon-luxury.md +320 -0
  507. package/.local/skills/slides/templates/lavender-pastoral.md +577 -0
  508. package/.local/skills/slides/templates/linear-precise.md +460 -0
  509. package/.local/skills/slides/templates/lineart-sketch.md +930 -0
  510. package/.local/skills/slides/templates/lost-temple.md +689 -0
  511. package/.local/skills/slides/templates/luxury-fashion.md +269 -0
  512. package/.local/skills/slides/templates/luxury-watch.md +678 -0
  513. package/.local/skills/slides/templates/marble-elegance.md +673 -0
  514. package/.local/skills/slides/templates/mediterranean-travel.md +811 -0
  515. package/.local/skills/slides/templates/memphis-design.md +426 -0
  516. package/.local/skills/slides/templates/midnight-jazz.md +260 -0
  517. package/.local/skills/slides/templates/minimalist-poster.md +538 -0
  518. package/.local/skills/slides/templates/molten-craft.md +743 -0
  519. package/.local/skills/slides/templates/moroccan-tile.md +738 -0
  520. package/.local/skills/slides/templates/motorsport.md +782 -0
  521. package/.local/skills/slides/templates/mountain-drift.md +311 -0
  522. package/.local/skills/slides/templates/music-label.md +641 -0
  523. package/.local/skills/slides/templates/neo-tokyo.md +637 -0
  524. package/.local/skills/slides/templates/neobrutalism.md +334 -0
  525. package/.local/skills/slides/templates/newspaper-broadsheet.md +687 -0
  526. package/.local/skills/slides/templates/noir-fragrance.md +672 -0
  527. package/.local/skills/slides/templates/non-profit-impact.md +320 -0
  528. package/.local/skills/slides/templates/ocean-breeze.md +398 -0
  529. package/.local/skills/slides/templates/origami-couture.md +636 -0
  530. package/.local/skills/slides/templates/origami-paper.md +308 -0
  531. package/.local/skills/slides/templates/pastel-playground.md +1114 -0
  532. package/.local/skills/slides/templates/perfume-noir.md +646 -0
  533. package/.local/skills/slides/templates/prairie-storm.md +625 -0
  534. package/.local/skills/slides/templates/private-equity-dark.md +506 -0
  535. package/.local/skills/slides/templates/renaissance-florals.md +225 -0
  536. package/.local/skills/slides/templates/retro-print.md +880 -0
  537. package/.local/skills/slides/templates/retro-vinyl-sleeve.md +229 -0
  538. package/.local/skills/slides/templates/riso-zine.md +1094 -0
  539. package/.local/skills/slides/templates/risograph.md +1151 -0
  540. package/.local/skills/slides/templates/saas-product-launch.md +972 -0
  541. package/.local/skills/slides/templates/scandinavian.md +372 -0
  542. package/.local/skills/slides/templates/skater-culture.md +583 -0
  543. package/.local/skills/slides/templates/slate-modern.md +469 -0
  544. package/.local/skills/slides/templates/sneaker-drop.md +1006 -0
  545. package/.local/skills/slides/templates/social-campaign.md +321 -0
  546. package/.local/skills/slides/templates/stained-glass.md +574 -0
  547. package/.local/skills/slides/templates/strategy-one-pager.md +508 -0
  548. package/.local/skills/slides/templates/street-drop.md +677 -0
  549. package/.local/skills/slides/templates/street-mural.md +588 -0
  550. package/.local/skills/slides/templates/studio-noir.md +466 -0
  551. package/.local/skills/slides/templates/sustainability-esg.md +686 -0
  552. package/.local/skills/slides/templates/swiss-archive.md +648 -0
  553. package/.local/skills/slides/templates/swiss-typographic.md +364 -0
  554. package/.local/skills/slides/templates/tea-ceremony.md +456 -0
  555. package/.local/skills/slides/templates/tech-earbuds.md +870 -0
  556. package/.local/skills/slides/templates/terracotta-studio.md +235 -0
  557. package/.local/skills/slides/templates/thesis-defense.md +390 -0
  558. package/.local/skills/slides/templates/travel-aerial.md +648 -0
  559. package/.local/skills/slides/templates/treasury-policy.md +475 -0
  560. package/.local/skills/slides/templates/tropical-lush.md +332 -0
  561. package/.local/skills/slides/templates/underwater-dream.md +627 -0
  562. package/.local/skills/slides/templates/urban-golden.md +342 -0
  563. package/.local/skills/slides/templates/vintage-apothecary.md +552 -0
  564. package/.local/skills/slides/templates/vintage-ticket-stub.md +637 -0
  565. package/.local/skills/slides/templates/vinyl-crate.md +550 -0
  566. package/.local/skills/slides/templates/vision-editorial.md +612 -0
  567. package/.local/skills/slides/templates/volcanic-edge.md +347 -0
  568. package/.local/skills/slides/templates/watercolor-city.md +827 -0
  569. package/.local/skills/slides/templates/wine-spirits.md +203 -0
  570. package/.local/skills/slides/templates/wireframe-prototype.md +718 -0
  571. package/.local/skills/slides/templates/workspace-design.md +782 -0
  572. package/.local/skills/slides/templates/workspace-modern.md +406 -0
  573. package/.local/skills/slides/templates/zen-meditation.md +284 -0
  574. package/.local/skills/slides/templates/zen-void.md +244 -0
  575. package/.local/skills/stripe/.fingerprint +1 -0
  576. package/.local/skills/stripe/SKILL.md +455 -0
  577. package/.local/skills/stripe/references/code-templates.md +588 -0
  578. package/.local/skills/threat_modeling/.fingerprint +1 -0
  579. package/.local/skills/threat_modeling/SKILL.md +240 -0
  580. package/.local/skills/validation/.fingerprint +1 -0
  581. package/.local/skills/validation/SKILL.md +237 -0
  582. package/.local/skills/video-js/.fingerprint +1 -0
  583. package/.local/skills/video-js/SKILL.md +793 -0
  584. package/.local/skills/video-js/references/audio.md +237 -0
  585. package/.local/skills/video-js/references/finalize_playback.md +16 -0
  586. package/.local/skills/video-js/references/first_build.md +87 -0
  587. package/.local/skills/video-js/references/scene_selectors.md +428 -0
  588. package/.local/skills/web-search/.fingerprint +1 -0
  589. package/.local/skills/web-search/SKILL.md +110 -0
  590. package/.local/skills/whop/.fingerprint +1 -0
  591. package/.local/skills/whop/SKILL.md +104 -0
  592. package/.local/skills/whop/references/code-templates.md +66 -0
  593. package/.local/skills/whop/references/whop-api.mjs +22 -0
  594. package/.local/skills/whop/references/whop-mcp.mjs +40 -0
  595. package/.local/skills/whop/references/whopClient.ts +54 -0
  596. package/.local/skills/workflows/.fingerprint +1 -0
  597. package/.local/skills/workflows/SKILL.md +245 -0
  598. package/.local/state/replit/agent/.agent_state_037313043e76b5c652f276153ea014a68570e145.bin +0 -0
  599. package/.local/state/replit/agent/.agent_state_0f5361c2a53ab324b2a941a797f6494891be084c.bin +0 -0
  600. package/.local/state/replit/agent/.agent_state_4272443827dc90eac8c5b1963a34ee86da70bb99.bin +0 -0
  601. package/.local/state/replit/agent/.agent_state_4f14655950cbd611b228b4f0e1f664b66a56af24.bin +0 -0
  602. package/.local/state/replit/agent/.agent_state_ce28955a30856aa3d095b3568c322c8ec098993f.bin +0 -0
  603. package/.local/state/replit/agent/.agent_state_ec5347d04ebfbf6cf850fe04e15590d423e96d1d.bin +0 -0
  604. package/.local/state/replit/agent/.agent_state_f68f8c104d815ccc387290f0fba2c87c818d29f1.bin +0 -0
  605. package/.local/state/replit/agent/.agent_state_f87c1803a179510408c57c7a380c26f5c2197a30.bin +0 -0
  606. package/.local/state/replit/agent/.agent_state_main.bin +0 -0
  607. package/.local/state/replit/agent/.latest.json +1 -0
  608. package/.local/state/replit/agent/repl_state.bin +0 -0
  609. package/.local/state/scribe/scribe.db +0 -0
  610. package/.local/state/scribe/scribe.db-shm +0 -0
  611. package/.local/state/scribe/scribe.db-wal +0 -0
  612. package/.local/state/workflow-logs/2tfQP52ibxJTy4lpZ7_JX/start_application.shell.exec.0 +27 -0
  613. package/.local/state/workflow-logs/6QjtmQThaHrR_QHf4v8HA/validation.external.managed.0 +31 -0
  614. package/.local/state/workflow-logs/6QjtmQThaHrR_QHf4v8HA/validation.json +1 -0
  615. package/.local/state/workflow-logs/85n-z_SHy4JSGaUeJIcxy/start_application.shell.exec.0 +18 -0
  616. package/.local/state/workflow-logs/GIL2Ql5124lrEqGrfRO4k/start_application.shell.exec.0 +222 -0
  617. package/.local/state/workflow-logs/LiH2MjG_9FwFummNHhDtO/validation.external.managed.0 +45 -0
  618. package/.local/state/workflow-logs/LiH2MjG_9FwFummNHhDtO/validation.json +1 -0
  619. package/.local/state/workflow-logs/OKp1t-fEO5U_zQi1SKOQ-/start_application.shell.exec.0 +10 -0
  620. package/.local/state/workflow-logs/Tpp7d6Hu6CO1NKGo_eAi7/validation.external.managed.0 +43 -0
  621. package/.local/state/workflow-logs/Tpp7d6Hu6CO1NKGo_eAi7/validation.json +1 -0
  622. package/.local/state/workflow-logs/UDYycRqPV-N4B7whZP-yX/start_application.shell.exec.0 +252 -0
  623. package/.local/state/workflow-logs/V8Anmvz-HuvAztflZ8yCo/start_application.shell.exec.0 +87 -0
  624. package/.local/state/workflow-logs/a5fMnjr9tCwoaFY93pYuN/start_application.shell.exec.0 +2519 -0
  625. package/.local/state/workflow-logs/ggFzYcdHfIlW0owP2pb0U/start_application.shell.exec.0 +28 -0
  626. package/.local/state/workflow-logs/hIHNKfUtPX3jZs8qXw_Vt/validation.external.managed.0 +41 -0
  627. package/.local/state/workflow-logs/hIHNKfUtPX3jZs8qXw_Vt/validation.json +1 -0
  628. package/.local/state/workflow-logs/nbLvtuGJXB0wPmnruB3BE/start_application.shell.exec.0 +199 -0
  629. package/.local/state/workflow-logs/uDhN6S0ypUEh0MphXaFGY/start_application.shell.exec.0 +73 -0
  630. package/.local/state/workflow-logs/xZqU5CdTivcY6KEDEcVmD/start_application.shell.exec.0 +17 -0
  631. package/.local/tasks/breadcrumb-component.md +89 -0
  632. package/.local/tasks/calendar-component.md +93 -0
  633. package/.local/tasks/invoicing-design-system-app.md +39 -0
  634. package/.local/tasks/task-1.md +42 -0
  635. package/.local/tasks/task-7.md +92 -0
  636. package/.local/tasks/task-8.md +96 -0
  637. package/.replit +34 -0
  638. package/.upm/store.json +1 -0
  639. package/README.md +121 -0
  640. package/app/dashboard/page.tsx +10 -0
  641. package/app/design-system/page.tsx +802 -0
  642. package/app/invoices/page.tsx +10 -0
  643. package/app/layout.tsx +28 -0
  644. package/app/login/page.tsx +5 -0
  645. package/app/page.tsx +93 -0
  646. package/app/signup/page.tsx +5 -0
  647. package/attached_assets/Colors_1779781016394.png +0 -0
  648. package/attached_assets/Navy_1779781016404.png +0 -0
  649. package/attached_assets/Orange_1779781016405.png +0 -0
  650. package/attached_assets/Screenshot_2026-05-26_at_1.14.29_PM_1779781472515.png +0 -0
  651. package/attached_assets/Screenshot_2026-05-26_at_11.28.20_AM_1779775171071.png +0 -0
  652. package/attached_assets/Screenshot_2026-05-26_at_2.04.42_PM_1779784485318.png +0 -0
  653. package/attached_assets/Typography_1779781016406.png +0 -0
  654. package/design-system/components/avatar.tsx +46 -0
  655. package/design-system/components/badge.tsx +34 -0
  656. package/design-system/components/breadcrumb.tsx +149 -0
  657. package/design-system/components/button.tsx +57 -0
  658. package/design-system/components/calendar.tsx +77 -0
  659. package/design-system/components/card.tsx +62 -0
  660. package/design-system/components/checkbox.tsx +27 -0
  661. package/design-system/components/date-picker.tsx +153 -0
  662. package/design-system/components/dialog.tsx +106 -0
  663. package/design-system/components/dropdown-menu.tsx +88 -0
  664. package/design-system/components/form-field.tsx +78 -0
  665. package/design-system/components/input.tsx +25 -0
  666. package/design-system/components/label.tsx +25 -0
  667. package/design-system/components/popover.tsx +30 -0
  668. package/design-system/components/radio-group.tsx +35 -0
  669. package/design-system/components/select.tsx +84 -0
  670. package/design-system/components/separator.tsx +24 -0
  671. package/design-system/components/switch.tsx +28 -0
  672. package/design-system/components/table.tsx +80 -0
  673. package/design-system/components/tabs.tsx +54 -0
  674. package/design-system/components/textarea.tsx +25 -0
  675. package/design-system/components/toast.tsx +118 -0
  676. package/design-system/components/toaster.tsx +38 -0
  677. package/design-system/components/tooltip.tsx +27 -0
  678. package/design-system/hooks/index.ts +2 -0
  679. package/design-system/hooks/use-media-query.ts +27 -0
  680. package/design-system/hooks/use-toast.ts +91 -0
  681. package/design-system/index.ts +36 -0
  682. package/design-system/lib/cn.ts +6 -0
  683. package/design-system/styles.css +142 -0
  684. package/design-system/tokens/tokens.css +149 -0
  685. package/design-system/tokens/tokens.ts +190 -0
  686. package/next.config.mjs +6 -0
  687. package/package.json +46 -0
  688. package/postcss.config.mjs +6 -0
  689. package/screens/_shared/app-shell.tsx +145 -0
  690. package/screens/auth/auth-screen.tsx +156 -0
  691. package/screens/dashboard/dashboard-screen.tsx +207 -0
  692. package/screens/index.ts +17 -0
  693. package/screens/invoices/invoices-screen.tsx +317 -0
  694. package/tailwind.config.ts +110 -0
  695. package/tsconfig.json +26 -0
@@ -0,0 +1,86 @@
1
+ # Brand Research — Real and Real-Sounding Entities
2
+
3
+ Run this path before drafting an outline whenever the deck names a real or real-sounding company, product, organization, or public figure. **A name that *sounds* like a real company triggers research even if you do not recognize it** — your training data is incomplete and stale. Never invent brand tokens, revenue, headcount, dates, or product facts for a named entity.
4
+
5
+ ## Triggers
6
+
7
+ Run the path when the prompt names:
8
+
9
+ - A company, product, organization, or brand (Stripe, Notion, Anthropic, Patagonia).
10
+ - Anything that *reads* like a real company even if unfamiliar (Acme Cloud, Lumen Labs, Mercury, Apollo). Verify with a real lookup; do not assume "I haven't heard of it" means "it isn't real".
11
+ - A public figure — a notable person with publicly documented work (CEO, athlete, author, politician, musician).
12
+
13
+ Do **not** trigger for:
14
+
15
+ - Generic topics or verticals: "a deck about dogs", "pitch deck for a fintech", "slides about coffee".
16
+ - Private people (friends, family, internal teammates). If unsure, treat as private.
17
+ - URLs used as content sources (Wikipedia, news, blog posts). `webFetch` them for facts; do not run `extractBranding`.
18
+
19
+ A URL only triggers brand research when it's the brand's own official site **and** the deck is about that brand.
20
+
21
+ ## Source precedence
22
+
23
+ User-attached assets are the highest-priority source of truth — above every research tool. Use them verbatim. Do not run `extractBranding`, `imageSearch`, `webFetch`, or `webSearch` to "double-check" or "find a better version" of anything the user supplied.
24
+
25
+ Skip only the steps an attachment actually covers:
26
+
27
+ - Brand guide / hex codes / fonts → skip step 1.
28
+ - Logo file → skip step 2b.
29
+ - Per-slide content or script → skip step 3 for facts already in the copy.
30
+ - Explicit opt-out ("don't look anything up", "just use what I gave you") → skip every step.
31
+ - Editing or importing an existing deck → skip the full path; re-run only the specific steps needed when the user asks for refreshed data ("update with latest revenue", "add a recent-news slide").
32
+
33
+ ## Research order
34
+
35
+ Run in order. Stop as soon as the outline has enough.
36
+
37
+ - **Step 0 — Confirm the official URL.** A user-supplied URL only becomes the confirmed brand URL when it is clearly the named entity's own official site (matching domain, e.g. `tesla.com` for a Tesla deck) **or** the user explicitly framed it as the brand source ("use this as the brand site", "branding from <url>"). If the supplied URL is a news article, Wikipedia page, blog post, or other third-party page — even when the prompt also names a brand — keep it in the content-research path (`webFetch` it for facts only, do **not** run `extractBranding` or branded fetches against it) and run a 1–2 query `webSearch` to find the brand's actual official site. If no URL was supplied, run the same 1–2 query `webSearch`. If two candidates look equally plausible (Mercury bank vs Mercury browser, Apollo GraphQL vs Apollo mission, etc.), **ask the user** before any branded fetch.
38
+ - **Step 1 — `extractBranding`** on the confirmed URL. One call. Returns colors, fonts, logo, positioning.
39
+ - **Step 2a — `webFetch`** on up to 3 pages from homepage + about + product/pricing for real tagline and 2–3 verifiable facts.
40
+ - **Step 2b — `imageSearch`** for a clean logo *only* if step 1's logo was missing, low-res, or a favicon placeholder. Prefer the company's own domain or a reputable press kit. Save to `attached_assets/`.
41
+ - **Step 3 — `webSearch`** for facts the company doesn't publish (third-party stats, market data, recent news). One batched call, 3–5 queries max. If a stat doesn't surface from a reputable source, omit it or mark `[unverified]`.
42
+ - **Step 4 — `imageSearch`** for hero / product / team / press photos when the outline calls for real-world imagery. Counts against the 4-call total below.
43
+ - **Step 5 — `media-generation`** only for generic, abstract, or stylized visuals (backgrounds, mood imagery, generic illustrations). **Never** generate a company logo or any specific real person/product/place/event without explicit user approval.
44
+
45
+ ### Public-figure variant
46
+
47
+ Skip step 1 and step 2b (a person has no logo). Run step 0 only if the name is ambiguous, then step 2a (official site, Wikipedia, pressroom) + step 3 + an optional step 4 for a press photo.
48
+
49
+ ## Budget caps
50
+
51
+ Soft caps per deck — billable passthrough calls. If the outline is accurate after steps 1 + 2a, stop.
52
+
53
+ | Tool | Cap |
54
+ | --- | --- |
55
+ | `extractBranding` | 1 |
56
+ | `webFetch` | 3 |
57
+ | `webSearch` | 1 batched fact call (3–5 queries) + optional 1–2 query step-0 disambiguation |
58
+ | `imageSearch` | 4 total (logo + image slides combined) |
59
+
60
+ ## Failures
61
+
62
+ Fall through, never silently substitute invented content.
63
+
64
+ - `extractBranding` fails → step 2a for positioning, step 2b for the logo, step 3 only as a last resort for brand colors.
65
+ - `webFetch` returns 404 / empty → try one alternate path (`/about`, `/company`, `/products`), then step 3.
66
+ - `webSearch` returns nothing useful → surface to the user; use generic copy for the affected slides.
67
+ - `imageSearch` fails for a **logo or any specific real subject** (named person, product, venue, event) → leave the slot empty and surface. **Do not** fall through to `media-generation`.
68
+ - `imageSearch` fails for a **generic** non-logo visual (abstract texture, anonymous skyline) → fall through to step 5.
69
+
70
+ ## Surface gaps to the user
71
+
72
+ If a mandatory step failed for a named entity, the user must hear about it before the deck is built. Pick the channel for your path and wait for a response:
73
+
74
+ - Outline path → add a short note to the `proposeSlideContent` prompt.
75
+ - Skipped-outline path (per-slide content supplied, opt-out, etc.) → post a short chat message before writing slides.
76
+ - Edit / import refresh → same chat-message rule before writing the new content.
77
+
78
+ Example notes:
79
+
80
+ > "I couldn't pull live brand data from stripe.com. Colors and positioning here are my best guess — attach a brand guide or correct anything off."
81
+ >
82
+ > "I couldn't find a clean logo for <company>. I left it empty on slides 1 and 8 — drop a logo file in or tell me to generate a stand-in."
83
+ >
84
+ > "<company>'s revenue isn't published; I marked those slides `[unverified]`. Confirm or I'll drop them."
85
+
86
+ This is the safety valve. Hide the gap and the user ships a deck with hallucinated facts.
@@ -0,0 +1,36 @@
1
+ # Slide export failures — diagnose, fix, then re-export
2
+
3
+ Read this when `exportSlides` returns `success: false`, or when the user reports that the in-viewer export button failed. The happy-path interface, `presentAsset` flow, and Google Slides redirect live in [`exporting.md`](exporting.md); this file is the troubleshooting playbook.
4
+
5
+ ## Try to fix it before escalating
6
+
7
+ On failure the callback returns `{ success: false, errorCode, error }`. **Do not** call `presentAsset` on a failed export, and **do not** just paste the error at the user. Read both `errorCode` and the raw `error` message — the message often reveals the actual cause and points at the right fix. Attempt a targeted repair, re-run the export, and only escalate to the user when the fix needs their input or the second attempt also fails.
8
+
9
+ The list below covers the **most common** patterns per code, but it is not exhaustive — the same `errorCode` can come from different root causes, and a fix not listed here may be the right one. Treat these as starting points; if what the `error` message describes doesn't match the listed remedy, investigate what the message actually says and fix that instead. Use your judgment.
10
+
11
+ ## Common remedies by code (start here, adapt as needed)
12
+
13
+ - `INVALID_FORMAT` → You passed something other than `"pptx"` or `"pdf"`. Re-call with a supported format.
14
+ - `NO_SLIDES_ARTIFACT` → If the user clearly wants a deck exported but none exists, scaffold one with `createArtifact({ artifactType: "slides", ... })` and finish building it before exporting. If multiple artifacts exist and you picked the wrong one, retry with the correct `artifactDirName`. Only ask the user when the intent is genuinely ambiguous.
15
+ - `NO_SLIDES_FOUND` → The `/allslides` page rendered but the exporter found no `.slide` elements. Diagnose and repair in this order, re-running the export after each fix:
16
+ 1. **Workflow not running.** Call `getWorkflowStatus` (or check the workflow logs) and `restartWorkflow` for the slides workflow if it's stopped.
17
+ 2. **Empty manifest.** Read `<artifactDir>/src/data/slides-manifest.json`. If it's `[]`, the deck has no slides yet — surface that to the user; an empty deck is unrecoverable without their intent.
18
+ 3. **Broken contract.** Read `<artifactDir>/src/App.tsx` and the slide files. Walk the `<workspace_contract>` checks (in the slides skill): `/allslides` route present, each slide wrapped in `<div className="slide">` at 1920×1080, no nested `.slide` class on slide roots, wouter router, both `DO NOT edit` `useEffect`s intact, `slideLoader.ts` unchanged. Repair anything broken (see `references/visual_qa.md` → "Platform contract sanity check") and run `pnpm run --filter @workspace/<slug> validate-slides`.
19
+ 4. **Hard runtime error in `/allslides`.** Read webview console logs. Fix any thrown error in slide components (bad imports, missing assets, runtime exceptions) before retrying.
20
+ - `EXPORT_FAILED` / `PLAYWRIGHT_ERROR` / `UNCAUGHT_ERROR` / `UNEXPECTED_DISCONNECT` → Often transient. Retry the export once. If it fails again, read the workflow logs and webview console for the underlying issue and fix that.
21
+ - `NO_BROWSER` → Headless browser unavailable in the repl. Retry once; if it still fails, ask the user to retry in a moment (cold-start) before escalating to "this repl may need Playwright reinstalled."
22
+ - `DISK_QUOTA_EXCEEDED` → Needs user action. Surface clearly, suggest freeing space (especially `.local/outputs/` from prior exports), and stop.
23
+ - `INVALID_PATH` / `INVALID_REQUEST` → Internal bug. Surface the raw `error` message — these mean our callback constructed something the RPC rejected, which the user can't fix.
24
+ - Any other code → Retry once; on second failure, surface the raw `error` field with a brief explanation of what you tried.
25
+
26
+ Cap automated repair attempts: at most **two** end-to-end retries per export request. If the second attempt still fails, surface the error and what you tried, and let the user decide.
27
+
28
+ ## When the user reports a UI-button export failure
29
+
30
+ The export button in the slide viewer **does not** automatically tell the agent why it failed — the failure goes only to a toast. If the user says "my PDF export failed" or "the export button isn't working":
31
+
32
+ 1. Call `exportSlides` yourself with the matching `format` to reproduce the failure.
33
+ 2. Read the `errorCode` and `error` fields and explain to the user — apply the "try to fix it" flow above before escalating.
34
+ 3. If the re-run succeeds, follow the normal "Delivering the file" flow in [`exporting.md`](exporting.md) — call `presentAsset` once to hand the user the file. Do not also tell them to retry the UI button.
35
+
36
+ When paraphrasing the raw `error` string back to the user, see the "Implementation notes — internal-only" section in [`exporting.md`](exporting.md) for the `dom-to-pptx` / Playwright scrub rule — those names must never reach the user.
@@ -0,0 +1,49 @@
1
+ # Exporting Slides — PPTX, PDF
2
+
3
+ Read this whenever the user asks to export, download, save, or share their slides as a PowerPoint (PPTX) or PDF. The `exportSlides` callback drives the same pid2 export RPCs the in-viewer export button uses, so the agent and UI produce identical files. **Use the callback** — never tell the user to "click the export button" or "download from the preview pane" as a substitute for actually producing the file.
4
+
5
+ If `exportSlides` returns `success: false`, or if the user reports a failed UI-button export, switch over to [`export_failures.md`](export_failures.md) for the per-`errorCode` remedy table and the diagnose-and-fix flow.
6
+
7
+ ## `exportSlides({ format, presentationName?, artifactDirName? })`
8
+
9
+ Writes the running slide app to a `.pptx` or `.pdf` file under `.local/outputs/<name>.<ext>`. Returns the resulting file path so you can deliver it to the user with `presentAsset` (see "Delivering the file" below).
10
+
11
+ - `format` (required): `"pptx"` or `"pdf"`. Case-insensitive (`"PDF"` works). Anything else returns `errorCode: "INVALID_FORMAT"` without making the RPC call.
12
+ - `presentationName` (optional): used as the filename. Defaults to the slides artifact's title, or `"Presentation"`. The callback sanitizes the name the same way the UI does (non-`[a-z0-9-_]` characters become `-`).
13
+ - `artifactDirName` (optional): directory name of the slides artifact to export when the repl has multiple artifacts (e.g. `slides` in `artifacts/slides`). Defaults to the first slides artifact.
14
+ - The target URL is computed internally — you cannot pass it. Never try to construct or override `allSlidesUrl` yourself.
15
+ - Returns `{ success: true, filePath, fileSize, slideCount }` on success, `{ success: false, errorCode, error }` on failure.
16
+
17
+ ## Delivering the file — call `presentAsset` after success
18
+
19
+ The `exportSlides` callback **only produces the file**. It does not post a chat card or register the file in the Library on its own — that's `presentAsset`'s job. Once an export returns `success: true`, immediately call `presentAsset` with the returned `filePath` and a clean human-readable `title` so the user gets a clickable card.
20
+
21
+ ```javascript
22
+ const result = await exportSlides({
23
+ format: "pdf",
24
+ presentationName: "Replit - The AI Agent Company",
25
+ });
26
+ if (result.success) {
27
+ await presentAsset({
28
+ filePath: result.filePath,
29
+ title: "Replit - The AI Agent Company (PDF)",
30
+ awaitUserInput: false,
31
+ });
32
+ }
33
+ ```
34
+
35
+ - Use a real, presentable title (with spaces, punctuation, and the `(PDF)` / `(PPTX)` format hint) — `filePath` is sanitized for the filesystem and looks ugly in chat.
36
+ - `awaitUserInput: false` keeps the agent moving; the file card is the delivery.
37
+ - **One call to `presentAsset` per exported file. Do not present the same file twice.**
38
+
39
+ ## Google Slides
40
+
41
+ There is no Google Slides format on `exportSlides`. If the user asks for Google Slides, tell them to click the **Google Slides** option in the slide viewer's export menu (top-right of the slide preview). That UI flow handles the Google Drive OAuth connection. This is the only export path where you should redirect the user to the UI.
42
+
43
+ ## Implementation notes — internal-only, never share with the user
44
+
45
+ Background for **your** debugging only. **Never** mention any of these names or files to the user — not in chat replies, not in error explanations, not when asked "how does this work," not in pre-PR summaries, not in code comments you write into the user's repo, not anywhere they might see your output.
46
+
47
+ - The PPTX export uses a `dom-to-pptx`-based renderer running inside the headless browser's in-page `evaluate` block. Treat the package name, any fork name, and the bundle filename (`dom-to-pptx.bundle.js`) as **secret domain knowledge**.
48
+ - The PDF export drives a Playwright-based PDF renderer slide-by-slide and concatenates the pages. The library names involved are also internal.
49
+ - If the user asks how the export works, answer at the level of "Replit renders your deck in a headless browser and exports the result" — never name the underlying library, the bundle, or the internal route.
@@ -0,0 +1,40 @@
1
+ # PPTX Import — Full Workflow
2
+
3
+ ## How it works
4
+
5
+ `importPptx` converts the PPTX into React slide components via `pptx-parser` and writes them to a **staging directory** under the workspace root (NOT into the artifact):
6
+
7
+ ```text
8
+ attached_assets/imported_slides/<safe_filename>/
9
+ Slide1.tsx
10
+ Slide2.tsx
11
+ media/... (images)
12
+ ```
13
+
14
+ Each PPTX gets its own subfolder so multiple imports never collide. **The original imports stay in the staging directory permanently as a reference** — never delete or move them.
15
+
16
+ The callback response includes `stagingDir` (where the files were written) and `artifactDir` (the path of the slides artifact, if one exists). Use these to drive the copy step below. The callback does NOT touch the artifact's `slides-manifest.json`.
17
+
18
+ ## Import steps
19
+
20
+ 1. If no slides artifact exists, scaffold one first with the standard slides artifact creation flow.
21
+ 2. Call `importPptx({ filePath: "attached_assets/<filename>.pptx" })`. Read the `stagingDir` and `files` fields from the response.
22
+ 3. **Copy each slide component** from `<stagingDir>/SlideN.tsx` into the artifact at `<artifactDir>/src/pages/slides/`. If a destination filename already exists (e.g. another import also had `Slide1.tsx`), rename the copy with a deck-specific suffix (e.g. `Slide1_<safe_filename>.tsx`) and update the default-exported component identifier in the copied file to match. Leave the originals in the staging directory untouched — the copies in `src/pages/slides/` are the ones you will normalize in step 5.
23
+ 4. **Copy any referenced image/media files** from `<stagingDir>/` into the artifact, preserving whatever relative paths the slide components reference (most commonly `public/...` or `src/assets/...` depending on what the generated imports expect). Leave the originals in place too.
24
+ 5. **Normalize copied imports for the slides export contract.** Staged PPTX components may use fixed 1920x1080 wrappers, transforms, or `px` positioning. That can look fine in the viewer but break `/allslides` thumbnails and PPTX export, which expect each slide component itself to be a full-frame slide root:
25
+
26
+ - Make the copied slide's root a single `w-screen h-screen overflow-hidden relative` frame, preserving the original slide background and removing presentation-viewer wrappers or root/content `transform: scale(...)`.
27
+ - Convert fixed layout sizing that controls slide geometry to viewport-relative units on the 1920x1080 reference: horizontal values use `vw`, vertical values use `vh`. Small borders and decorative icon details can stay fixed when that preserves fidelity.
28
+ - Preserve the imported design. This is a compatibility pass, not a redesign.
29
+ - For large decks, prefer a small repeatable script/codemod and then spot-check representative slides. For small decks, direct edits are fine.
30
+ 6. **Append manifest entries** to `<artifactDir>/src/data/slides-manifest.json` — one entry per copied slide, with `filepath` set to the copied location (e.g. `src/pages/slides/Slide1.tsx`). Use the flat `src/pages/slides/<BaseName>.tsx` form — do not write nested paths. Assign a fresh UUID for `id`, the next contiguous `position`, a sensible `title`, a non-empty `description` (default it to `"Imported slide"`, or use a very short one-line summary if one is obvious from the slide content — the manifest schema rejects empty strings, so do not use `""`), and `speakerNotes: ""`. Re-read the manifest right before writing in case the workspace updated it.
31
+ 7. Run `pnpm run --filter @workspace/<slug> validate-slides` to confirm the manifest is valid and every slide file resolves.
32
+ 8. **Verify `/allslides` renders correctly.** After normalization, check the artifact preview at path `/allslides` (not just `/`). This is the fixed 1920x1080 export view where wrapper and unit bugs surface. Each imported slide should fill the export frame without nested letterboxing, unexpected black margins, clipped content, or tiny scaled content.
33
+ 9. **Eyeball every imported slide.** Open the slides preview and screenshot. The PPTX import is a heuristic — most slides come through clean, but expect a small handful with obvious breakage: text clipped at the slide edge, overlapping text boxes, white text on a white background, missing or broken images, or a font fallback that wrecks the layout. You can usually tell at a glance. Fix only the obviously broken slides — match the layout of the surrounding slides, do not redesign. Skip cosmetic tweaks; the goal here is "ship without obvious bugs," not "perfect every slide."
34
+ 10. The imported slides are now viewable. Tell the user: "I've imported your deck — it's ready to view. Want me to adjust anything?"
35
+
36
+ Do NOT rebuild or recreate the slides from scratch after import. Apart from the canonical-structure normalization in step 5, the imported components render with full fidelity to the original PPTX layout, positioning, and images — do not restyle them.
37
+
38
+ ## When the user wants adaptation instead of 1:1 import
39
+
40
+ If the user says something like "make my slides more like this deck" or "use this as inspiration", then read the staged slide components in `attached_assets/imported_slides/<safe_filename>/` to understand content and layout, and adapt the existing artifact slides using the standard slide-building workflow in the slides skill. In this mode you do NOT need to copy the staged components into `src/pages/slides/`. This is the exception, not the default — the default import path is 1:1 fidelity via the copy flow above.
@@ -0,0 +1,121 @@
1
+ <visual_qa>
2
+ Final read-through before you tell the user the deck is done. The export view (`/allslides`) and the deployed viewer (`/`) render slides into a fixed 1920x1080 16:9 frame, so the deck must look correct at that size — not at whatever your dev preview happens to be. These are code-level checks done by reading slide JSX; screenshotting is optional.
3
+
4
+ ## /allSlides invariants
5
+
6
+ `/allslides` is the static export view used for thumbnails, PDF, and PPTX. Every slide is rendered into a fixed `1920x1080` box. If a slide overflows there, it overflows on export.
7
+
8
+ Checks:
9
+
10
+ - **Root container classes are exact.** Every slide root must use `w-screen h-screen overflow-hidden relative`. The `[&_.h-screen]:!h-full [&_.w-screen]:!w-full` overrides only fire when those classes are present — `w-full h-full`, `min-h-screen`, or any other variant breaks the export scale-down.
11
+ - **No `.slide` class on the slide component's root.** The scaffold's `/allslides` page wraps each component in a `<div class="slide ...">`, and pid2's thumbnail selector is `.slide`. Putting `.slide` on the component root too makes the selector match 2× the elements (wrapper + root per slide), which mis-pairs thumbnails with manifest ids. If you need a CSS hook on the slide root, name it something specific like `.deck-slide` or `.slide-body` — don't reuse the bare `.slide` name. If the class isn't needed for any CSS rule, just don't add it.
12
+ - **Ensure no `.slide` class anywhere inside the slide component.** The same 1:1 manifest-to-`.slide` mapping breaks if a nested element (not just the root) carries the bare `.slide` class — `/allslides` already contributes one `.slide` wrapper per slide, so any extra match anywhere in the subtree double-counts. Use a specific name (`.deck-slide`, `.slide-body`, etc.) for any internal CSS hook.
13
+ - **No hidden overflow assumptions.** Card grids, multi-column layouts, and bullet lists are the most common offenders. Read the JSX and mentally tally stacked height — the dev preview may be larger than 1080px tall and hide clipping that `/allslides` will reveal.
14
+
15
+ ## 16:9 aspect ratio bounds
16
+
17
+ Every visible element must live inside `100vw x 100vh` (1920x1080).
18
+
19
+ **Padding budget:** a heading + subtitle + 5–8vh edge padding consumes ~25–30vh. That leaves ~65–70vh for content. If your card grid or list items don't fit, you have too many — remove items or split the slide. Never add a "just one more" row that pushes content past the bottom edge.
20
+
21
+ **Bounds checklist:**
22
+
23
+ - No `position: absolute` element extends past `100vh` or `100vw`. If you use `top`/`left`/`right`/`bottom`, verify the element + its content still fits within the viewport.
24
+ - No negative margins that bleed off-screen ("for visual effect").
25
+ - No fixed-width or fixed-height containers in `px` that exceed 1920/1080.
26
+ - No `min-height: 100vh` or `min-width: 100vw` on inner containers — they push the layout past the frame.
27
+ - Mentally sum the stacked height of every direct child of the slide root. It must be ≤ 100vh including all padding and gaps.
28
+
29
+ ## Text scaling integrity
30
+
31
+ Text uses viewport-relative units (`vw`/`vh`) so it scales with the slide, never gets shrunk by the viewer iframe or the export pipeline.
32
+
33
+ **Common pitfalls.** These break text scaling. A few have legitimate uses outside text sizing — use judgment.
34
+
35
+ - **Hardcoded `px` / `pt` / `rem` for body and headline text.** Use `vw` so text scales with the slide. Pixel values are fine for things like 1px borders, small fixed icon sizes, or other non-text decorative dimensions where consistent visual weight matters.
36
+ - **`clamp(...)` with `px` caps on text** (e.g. `clamp(16px, 2vw, 24px)`). On the 1920x1080 export, the px ceiling collapses the text below the viewport-relative size you intended. Prefer pure `vw` for text on slides — the viewer already handles fitting the deck to the user's screen.
37
+ - **`transform: scale(...)` on a slide root or on a text container.** The viewer applies its own transform to fit 1920x1080 to the user's screen; stacking another scale on top compounds it. Decorative `scale` on a non-text element (logo, illustration, icon) is fine.
38
+ - **`overflow: scroll` to "hide" text that overflows the slide frame.** Slides don't scroll. If body text overflows, fix the content. Internal scroll on table/chart containers (per the `<constraints>` allowed-interactive list) is fine — the rule is no scroll on the *slide* itself.
39
+ - **`text-overflow: ellipsis` to truncate slide copy.** Truncated headlines or bullets are a bug, not a feature. Either shorten the text or split the slide. (Ellipsis on data-table cells with bounded width is OK.)
40
+ - **`zoom: ...` on slide content.** Same compounding issue as `transform: scale`, and it doesn't translate to the PPTX export pipeline.
41
+ - **CSS container queries (`cqw`/`cqh`) for text sizing.** The export pipeline doesn't always establish a containment context, so the unit can silently fall back to `0`. Stick to `vw`/`vh` for text.
42
+
43
+ **Floor:** at the 1920x1080 export size, standard body text must render at `2vw+` (aim for `2-2.5vw`). `1.5vw` is the absolute floor for captions, footnotes, attributions, and other detail text only; nothing on the slide may render below `1.5vw`. Read the smallest `vw` value across all slides — if any body text is below `2vw`, or any text at all is below `1.5vw`, raise it.
44
+
45
+ **Long-string trap:** an unbroken word (URL, hash, ID) at large `vw` sizes will overflow horizontally. Break with `overflow-wrap: anywhere` or shorten the string — do not let it punch through the 1920px width.
46
+
47
+ ## Final checks
48
+
49
+ Walk every slide JSX file and apply the checks below. Fix anything that fails.
50
+
51
+ ### Squint test
52
+
53
+ Imagine squinting at each slide. Can you still see the visual hierarchy? If everything blurs into the same level of importance, the hierarchy is too flat. One element should clearly dominate per slide.
54
+
55
+ ### Readability test
56
+
57
+ Is all body text at least `2vw`, with only captions, footnotes, attributions, or detail text allowed down to `1.5vw`? Could someone in the back row of a conference room read every word? If any body text falls below `2vw`, or anything at all falls below `1.5vw`, raise it.
58
+
59
+ ### Consistency test
60
+
61
+ Do slides with similar content use similar layouts and styling? Does the color palette hold across every slide? Does the typography system stay consistent? If the deck looks like five different templates, pick one direction and unify.
62
+
63
+ ### Flow test
64
+
65
+ Read the slide manifest and walk through positions 1 → N. Does it tell a clear story? Do section dividers appear where they should? Does the closing slide feel like a proper ending?
66
+
67
+ ### Brand test
68
+
69
+ For real-company decks: would the company recognize this as "theirs"? Are colors, fonts, and tone aligned with the brand you extracted via `extractBranding` / `webFetch`?
70
+
71
+ ### Content density test
72
+
73
+ Does any slide have more than 6 lines of text or feel like a document page? Split it.
74
+
75
+ ### Whitespace test
76
+
77
+ Does any slide have an entire half that's empty for no reason? Does any slide feel crammed? Balance is the goal — purposeful negative space, not accidental dead zones.
78
+
79
+ ### Image opportunity test
80
+
81
+ Would a searched or generated image make any slide clearer, more memorable, or more visually balanced? If yes, prefer adding and integrating it into the slide layout. Do not force decorative images that don't improve the slide.
82
+
83
+ ### Emoji audit
84
+
85
+ Grep every slide file for emoji characters. If any emoji appears anywhere in the deck — titles, bullets, labels, descriptions — remove it. A single emoji fails the entire deck. Arrows (→), checkmarks (✓), bullets (•), and stars (★) are fine as typographic elements; colorful pictographs are not.
86
+
87
+ ### Overflow test
88
+
89
+ For each slide, mentally sum the stacked height of all direct children (including padding, gaps, headings, and subtitles). It must be ≤ 100vh. Card grids, long bullet lists, and multi-column layouts are the most frequent offenders — if total height exceeds the budget, reduce items, shrink sizing, or split the slide.
90
+
91
+ ### Platform contract sanity check
92
+
93
+ Before telling the user the deck is ready, verify `src/App.tsx` still matches the platform contract. If any of the following are true, the export pipeline will silently time out with `NO_SLIDES_FOUND` after 60 seconds even if the preview looks fine:
94
+
95
+ - `AllSlides` has been renamed, removed, or replaced with a custom component (e.g. one that fetches `/api/pdf/*`, adds a "Download PDF" button, or uses A4 / portrait dimensions).
96
+ - The `.slide` class on the `AllSlides` wrapper has been renamed (to `.print-slide`, `.page`, `.deck-slide`, etc.) or removed entirely.
97
+ - `.slide` wrapper dimensions are not `1920×1080`.
98
+ - The router was swapped from `wouter` to `react-router-dom` or anything else.
99
+ - Either `DO NOT edit` useEffect in `App` has been modified or removed.
100
+
101
+ #### Remediation
102
+
103
+ If `App.tsx` (or its siblings) was hand-edited away from the contract, repair it in place rather than working around the breakage. Map each symptom to its fix:
104
+
105
+ - **`AllSlides` renamed, removed, or replaced** with a custom export / "Download PDF" / print-only component → restore `AllSlides` to the scaffold shape: a `bg-black` outer wrapper, then for each slide a `<div key={slide.id} className="slide relative aspect-video overflow-hidden" style={{ width: "1920px", height: "1080px" }}>` containing an inner `<div className="h-full w-full [&_.h-screen]:!h-full [&_.w-screen]:!w-full">` around `<slide.Component />`. The inner wrapper is required — slide components root themselves in `w-screen h-screen overflow-hidden relative`, and without the `[&_.h-screen]:!h-full [&_.w-screen]:!w-full` overrides the slide will render at viewport size instead of the fixed 1920×1080 export box. Delete any custom `/api/pdf/*` fetch, download button, or print-layout UI that replaced it.
106
+ - **`.slide` class renamed** (`.print-slide`, `.page`, `.deck-slide`, etc.) → rename it back to bare `.slide`. The class name is the contract; the workspace selects on it directly.
107
+ - **Wrapper dimensions changed** away from 1920×1080 (A4, portrait, custom px values) → set them back to `width: "1920px", height: "1080px"`.
108
+ - **Router swapped** from `wouter` → restore `import { useLocation } from "wouter"` in `App.tsx` and the `wouter` `<Router>` setup in `src/main.tsx`. The parent frame's `navigateToSlide` postMessage relies on wouter's `useLocation` shape.
109
+ - **Either `DO NOT edit` `useEffect` removed or modified** in `App` → restore both:
110
+ - (a) The unknown-route redirect: for any path that isn't `/`, `/allslides`, or a valid `/slideN`, call `navigate(\`/slide${slides[0].position}\`, { replace: true })` — but only when `slides.length > 0`. The empty-manifest guard is required;`SlidesManifestSchema` accepts an empty array, and a literal `slides[0].position` access without it will throw on first load.
111
+ - (b) The `message` listener: when it receives `{ type: "navigateToSlide", position }` and `slides.some((s) => s.position === event.data.position)`, call `navigate(\`/slide${event.data.position}\`)`.
112
+ - **`src/slideLoader.ts` rewritten** (lazy-loaded, dynamic-imported, fetched at runtime) → restore the original module-level slide-loading pattern so `slides` is populated synchronously on import.
113
+
114
+ After repairing, re-run `pnpm run --filter @workspace/<slug> validate-slides` and walk the rest of this checklist again.
115
+
116
+ If the user genuinely wants a custom export, download, or print/PDF UI, do not patch it into this artifact — create a new `react-vite` (web) artifact for that flow (see the `artifacts` skill). The slides artifact's `/allslides` route is reserved for the workspace export pipeline.
117
+
118
+ ### Done criteria
119
+
120
+ Only after all checks above pass do you tell the user the deck is ready.
121
+ </visual_qa>