@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,802 @@
1
+ "use client";
2
+
3
+ import * as React from "react";
4
+ import { tokens } from "@ds/tokens/tokens";
5
+ import { Button } from "@ds/components/button";
6
+ import { Input } from "@ds/components/input";
7
+ import { Textarea } from "@ds/components/textarea";
8
+ import { Label } from "@ds/components/label";
9
+ import { Badge } from "@ds/components/badge";
10
+ import {
11
+ Card,
12
+ CardContent,
13
+ } from "@ds/components/card";
14
+ import { Checkbox } from "@ds/components/checkbox";
15
+ import { RadioGroup, RadioGroupItem } from "@ds/components/radio-group";
16
+ import { Switch } from "@ds/components/switch";
17
+ import { Avatar, AvatarFallback } from "@ds/components/avatar";
18
+ import {
19
+ Dialog,
20
+ DialogContent,
21
+ DialogDescription,
22
+ DialogFooter,
23
+ DialogHeader,
24
+ DialogTitle,
25
+ DialogTrigger,
26
+ } from "@ds/components/dialog";
27
+ import {
28
+ DropdownMenu,
29
+ DropdownMenuContent,
30
+ DropdownMenuItem,
31
+ DropdownMenuLabel,
32
+ DropdownMenuSeparator,
33
+ DropdownMenuTrigger,
34
+ } from "@ds/components/dropdown-menu";
35
+ import { Tabs, TabsContent, TabsList, TabsTrigger } from "@ds/components/tabs";
36
+ import {
37
+ Table,
38
+ TableBody,
39
+ TableCell,
40
+ TableHead,
41
+ TableHeader,
42
+ TableRow,
43
+ } from "@ds/components/table";
44
+ import {
45
+ Select,
46
+ SelectContent,
47
+ SelectItem,
48
+ SelectTrigger,
49
+ SelectValue,
50
+ } from "@ds/components/select";
51
+ import {
52
+ Tooltip,
53
+ TooltipContent,
54
+ TooltipTrigger,
55
+ } from "@ds/components/tooltip";
56
+ import { Separator } from "@ds/components/separator";
57
+ import {
58
+ Breadcrumb,
59
+ BreadcrumbEllipsis,
60
+ BreadcrumbItem,
61
+ BreadcrumbLink,
62
+ BreadcrumbList,
63
+ BreadcrumbPage,
64
+ BreadcrumbSeparator,
65
+ } from "@ds/components/breadcrumb";
66
+ import { Calendar } from "@ds/components/calendar";
67
+ import { DatePicker, DateRangePicker } from "@ds/components/date-picker";
68
+ import {
69
+ FormControl,
70
+ FormDescription,
71
+ FormField,
72
+ FormLabel,
73
+ FormMessage,
74
+ } from "@ds/components/form-field";
75
+ import { toast } from "@ds/hooks/use-toast";
76
+ import { ChevronDown, MoreHorizontal } from "lucide-react";
77
+
78
+ function Section({
79
+ id,
80
+ title,
81
+ description,
82
+ children,
83
+ }: {
84
+ id: string;
85
+ title: string;
86
+ description?: string;
87
+ children: React.ReactNode;
88
+ }) {
89
+ return (
90
+ <section id={id} className="scroll-mt-24 space-y-4">
91
+ <div>
92
+ <h2 className="text-heading-xl">{title}</h2>
93
+ {description && (
94
+ <p className="mt-1 text-body-md text-muted-foreground">{description}</p>
95
+ )}
96
+ </div>
97
+ <Card>
98
+ <CardContent className="space-y-6 pt-6">{children}</CardContent>
99
+ </Card>
100
+ </section>
101
+ );
102
+ }
103
+
104
+ function Row({ label, children }: { label: string; children: React.ReactNode }) {
105
+ return (
106
+ <div className="grid gap-2 sm:grid-cols-[160px_1fr] sm:items-center">
107
+ <div className="text-overline text-muted-foreground">{label}</div>
108
+ <div className="flex flex-wrap items-center gap-3">{children}</div>
109
+ </div>
110
+ );
111
+ }
112
+
113
+ function Swatch({
114
+ name,
115
+ token,
116
+ hex,
117
+ hasBorder = false,
118
+ }: {
119
+ name: string;
120
+ token: string;
121
+ hex: string;
122
+ hasBorder?: boolean;
123
+ }) {
124
+ return (
125
+ <div>
126
+ <div
127
+ className={`h-24 w-full rounded-md ${hasBorder ? "border border-border" : ""}`}
128
+ style={{ background: hex }}
129
+ />
130
+ <div className="mt-3">
131
+ <div className="text-body-md-em">{name}</div>
132
+ <div className="mt-0.5 text-caption text-muted-foreground">
133
+ <span className="font-mono">{token}</span> · {hex}
134
+ </div>
135
+ </div>
136
+ </div>
137
+ );
138
+ }
139
+
140
+ const primaryNavy: Array<{ name: string; token: string; hex: string }> = [
141
+ { name: "Navy 900", token: "--navy-900", hex: tokens.palette.navy900.normal },
142
+ { name: "Navy 800", token: "--navy-800", hex: tokens.palette.navy800 },
143
+ { name: "Navy 600", token: "--navy-600", hex: tokens.palette.navy600 },
144
+ { name: "Navy 200", token: "--navy-200", hex: tokens.palette.navy200 },
145
+ { name: "Navy 50", token: "--navy-50", hex: tokens.palette.navy50 },
146
+ ];
147
+
148
+ const accentOrange: Array<{ name: string; token: string; hex: string }> = [
149
+ { name: "Orange 500", token: "--orange-500", hex: tokens.palette.orange500.normal },
150
+ { name: "Orange 600", token: "--orange-600", hex: tokens.palette.orange600 },
151
+ { name: "Orange 700", token: "--orange-700", hex: tokens.palette.orange700 },
152
+ { name: "Orange 300", token: "--orange-300", hex: tokens.palette.orange300 },
153
+ { name: "Orange 100", token: "--orange-100", hex: tokens.palette.orange100 },
154
+ { name: "Orange 50", token: "--orange-50", hex: tokens.palette.orange50 },
155
+ ];
156
+
157
+ const neutrals: Array<{ name: string; token: string; hex: string; hasBorder?: boolean }> = [
158
+ { name: "White", token: "--white", hex: tokens.palette.white, hasBorder: true },
159
+ { name: "Gray 50", token: "--gray-50", hex: tokens.palette.gray50, hasBorder: true },
160
+ { name: "Gray 100", token: "--gray-100", hex: tokens.palette.gray100, hasBorder: true },
161
+ { name: "Gray 200", token: "--gray-200", hex: tokens.palette.gray200 },
162
+ { name: "Gray 300", token: "--gray-300", hex: tokens.palette.gray300 },
163
+ ];
164
+
165
+ const semanticSwatches: Array<{ name: string; token: string; hex: string; hasBorder?: boolean }> = [
166
+ { name: "brand-primary", token: "--color-brand-primary", hex: tokens.palette.orange500.normal },
167
+ { name: "brand-hover", token: "--color-brand-hover", hex: tokens.palette.orange600 },
168
+ { name: "text-primary", token: "--color-text-primary", hex: tokens.palette.navy900.normal },
169
+ { name: "surface", token: "--color-surface", hex: tokens.palette.white, hasBorder: true },
170
+ { name: "bg-dark", token: "--color-bg-dark", hex: tokens.palette.navy900.normal },
171
+ { name: "success", token: "--color-success", hex: "#22C55E" },
172
+ { name: "error", token: "--color-error", hex: "#EF4444" },
173
+ { name: "info", token: "--color-info", hex: tokens.palette.navy600 },
174
+ ];
175
+
176
+ export default function DesignSystemPage() {
177
+ return (
178
+ <main className="mx-auto max-w-6xl px-6 py-12">
179
+ <header className="mb-10">
180
+ <Badge variant="secondary" className="mb-3">
181
+ Living styleguide
182
+ </Badge>
183
+ <h1 className="text-display-lg">Design System</h1>
184
+ <p className="mt-2 max-w-2xl text-body-lg text-muted-foreground">
185
+ Tokens, breakpoints, and every component with their variants and states.
186
+ The single source of truth for the Invoicing System — Navy 900 + Orange 500
187
+ on Cream 50, set in Poppins.
188
+ </p>
189
+ </header>
190
+
191
+ <nav className="mb-10 flex flex-wrap gap-2">
192
+ {[
193
+ ["palette", "Palette"],
194
+ ["colors", "Semantic roles"],
195
+ ["typography", "Typography"],
196
+ ["spacing", "Spacing"],
197
+ ["radii", "Radii"],
198
+ ["shadows", "Shadows"],
199
+ ["breakpoints", "Breakpoints"],
200
+ ["buttons", "Buttons"],
201
+ ["inputs", "Inputs"],
202
+ ["selection", "Selection"],
203
+ ["badges", "Badges"],
204
+ ["overlays", "Overlays"],
205
+ ["breadcrumbs", "Breadcrumbs"],
206
+ ["calendar", "Calendar"],
207
+ ["tabs", "Tabs"],
208
+ ["table", "Table"],
209
+ ["forms", "Form fields"],
210
+ ["toasts", "Toasts"],
211
+ ].map(([id, label]) => (
212
+ <a
213
+ key={id}
214
+ href={`#${id}`}
215
+ className="rounded-full border bg-card px-3 py-1 text-body-sm text-muted-foreground hover:border-primary/30 hover:text-foreground"
216
+ >
217
+ {label}
218
+ </a>
219
+ ))}
220
+ </nav>
221
+
222
+ <div className="space-y-12">
223
+ <section id="palette" className="scroll-mt-24 space-y-10">
224
+ <div>
225
+ <p className="text-overline text-primary">01 · COLOR</p>
226
+ <h2 className="mt-2 text-display-lg">Tier 1 — Primitive palette</h2>
227
+ <p className="mt-2 text-body-md text-muted-foreground">
228
+ Raw scale values. Never reference these directly in components —
229
+ always alias through a Tier 2 semantic token first.
230
+ </p>
231
+ <Separator className="mt-6" />
232
+ </div>
233
+
234
+ <div className="space-y-4">
235
+ <h3 className="text-heading-md">Primary navy</h3>
236
+ <div className="grid grid-cols-2 gap-6 sm:grid-cols-3 lg:grid-cols-5">
237
+ {primaryNavy.map((s) => (
238
+ <Swatch key={s.token} {...s} />
239
+ ))}
240
+ </div>
241
+ </div>
242
+
243
+ <div className="space-y-4">
244
+ <h3 className="text-heading-md">Accent orange</h3>
245
+ <div className="grid grid-cols-2 gap-6 sm:grid-cols-3 lg:grid-cols-5">
246
+ {accentOrange.map((s) => (
247
+ <Swatch key={s.token} {...s} />
248
+ ))}
249
+ </div>
250
+ </div>
251
+
252
+ <div className="space-y-4">
253
+ <h3 className="text-heading-md">Neutrals</h3>
254
+ <div className="grid grid-cols-2 gap-6 sm:grid-cols-3 lg:grid-cols-5">
255
+ {neutrals.map((s) => (
256
+ <Swatch key={s.token} {...s} />
257
+ ))}
258
+ </div>
259
+ </div>
260
+ </section>
261
+
262
+ <section id="colors" className="scroll-mt-24 space-y-6">
263
+ <div>
264
+ <h2 className="text-display-lg">Tier 2 — Semantic color roles</h2>
265
+ <p className="mt-2 text-body-md text-muted-foreground">
266
+ These are the tokens you reference when building new components.
267
+ </p>
268
+ <Separator className="mt-6" />
269
+ </div>
270
+ <div className="grid grid-cols-2 gap-6 sm:grid-cols-3 lg:grid-cols-5">
271
+ {semanticSwatches.map((s) => (
272
+ <Swatch key={s.token} {...s} />
273
+ ))}
274
+ </div>
275
+ </section>
276
+
277
+ <Section
278
+ id="typography"
279
+ title="Typography"
280
+ description="Poppins for UI, JetBrains Mono for code. Sizes scale responsively at md (768px) and lg (1024px)."
281
+ >
282
+ <div className="divide-y divide-border">
283
+ {(
284
+ [
285
+ ["text-display-hero", "Smarter Accounting", "display/hero", "53 / 72 · Bold · −0.5", "Website hero"],
286
+ ["text-display-lg", "Why businesses trust us", "display/lg", "32 / 44 · SemiBold · −0.3", "Website sections"],
287
+ ["text-heading-xl", "Client overview", "heading/xl", "24 / 34 · SemiBold", "Page titles"],
288
+ ["text-heading-lg", "Outstanding invoices", "heading/lg", "20 / 30 · Medium", "Card headers, modals"],
289
+ ["text-heading-md", "Tax registration info", "heading/md", "16 / 24 · Medium", "Subsections, groups"],
290
+ ["text-body-lg", "We handle the complexity of UAE compliance so you can focus on growth.", "body/lg", "16 / 26 · Regular", "Website body"],
291
+ ["text-body-md", "Bank reconciliation completed for Aurora Global Holdings. 47 transactions matched.", "body/md", "14 / 22 · Regular", "Portal + PMS default"],
292
+ ["text-body-md-em", "AED 142,500.00", "body/md-emphasis", "14 / 22 · Medium", "Active states, key values"],
293
+ ["text-body-sm", "Last updated 2 hours ago · Modified by Munees", "body/sm", "13 / 20 · Regular", "Timestamps, metadata"],
294
+ ["text-caption", "VAT filed · CT pending · AML compliant", "caption", "12 / 18 · Regular", "Tags, badges, footnotes"],
295
+ ["text-overline", "Client name · Status · Due date · Amount", "overline", "11 / 16 · SemiBold · +0.5 · UPPER", "Table headers, form labels"],
296
+ ["text-metric-lg", "97.3%", "metric/lg", "28 / 38 · SemiBold", "Hero numbers, KPIs"],
297
+ ] as const
298
+ ).map(([cls, sample, name, specs, usage]) => (
299
+ <div
300
+ key={name}
301
+ className="grid grid-cols-1 items-center gap-4 py-5 md:grid-cols-[180px_1fr_220px]"
302
+ >
303
+ <div>
304
+ <p className="text-body-md-em">{name}</p>
305
+ <p className="text-caption text-muted-foreground">{usage}</p>
306
+ </div>
307
+ <p className={cls}>{sample}</p>
308
+ <p className="text-caption text-muted-foreground md:text-right">{specs}</p>
309
+ </div>
310
+ ))}
311
+ <div className="grid grid-cols-1 items-center gap-4 py-5 md:grid-cols-[180px_1fr_220px]">
312
+ <div>
313
+ <p className="text-body-md-em">mono</p>
314
+ <p className="text-caption text-muted-foreground">Code, IDs</p>
315
+ </div>
316
+ <p className="font-mono text-body-md">{`const mono = "JetBrains Mono"`}</p>
317
+ <p className="text-caption text-muted-foreground md:text-right">JetBrains Mono</p>
318
+ </div>
319
+ </div>
320
+ </Section>
321
+
322
+ <Section id="spacing" title="Spacing" description="Base scale used across layouts.">
323
+ <div className="flex flex-wrap items-end gap-6">
324
+ {Object.entries(tokens.spacing).map(([k, v]) => (
325
+ <div key={k} className="text-center">
326
+ <div
327
+ className="rounded border border-primary/30 bg-primary/20"
328
+ style={{ width: v, height: v, minWidth: 4, minHeight: 4 }}
329
+ />
330
+ <div className="mt-2 text-caption text-muted-foreground">
331
+ {k} · {v}
332
+ </div>
333
+ </div>
334
+ ))}
335
+ </div>
336
+ </Section>
337
+
338
+ <Section id="radii" title="Radii">
339
+ <div className="flex flex-wrap gap-4">
340
+ {["rounded-sm", "rounded-md", "rounded-lg", "rounded-full"].map((cls) => (
341
+ <div key={cls} className="text-center">
342
+ <div className={`h-16 w-16 border border-primary/30 bg-primary/15 ${cls}`} />
343
+ <div className="mt-2 text-caption text-muted-foreground">{cls}</div>
344
+ </div>
345
+ ))}
346
+ </div>
347
+ </Section>
348
+
349
+ <Section id="shadows" title="Shadows">
350
+ <div className="grid gap-4 sm:grid-cols-2 lg:grid-cols-4">
351
+ {(["sm", "md", "lg", "xl"] as const).map((s) => (
352
+ <div
353
+ key={s}
354
+ className={`flex h-24 items-center justify-center rounded-lg border bg-card text-body-sm text-muted-foreground shadow-ds-${s}`}
355
+ >
356
+ shadow-ds-{s}
357
+ </div>
358
+ ))}
359
+ </div>
360
+ </Section>
361
+
362
+ <Section id="breakpoints" title="Breakpoints" description="Tailwind screens consumed across the app.">
363
+ <Table>
364
+ <TableHeader>
365
+ <TableRow>
366
+ <TableHead>Token</TableHead>
367
+ <TableHead>Min width</TableHead>
368
+ <TableHead>Use for</TableHead>
369
+ </TableRow>
370
+ </TableHeader>
371
+ <TableBody>
372
+ {Object.entries(tokens.breakpoints).map(([k, v]) => (
373
+ <TableRow key={k}>
374
+ <TableCell className="font-mono">{k}</TableCell>
375
+ <TableCell>{v}</TableCell>
376
+ <TableCell className="text-muted-foreground">
377
+ {k === "sm" && "Large phones"}
378
+ {k === "md" && "Tablets"}
379
+ {k === "lg" && "Small laptops"}
380
+ {k === "xl" && "Desktops"}
381
+ {k === "2xl" && "Wide displays"}
382
+ </TableCell>
383
+ </TableRow>
384
+ ))}
385
+ </TableBody>
386
+ </Table>
387
+ </Section>
388
+
389
+ <Section id="buttons" title="Buttons">
390
+ <Row label="Variant">
391
+ <Button>Default</Button>
392
+ <Button variant="secondary">Secondary</Button>
393
+ <Button variant="outline">Outline</Button>
394
+ <Button variant="ghost">Ghost</Button>
395
+ <Button variant="link">Link</Button>
396
+ <Button variant="destructive">Destructive</Button>
397
+ </Row>
398
+ <Row label="Size">
399
+ <Button size="sm">Small</Button>
400
+ <Button>Default</Button>
401
+ <Button size="lg">Large</Button>
402
+ <Button size="icon" aria-label="more">
403
+ <MoreHorizontal />
404
+ </Button>
405
+ </Row>
406
+ <Row label="State">
407
+ <Button disabled>Disabled</Button>
408
+ <Button>
409
+ <ChevronDown />
410
+ With icon
411
+ </Button>
412
+ </Row>
413
+ </Section>
414
+
415
+ <Section id="inputs" title="Inputs">
416
+ <div className="grid gap-4 sm:grid-cols-2">
417
+ <div className="space-y-2">
418
+ <Label htmlFor="email">Email</Label>
419
+ <Input id="email" type="email" placeholder="you@company.com" />
420
+ </div>
421
+ <div className="space-y-2">
422
+ <Label htmlFor="company">Company</Label>
423
+ <Input id="company" placeholder="Acme Inc." />
424
+ </div>
425
+ <div className="space-y-2">
426
+ <Label htmlFor="disabled">Disabled</Label>
427
+ <Input id="disabled" disabled value="locked" />
428
+ </div>
429
+ <div className="space-y-2">
430
+ <Label htmlFor="plan">Plan</Label>
431
+ <Select>
432
+ <SelectTrigger id="plan">
433
+ <SelectValue placeholder="Select a plan" />
434
+ </SelectTrigger>
435
+ <SelectContent>
436
+ <SelectItem value="starter">Starter</SelectItem>
437
+ <SelectItem value="growth">Growth</SelectItem>
438
+ <SelectItem value="scale">Scale</SelectItem>
439
+ </SelectContent>
440
+ </Select>
441
+ </div>
442
+ <div className="space-y-2 sm:col-span-2">
443
+ <Label htmlFor="notes">Notes</Label>
444
+ <Textarea id="notes" placeholder="Add a note for the invoice…" />
445
+ </div>
446
+ </div>
447
+ </Section>
448
+
449
+ <Section id="selection" title="Selection controls">
450
+ <Row label="Checkbox">
451
+ <div className="flex items-center gap-2">
452
+ <Checkbox id="c1" defaultChecked /> <Label htmlFor="c1">Checked</Label>
453
+ </div>
454
+ <div className="flex items-center gap-2">
455
+ <Checkbox id="c2" /> <Label htmlFor="c2">Unchecked</Label>
456
+ </div>
457
+ <div className="flex items-center gap-2">
458
+ <Checkbox id="c3" disabled /> <Label htmlFor="c3">Disabled</Label>
459
+ </div>
460
+ </Row>
461
+ <Row label="Radio">
462
+ <RadioGroup defaultValue="monthly" className="flex gap-4">
463
+ <div className="flex items-center gap-2">
464
+ <RadioGroupItem id="r1" value="monthly" />
465
+ <Label htmlFor="r1">Monthly</Label>
466
+ </div>
467
+ <div className="flex items-center gap-2">
468
+ <RadioGroupItem id="r2" value="yearly" />
469
+ <Label htmlFor="r2">Yearly</Label>
470
+ </div>
471
+ </RadioGroup>
472
+ </Row>
473
+ <Row label="Switch">
474
+ <div className="flex items-center gap-2">
475
+ <Switch id="s1" defaultChecked />
476
+ <Label htmlFor="s1">Notifications</Label>
477
+ </div>
478
+ <div className="flex items-center gap-2">
479
+ <Switch id="s2" />
480
+ <Label htmlFor="s2">Beta features</Label>
481
+ </div>
482
+ </Row>
483
+ <Row label="Avatar">
484
+ <Avatar>
485
+ <AvatarFallback>SA</AvatarFallback>
486
+ </Avatar>
487
+ <Avatar className="h-12 w-12">
488
+ <AvatarFallback>JD</AvatarFallback>
489
+ </Avatar>
490
+ </Row>
491
+ </Section>
492
+
493
+ <Section id="badges" title="Badges">
494
+ <div className="flex flex-wrap gap-2">
495
+ <Badge>Default</Badge>
496
+ <Badge variant="secondary">Secondary</Badge>
497
+ <Badge variant="success">Paid</Badge>
498
+ <Badge variant="warning">Pending</Badge>
499
+ <Badge variant="destructive">Overdue</Badge>
500
+ <Badge variant="info">Draft</Badge>
501
+ <Badge variant="outline">Outline</Badge>
502
+ </div>
503
+ </Section>
504
+
505
+ <Section id="overlays" title="Overlays">
506
+ <Row label="Dialog">
507
+ <Dialog>
508
+ <DialogTrigger asChild>
509
+ <Button variant="outline">Open dialog</Button>
510
+ </DialogTrigger>
511
+ <DialogContent>
512
+ <DialogHeader>
513
+ <DialogTitle>Send invoice</DialogTitle>
514
+ <DialogDescription>
515
+ A confirmation email will be sent to the client.
516
+ </DialogDescription>
517
+ </DialogHeader>
518
+ <DialogFooter>
519
+ <Button variant="outline">Cancel</Button>
520
+ <Button>Send</Button>
521
+ </DialogFooter>
522
+ </DialogContent>
523
+ </Dialog>
524
+ </Row>
525
+ <Row label="Dropdown">
526
+ <DropdownMenu>
527
+ <DropdownMenuTrigger asChild>
528
+ <Button variant="outline">
529
+ Actions
530
+ <ChevronDown />
531
+ </Button>
532
+ </DropdownMenuTrigger>
533
+ <DropdownMenuContent align="start">
534
+ <DropdownMenuLabel>Invoice</DropdownMenuLabel>
535
+ <DropdownMenuItem>View</DropdownMenuItem>
536
+ <DropdownMenuItem>Duplicate</DropdownMenuItem>
537
+ <DropdownMenuSeparator />
538
+ <DropdownMenuItem className="text-destructive">Delete</DropdownMenuItem>
539
+ </DropdownMenuContent>
540
+ </DropdownMenu>
541
+ </Row>
542
+ <Row label="Tooltip">
543
+ <Tooltip>
544
+ <TooltipTrigger asChild>
545
+ <Button variant="ghost">Hover me</Button>
546
+ </TooltipTrigger>
547
+ <TooltipContent>Shows context</TooltipContent>
548
+ </Tooltip>
549
+ </Row>
550
+ </Section>
551
+
552
+ <Section
553
+ id="breadcrumbs"
554
+ title="Breadcrumbs"
555
+ description="Show the user's location in the navigation hierarchy. Place above the page title."
556
+ >
557
+ <Row label="Default">
558
+ <Breadcrumb>
559
+ <BreadcrumbList>
560
+ <BreadcrumbItem>
561
+ <BreadcrumbLink href="#">Home</BreadcrumbLink>
562
+ </BreadcrumbItem>
563
+ <BreadcrumbSeparator />
564
+ <BreadcrumbItem>
565
+ <BreadcrumbLink href="#">Invoices</BreadcrumbLink>
566
+ </BreadcrumbItem>
567
+ <BreadcrumbSeparator />
568
+ <BreadcrumbItem>
569
+ <BreadcrumbPage>INV-1042</BreadcrumbPage>
570
+ </BreadcrumbItem>
571
+ </BreadcrumbList>
572
+ </Breadcrumb>
573
+ </Row>
574
+ <Row label="Dot separator">
575
+ <Breadcrumb>
576
+ <BreadcrumbList>
577
+ <BreadcrumbItem>
578
+ <BreadcrumbLink href="#">Home</BreadcrumbLink>
579
+ </BreadcrumbItem>
580
+ <BreadcrumbSeparator>·</BreadcrumbSeparator>
581
+ <BreadcrumbItem>
582
+ <BreadcrumbLink href="#">Clients</BreadcrumbLink>
583
+ </BreadcrumbItem>
584
+ <BreadcrumbSeparator>·</BreadcrumbSeparator>
585
+ <BreadcrumbItem>
586
+ <BreadcrumbPage>Acme Inc.</BreadcrumbPage>
587
+ </BreadcrumbItem>
588
+ </BreadcrumbList>
589
+ </Breadcrumb>
590
+ </Row>
591
+ <Row label="Truncated">
592
+ <Breadcrumb>
593
+ <BreadcrumbList>
594
+ <BreadcrumbItem>
595
+ <BreadcrumbLink href="#">Home</BreadcrumbLink>
596
+ </BreadcrumbItem>
597
+ <BreadcrumbSeparator />
598
+ <BreadcrumbItem>
599
+ <BreadcrumbEllipsis />
600
+ </BreadcrumbItem>
601
+ <BreadcrumbSeparator />
602
+ <BreadcrumbItem>
603
+ <BreadcrumbLink href="#">Invoices</BreadcrumbLink>
604
+ </BreadcrumbItem>
605
+ <BreadcrumbSeparator />
606
+ <BreadcrumbItem>
607
+ <BreadcrumbPage>INV-1042</BreadcrumbPage>
608
+ </BreadcrumbItem>
609
+ </BreadcrumbList>
610
+ </Breadcrumb>
611
+ </Row>
612
+ <Row label="With dropdown">
613
+ <Breadcrumb>
614
+ <BreadcrumbList>
615
+ <BreadcrumbItem>
616
+ <BreadcrumbLink href="#">Home</BreadcrumbLink>
617
+ </BreadcrumbItem>
618
+ <BreadcrumbSeparator />
619
+ <BreadcrumbItem>
620
+ <DropdownMenu>
621
+ <DropdownMenuTrigger className="inline-flex items-center gap-1 rounded-sm text-muted-foreground transition-colors hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2">
622
+ Invoices
623
+ <ChevronDown className="h-3.5 w-3.5" />
624
+ </DropdownMenuTrigger>
625
+ <DropdownMenuContent align="start">
626
+ <DropdownMenuItem>All invoices</DropdownMenuItem>
627
+ <DropdownMenuItem>Drafts</DropdownMenuItem>
628
+ <DropdownMenuItem>Overdue</DropdownMenuItem>
629
+ </DropdownMenuContent>
630
+ </DropdownMenu>
631
+ </BreadcrumbItem>
632
+ <BreadcrumbSeparator />
633
+ <BreadcrumbItem>
634
+ <BreadcrumbPage>INV-1042</BreadcrumbPage>
635
+ </BreadcrumbItem>
636
+ </BreadcrumbList>
637
+ </Breadcrumb>
638
+ </Row>
639
+ </Section>
640
+
641
+ <Section
642
+ id="calendar"
643
+ title="Calendar"
644
+ description="Date and date-range pickers built on react-day-picker. Themed from semantic tokens — flips automatically for dark mode."
645
+ >
646
+ <Row label="Inline · single">
647
+ <div className="rounded-md border bg-card">
648
+ <Calendar mode="single" />
649
+ </div>
650
+ </Row>
651
+ <Row label="Inline · range">
652
+ <div className="rounded-md border bg-card">
653
+ <Calendar mode="range" numberOfMonths={2} />
654
+ </div>
655
+ </Row>
656
+ <Row label="Trigger · single">
657
+ <DatePicker placeholder="Issue date" />
658
+ <p className="text-body-sm text-muted-foreground">
659
+ Click to open. Closes on selection.
660
+ </p>
661
+ </Row>
662
+ <Row label="Trigger · range">
663
+ <DateRangePicker placeholder="Filter by date range" />
664
+ <p className="text-body-sm text-muted-foreground">
665
+ Closes once both ends are chosen.
666
+ </p>
667
+ </Row>
668
+ </Section>
669
+
670
+ <Section id="tabs" title="Tabs">
671
+ <Tabs defaultValue="overview" className="w-full">
672
+ <TabsList>
673
+ <TabsTrigger value="overview">Overview</TabsTrigger>
674
+ <TabsTrigger value="activity">Activity</TabsTrigger>
675
+ <TabsTrigger value="settings">Settings</TabsTrigger>
676
+ </TabsList>
677
+ <TabsContent value="overview">
678
+ <p className="text-body-md text-muted-foreground">Overview content.</p>
679
+ </TabsContent>
680
+ <TabsContent value="activity">
681
+ <p className="text-body-md text-muted-foreground">Activity content.</p>
682
+ </TabsContent>
683
+ <TabsContent value="settings">
684
+ <p className="text-body-md text-muted-foreground">Settings content.</p>
685
+ </TabsContent>
686
+ </Tabs>
687
+ </Section>
688
+
689
+ <Section id="table" title="Table">
690
+ <Table>
691
+ <TableHeader>
692
+ <TableRow>
693
+ <TableHead>Invoice</TableHead>
694
+ <TableHead>Client</TableHead>
695
+ <TableHead>Status</TableHead>
696
+ <TableHead className="text-right">Total</TableHead>
697
+ </TableRow>
698
+ </TableHeader>
699
+ <TableBody>
700
+ <TableRow>
701
+ <TableCell className="font-mono">INV-0001</TableCell>
702
+ <TableCell>Acme Inc.</TableCell>
703
+ <TableCell><Badge variant="success">Paid</Badge></TableCell>
704
+ <TableCell className="text-right">$1,240.00</TableCell>
705
+ </TableRow>
706
+ <TableRow>
707
+ <TableCell className="font-mono">INV-0002</TableCell>
708
+ <TableCell>Globex</TableCell>
709
+ <TableCell><Badge variant="warning">Pending</Badge></TableCell>
710
+ <TableCell className="text-right">$580.00</TableCell>
711
+ </TableRow>
712
+ <TableRow>
713
+ <TableCell className="font-mono">INV-0003</TableCell>
714
+ <TableCell>Initech</TableCell>
715
+ <TableCell><Badge variant="destructive">Overdue</Badge></TableCell>
716
+ <TableCell className="text-right">$3,120.00</TableCell>
717
+ </TableRow>
718
+ </TableBody>
719
+ </Table>
720
+ </Section>
721
+
722
+ <Section
723
+ id="forms"
724
+ title="Form fields"
725
+ description="A consistent wrapper that pairs a label, control, helper, and error message."
726
+ >
727
+ <div className="grid gap-6 sm:grid-cols-2">
728
+ <FormField>
729
+ <FormLabel htmlFor="ff-email" required>
730
+ Work email
731
+ </FormLabel>
732
+ <FormControl>
733
+ <Input id="ff-email" type="email" placeholder="you@company.com" />
734
+ </FormControl>
735
+ <FormDescription>We&apos;ll use this to send invoice receipts.</FormDescription>
736
+ </FormField>
737
+
738
+ <FormField>
739
+ <FormLabel htmlFor="ff-tax" required>
740
+ Tax ID
741
+ </FormLabel>
742
+ <FormControl>
743
+ <Input id="ff-tax" defaultValue="12-345" aria-invalid />
744
+ </FormControl>
745
+ <FormMessage>Tax ID must be 9 digits.</FormMessage>
746
+ </FormField>
747
+ </div>
748
+ </Section>
749
+
750
+ <Section
751
+ id="toasts"
752
+ title="Toasts"
753
+ description="Non-blocking notifications. Trigger with `toast({...})`."
754
+ >
755
+ <Row label="Variants">
756
+ <Button
757
+ variant="outline"
758
+ onClick={() =>
759
+ toast({
760
+ title: "Invoice saved",
761
+ description: "Draft INV-1043 is in your invoices list.",
762
+ })
763
+ }
764
+ >
765
+ Default
766
+ </Button>
767
+ <Button
768
+ variant="outline"
769
+ onClick={() =>
770
+ toast({
771
+ variant: "success",
772
+ title: "Payment received",
773
+ description: "$1,200 from Hooli has been recorded.",
774
+ })
775
+ }
776
+ >
777
+ Success
778
+ </Button>
779
+ <Button
780
+ variant="outline"
781
+ onClick={() =>
782
+ toast({
783
+ variant: "destructive",
784
+ title: "Send failed",
785
+ description: "We couldn't reach the recipient. Try again.",
786
+ })
787
+ }
788
+ >
789
+ Destructive
790
+ </Button>
791
+ </Row>
792
+ </Section>
793
+
794
+ <Separator />
795
+ <p className="pb-12 text-center text-caption text-muted-foreground">
796
+ End of styleguide · {Object.keys(tokens.breakpoints).length} breakpoints ·{" "}
797
+ {semanticSwatches.length} semantic roles
798
+ </p>
799
+ </div>
800
+ </main>
801
+ );
802
+ }