@promakeai/cli 0.3.2 → 0.3.3

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 (113) hide show
  1. package/dist/index.js +415 -209
  2. package/dist/registry/about-page.json +3 -3
  3. package/dist/registry/about-section.json +4 -4
  4. package/dist/registry/animations.json +2 -2
  5. package/dist/registry/announcement-bar.json +4 -4
  6. package/dist/registry/api.json +1 -1
  7. package/dist/registry/auth-core.json +3 -3
  8. package/dist/registry/auth.json +70 -0
  9. package/dist/registry/bento-grid-section.json +4 -4
  10. package/dist/registry/blog-core.json +5 -5
  11. package/dist/registry/blog-list-page.json +3 -3
  12. package/dist/registry/blog-section.json +4 -4
  13. package/dist/registry/cards-carousel-section.json +4 -4
  14. package/dist/registry/cart-drawer.json +3 -3
  15. package/dist/registry/cart-page.json +3 -3
  16. package/dist/registry/case-study-page.json +3 -3
  17. package/dist/registry/category-section.json +3 -3
  18. package/dist/registry/checkout-page.json +3 -3
  19. package/dist/registry/coming-soon-page-minimal.json +4 -4
  20. package/dist/registry/coming-soon-page.json +4 -4
  21. package/dist/registry/contact-info-grid.json +4 -4
  22. package/dist/registry/contact-page-centered.json +4 -4
  23. package/dist/registry/contact-page-split.json +4 -4
  24. package/dist/registry/contact-page.json +3 -3
  25. package/dist/registry/content-section.json +4 -4
  26. package/dist/registry/cookie-consent.json +4 -4
  27. package/dist/registry/cookies-page.json +3 -3
  28. package/dist/registry/cta-section.json +3 -3
  29. package/dist/registry/docs/reset-password-page.md +36 -0
  30. package/dist/registry/ecommerce-core.json +10 -10
  31. package/dist/registry/empty-page.json +3 -3
  32. package/dist/registry/faq-categorized.json +4 -4
  33. package/dist/registry/faq-simple.json +4 -4
  34. package/dist/registry/favorites-blog-block.json +1 -1
  35. package/dist/registry/favorites-blog-page.json +4 -4
  36. package/dist/registry/favorites-ecommerce-block.json +1 -1
  37. package/dist/registry/favorites-ecommerce-page.json +4 -4
  38. package/dist/registry/feature-section.json +3 -3
  39. package/dist/registry/featured-products.json +3 -3
  40. package/dist/registry/footer-detailed.json +4 -4
  41. package/dist/registry/footer-minimal.json +3 -3
  42. package/dist/registry/footer.json +3 -3
  43. package/dist/registry/forgot-password-page-split.json +4 -4
  44. package/dist/registry/forgot-password-page.json +4 -4
  45. package/dist/registry/google-adsense.json +4 -4
  46. package/dist/registry/google-map.json +2 -2
  47. package/dist/registry/header-centered-pill.json +4 -4
  48. package/dist/registry/header-ecommerce.json +3 -3
  49. package/dist/registry/header-mega.json +4 -4
  50. package/dist/registry/header-minimal.json +4 -4
  51. package/dist/registry/header-simple.json +3 -3
  52. package/dist/registry/hero-carousel.json +3 -3
  53. package/dist/registry/hero-cta.json +4 -4
  54. package/dist/registry/hero-gradient.json +4 -4
  55. package/dist/registry/hero-grid.json +4 -4
  56. package/dist/registry/hero-profile.json +3 -3
  57. package/dist/registry/hero.json +3 -3
  58. package/dist/registry/landing-page-app.json +3 -3
  59. package/dist/registry/landing-page-saas.json +3 -3
  60. package/dist/registry/login-page-split.json +4 -4
  61. package/dist/registry/login-page.json +4 -4
  62. package/dist/registry/logo-cloud.json +4 -4
  63. package/dist/registry/masonry-grid.json +3 -3
  64. package/dist/registry/my-orders-page.json +4 -4
  65. package/dist/registry/newsletter-section.json +4 -4
  66. package/dist/registry/order-card-compact.json +1 -1
  67. package/dist/registry/order-confirmation-page.json +4 -4
  68. package/dist/registry/order-detail-block.json +1 -1
  69. package/dist/registry/orders-list-block.json +1 -1
  70. package/dist/registry/payment-success-block.json +1 -1
  71. package/dist/registry/portfolio-page.json +4 -4
  72. package/dist/registry/post-card.json +3 -3
  73. package/dist/registry/post-detail-block.json +1 -1
  74. package/dist/registry/post-detail-page.json +4 -4
  75. package/dist/registry/pricing-card.json +3 -3
  76. package/dist/registry/pricing-page.json +4 -4
  77. package/dist/registry/pricing-section.json +4 -4
  78. package/dist/registry/privacy-page.json +3 -3
  79. package/dist/registry/product-card-detailed.json +4 -4
  80. package/dist/registry/product-card-hover.json +4 -4
  81. package/dist/registry/product-card.json +3 -3
  82. package/dist/registry/product-detail-block.json +1 -1
  83. package/dist/registry/product-detail-page.json +4 -4
  84. package/dist/registry/product-detail-section.json +4 -4
  85. package/dist/registry/product-quick-view.json +4 -4
  86. package/dist/registry/products-page.json +3 -3
  87. package/dist/registry/reading-progress.json +4 -4
  88. package/dist/registry/register-page-split.json +4 -4
  89. package/dist/registry/register-page.json +4 -4
  90. package/dist/registry/related-posts-block.json +1 -1
  91. package/dist/registry/related-products-block.json +1 -1
  92. package/dist/registry/reset-password-page-split.json +4 -4
  93. package/dist/registry/reset-password-page.json +39 -0
  94. package/dist/registry/service-card.json +1 -1
  95. package/dist/registry/share-buttons.json +4 -4
  96. package/dist/registry/skill-card.json +1 -1
  97. package/dist/registry/team-page.json +4 -4
  98. package/dist/registry/terms-page.json +3 -3
  99. package/dist/registry/testimonials-carousel.json +4 -4
  100. package/dist/registry/testimonials-grid.json +4 -4
  101. package/dist/registry/timeline-section.json +4 -4
  102. package/dist/registry/video-hero.json +4 -4
  103. package/dist/registry/youtube-embed.json +4 -4
  104. package/package.json +2 -2
  105. package/template/.env +6 -6
  106. package/template/public/_redirects +1 -1
  107. package/template/public/robots.txt +14 -14
  108. package/template/src/components/GoogleAnalytics.tsx +34 -34
  109. package/template/src/components/LanguageSwitcher.tsx +53 -53
  110. package/template/src/components/ScriptInjector.tsx +62 -62
  111. package/template/src/lib/env.ts +19 -19
  112. package/template/src/router.tsx +14 -14
  113. package/template/src/vite-env.d.ts +1 -1
@@ -17,25 +17,25 @@
17
17
  "path": "header-mega/index.ts",
18
18
  "type": "registry:index",
19
19
  "target": "$modules$/header-mega/index.ts",
20
- "content": "export * from './header-mega';\n"
20
+ "content": "export * from './header-mega';\r\n"
21
21
  },
22
22
  {
23
23
  "path": "header-mega/header-mega.tsx",
24
24
  "type": "registry:component",
25
25
  "target": "$modules$/header-mega/header-mega.tsx",
26
- "content": "import { Link } from \"react-router\";\nimport { Book, Menu, Sunset, Trees, Zap } from \"lucide-react\";\nimport { useTranslation } from \"react-i18next\";\nimport { cn } from \"@/lib/utils\";\nimport {\n Accordion,\n AccordionContent,\n AccordionItem,\n AccordionTrigger,\n} from \"@/components/ui/accordion\";\nimport { Button } from \"@/components/ui/button\";\nimport {\n NavigationMenu,\n NavigationMenuContent,\n NavigationMenuItem,\n NavigationMenuLink,\n NavigationMenuList,\n NavigationMenuTrigger,\n} from \"@/components/ui/navigation-menu\";\nimport {\n Sheet,\n SheetContent,\n SheetHeader,\n SheetTitle,\n SheetTrigger,\n} from \"@/components/ui/sheet\";\nimport constants from \"@/constants/constants.json\";\n\ninterface MenuItem {\n title: string;\n url: string;\n description?: string;\n icon?: React.ReactNode;\n items?: MenuItem[];\n}\n\ninterface HeaderMegaProps {\n className?: string;\n}\n\nexport function HeaderMega({ className }: HeaderMegaProps) {\n const { t } = useTranslation(\"header-mega\");\n\n const menu: MenuItem[] = [\n { title: t(\"home\", \"Home\"), url: \"/\" },\n {\n title: t(\"products\", \"Products\"),\n url: \"/products\",\n items: [\n {\n title: t(\"allProducts\", \"All Products\"),\n description: t(\n \"allProductsDesc\",\n \"Browse our complete product catalog\"\n ),\n icon: <Book className=\"h-5 w-5 shrink-0\" />,\n url: \"/products\",\n },\n {\n title: t(\"featured\", \"Featured\"),\n description: t(\n \"featuredDesc\",\n \"Our handpicked selection of top products\"\n ),\n icon: <Trees className=\"h-5 w-5 shrink-0\" />,\n url: \"/products?featured=true\",\n },\n {\n title: t(\"newArrivals\", \"New Arrivals\"),\n description: t(\"newArrivalsDesc\", \"Check out the latest additions\"),\n icon: <Sunset className=\"h-5 w-5 shrink-0\" />,\n url: \"/products?is_new=true\",\n },\n {\n title: t(\"onSale\", \"On Sale\"),\n description: t(\"onSaleDesc\", \"Great deals and special offers\"),\n icon: <Zap className=\"h-5 w-5 shrink-0\" />,\n url: \"/products?on_sale=true\",\n },\n ],\n },\n {\n title: t(\"company\", \"Company\"),\n url: \"#\",\n items: [\n {\n title: t(\"aboutUs\", \"About Us\"),\n description: t(\n \"aboutUsDesc\",\n \"Learn more about our story and mission\"\n ),\n icon: <Trees className=\"h-5 w-5 shrink-0\" />,\n url: \"/about\",\n },\n {\n title: t(\"contact\", \"Contact\"),\n description: t(\"contactDesc\", \"Get in touch with our team\"),\n icon: <Sunset className=\"h-5 w-5 shrink-0\" />,\n url: \"/contact\",\n },\n {\n title: t(\"blog\", \"Blog\"),\n description: t(\"blogDesc\", \"Read our latest articles and updates\"),\n icon: <Book className=\"h-5 w-5 shrink-0\" />,\n url: \"/blog\",\n },\n ],\n },\n ];\n\n const renderMenuItem = (item: MenuItem) => {\n if (item.items) {\n return (\n <NavigationMenuItem key={item.title}>\n <NavigationMenuTrigger>{item.title}</NavigationMenuTrigger>\n <NavigationMenuContent className=\"z-50 bg-popover text-popover-foreground\">\n {item.items.map((subItem) => (\n <NavigationMenuLink asChild key={subItem.title} className=\"w-80\">\n <SubMenuLink item={subItem} />\n </NavigationMenuLink>\n ))}\n </NavigationMenuContent>\n </NavigationMenuItem>\n );\n }\n\n return (\n <NavigationMenuItem key={item.title}>\n <NavigationMenuLink asChild>\n <Link\n to={item.url}\n className=\"group inline-flex h-10 w-max items-center justify-center rounded-md bg-background px-4 py-2 text-sm font-medium transition-colors hover:bg-muted hover:text-accent-foreground\"\n >\n {item.title}\n </Link>\n </NavigationMenuLink>\n </NavigationMenuItem>\n );\n };\n\n const renderMobileMenuItem = (item: MenuItem) => {\n if (item.items) {\n return (\n <AccordionItem\n key={item.title}\n value={item.title}\n className=\"border-b-0\"\n >\n <AccordionTrigger className=\"text-md py-0 font-semibold hover:no-underline\">\n {item.title}\n </AccordionTrigger>\n <AccordionContent className=\"mt-2\">\n {item.items.map((subItem) => (\n <SubMenuLink key={subItem.title} item={subItem} />\n ))}\n </AccordionContent>\n </AccordionItem>\n );\n }\n\n return (\n <Link key={item.title} to={item.url} className=\"text-md font-semibold\">\n {item.title}\n </Link>\n );\n };\n\n return (\n <header\n className={cn(\n \"relative z-50 py-4 border-b bg-background/95 backdrop-blur supports-[backdrop-filter]:bg-background/60 overflow-visible\",\n className\n )}\n >\n <div className=\"container max-w-7xl mx-auto px-4\">\n {/* Desktop Menu */}\n <nav className=\"hidden items-center justify-between lg:flex overflow-visible\">\n <div className=\"flex items-center gap-6\">\n {/* Logo */}\n <Link to=\"/\" className=\"flex items-center gap-2\">\n <img\n src=\"/images/logo.png\"\n className=\"h-8 w-auto\"\n alt={constants.site.name}\n onError={(e) => {\n e.currentTarget.style.display = \"none\";\n }}\n />\n <span className=\"text-lg font-semibold tracking-tight\">\n {constants.site.name}\n </span>\n </Link>\n <div className=\"flex items-center\">\n <NavigationMenu>\n <NavigationMenuList>\n {menu.map((item) => renderMenuItem(item))}\n </NavigationMenuList>\n </NavigationMenu>\n </div>\n </div>\n <div className=\"flex gap-2\">\n <Button asChild variant=\"outline\" size=\"sm\">\n <Link to=\"/login\">{t(\"login\", \"Login\")}</Link>\n </Button>\n <Button asChild size=\"sm\">\n <Link to=\"/register\">{t(\"signup\", \"Sign up\")}</Link>\n </Button>\n </div>\n </nav>\n\n {/* Mobile Menu */}\n <div className=\"block lg:hidden\">\n <div className=\"flex items-center justify-between\">\n {/* Logo */}\n <Link to=\"/\" className=\"flex items-center gap-2\">\n <img\n src=\"/images/logo.png\"\n className=\"h-8 w-auto\"\n alt={constants.site.name}\n onError={(e) => {\n e.currentTarget.style.display = \"none\";\n }}\n />\n <span className=\"text-lg font-semibold tracking-tight\">\n {constants.site.name}\n </span>\n </Link>\n <Sheet>\n <SheetTrigger asChild>\n <Button variant=\"outline\" size=\"icon\">\n <Menu className=\"h-4 w-4\" />\n </Button>\n </SheetTrigger>\n <SheetContent className=\"z-50 overflow-y-auto px-6\">\n <SheetHeader>\n <SheetTitle>\n <Link to=\"/\" className=\"flex items-center gap-2\">\n <img\n src=\"/images/logo.png\"\n className=\"h-8 w-auto\"\n alt={constants.site.name}\n onError={(e) => {\n e.currentTarget.style.display = \"none\";\n }}\n />\n </Link>\n </SheetTitle>\n </SheetHeader>\n <div className=\"flex flex-col gap-6 p-4\">\n <Accordion\n type=\"single\"\n collapsible\n className=\"flex w-full flex-col gap-4\"\n >\n {menu.map((item) => renderMobileMenuItem(item))}\n </Accordion>\n\n <div className=\"flex flex-col gap-3\">\n <Button asChild variant=\"outline\">\n <Link to=\"/login\">{t(\"login\", \"Login\")}</Link>\n </Button>\n <Button asChild>\n <Link to=\"/register\">{t(\"signup\", \"Sign up\")}</Link>\n </Button>\n </div>\n </div>\n </SheetContent>\n </Sheet>\n </div>\n </div>\n </div>\n </header>\n );\n}\n\nfunction SubMenuLink({ item }: { item: MenuItem }) {\n return (\n <Link\n to={item.url}\n className=\"flex min-w-80 flex-row gap-4 rounded-md p-3 leading-none no-underline transition-colors outline-none select-none hover:bg-muted hover:text-accent-foreground\"\n >\n <div className=\"text-foreground\">{item.icon}</div>\n <div>\n <div className=\"text-sm font-semibold\">{item.title}</div>\n {item.description && (\n <p className=\"text-sm leading-snug text-muted-foreground\">\n {item.description}\n </p>\n )}\n </div>\n </Link>\n );\n}\n"
26
+ "content": "import { Link } from \"react-router\";\r\nimport { Book, Menu, Sunset, Trees, Zap } from \"lucide-react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { cn } from \"@/lib/utils\";\r\nimport {\r\n Accordion,\r\n AccordionContent,\r\n AccordionItem,\r\n AccordionTrigger,\r\n} from \"@/components/ui/accordion\";\r\nimport { Button } from \"@/components/ui/button\";\r\nimport {\r\n NavigationMenu,\r\n NavigationMenuContent,\r\n NavigationMenuItem,\r\n NavigationMenuLink,\r\n NavigationMenuList,\r\n NavigationMenuTrigger,\r\n} from \"@/components/ui/navigation-menu\";\r\nimport {\r\n Sheet,\r\n SheetContent,\r\n SheetHeader,\r\n SheetTitle,\r\n SheetTrigger,\r\n} from \"@/components/ui/sheet\";\r\nimport constants from \"@/constants/constants.json\";\r\n\r\ninterface MenuItem {\r\n title: string;\r\n url: string;\r\n description?: string;\r\n icon?: React.ReactNode;\r\n items?: MenuItem[];\r\n}\r\n\r\ninterface HeaderMegaProps {\r\n className?: string;\r\n}\r\n\r\nexport function HeaderMega({ className }: HeaderMegaProps) {\r\n const { t } = useTranslation(\"header-mega\");\r\n\r\n const menu: MenuItem[] = [\r\n { title: t(\"home\", \"Home\"), url: \"/\" },\r\n {\r\n title: t(\"products\", \"Products\"),\r\n url: \"/products\",\r\n items: [\r\n {\r\n title: t(\"allProducts\", \"All Products\"),\r\n description: t(\r\n \"allProductsDesc\",\r\n \"Browse our complete product catalog\"\r\n ),\r\n icon: <Book className=\"h-5 w-5 shrink-0\" />,\r\n url: \"/products\",\r\n },\r\n {\r\n title: t(\"featured\", \"Featured\"),\r\n description: t(\r\n \"featuredDesc\",\r\n \"Our handpicked selection of top products\"\r\n ),\r\n icon: <Trees className=\"h-5 w-5 shrink-0\" />,\r\n url: \"/products?featured=true\",\r\n },\r\n {\r\n title: t(\"newArrivals\", \"New Arrivals\"),\r\n description: t(\"newArrivalsDesc\", \"Check out the latest additions\"),\r\n icon: <Sunset className=\"h-5 w-5 shrink-0\" />,\r\n url: \"/products?is_new=true\",\r\n },\r\n {\r\n title: t(\"onSale\", \"On Sale\"),\r\n description: t(\"onSaleDesc\", \"Great deals and special offers\"),\r\n icon: <Zap className=\"h-5 w-5 shrink-0\" />,\r\n url: \"/products?on_sale=true\",\r\n },\r\n ],\r\n },\r\n {\r\n title: t(\"company\", \"Company\"),\r\n url: \"#\",\r\n items: [\r\n {\r\n title: t(\"aboutUs\", \"About Us\"),\r\n description: t(\r\n \"aboutUsDesc\",\r\n \"Learn more about our story and mission\"\r\n ),\r\n icon: <Trees className=\"h-5 w-5 shrink-0\" />,\r\n url: \"/about\",\r\n },\r\n {\r\n title: t(\"contact\", \"Contact\"),\r\n description: t(\"contactDesc\", \"Get in touch with our team\"),\r\n icon: <Sunset className=\"h-5 w-5 shrink-0\" />,\r\n url: \"/contact\",\r\n },\r\n {\r\n title: t(\"blog\", \"Blog\"),\r\n description: t(\"blogDesc\", \"Read our latest articles and updates\"),\r\n icon: <Book className=\"h-5 w-5 shrink-0\" />,\r\n url: \"/blog\",\r\n },\r\n ],\r\n },\r\n ];\r\n\r\n const renderMenuItem = (item: MenuItem) => {\r\n if (item.items) {\r\n return (\r\n <NavigationMenuItem key={item.title}>\r\n <NavigationMenuTrigger>{item.title}</NavigationMenuTrigger>\r\n <NavigationMenuContent className=\"z-50 bg-popover text-popover-foreground\">\r\n {item.items.map((subItem) => (\r\n <NavigationMenuLink asChild key={subItem.title} className=\"w-80\">\r\n <SubMenuLink item={subItem} />\r\n </NavigationMenuLink>\r\n ))}\r\n </NavigationMenuContent>\r\n </NavigationMenuItem>\r\n );\r\n }\r\n\r\n return (\r\n <NavigationMenuItem key={item.title}>\r\n <NavigationMenuLink asChild>\r\n <Link\r\n to={item.url}\r\n className=\"group inline-flex h-10 w-max items-center justify-center rounded-md bg-background px-4 py-2 text-sm font-medium transition-colors hover:bg-muted hover:text-accent-foreground\"\r\n >\r\n {item.title}\r\n </Link>\r\n </NavigationMenuLink>\r\n </NavigationMenuItem>\r\n );\r\n };\r\n\r\n const renderMobileMenuItem = (item: MenuItem) => {\r\n if (item.items) {\r\n return (\r\n <AccordionItem\r\n key={item.title}\r\n value={item.title}\r\n className=\"border-b-0\"\r\n >\r\n <AccordionTrigger className=\"text-md py-0 font-semibold hover:no-underline\">\r\n {item.title}\r\n </AccordionTrigger>\r\n <AccordionContent className=\"mt-2\">\r\n {item.items.map((subItem) => (\r\n <SubMenuLink key={subItem.title} item={subItem} />\r\n ))}\r\n </AccordionContent>\r\n </AccordionItem>\r\n );\r\n }\r\n\r\n return (\r\n <Link key={item.title} to={item.url} className=\"text-md font-semibold\">\r\n {item.title}\r\n </Link>\r\n );\r\n };\r\n\r\n return (\r\n <header\r\n className={cn(\r\n \"relative z-50 py-4 border-b bg-background/95 backdrop-blur supports-[backdrop-filter]:bg-background/60 overflow-visible\",\r\n className\r\n )}\r\n >\r\n <div className=\"container max-w-7xl mx-auto px-4\">\r\n {/* Desktop Menu */}\r\n <nav className=\"hidden items-center justify-between lg:flex overflow-visible\">\r\n <div className=\"flex items-center gap-6\">\r\n {/* Logo */}\r\n <Link to=\"/\" className=\"flex items-center gap-2\">\r\n <img\r\n src=\"/images/logo.png\"\r\n className=\"h-8 w-auto\"\r\n alt={constants.site.name}\r\n onError={(e) => {\r\n e.currentTarget.style.display = \"none\";\r\n }}\r\n />\r\n <span className=\"text-lg font-semibold tracking-tight\">\r\n {constants.site.name}\r\n </span>\r\n </Link>\r\n <div className=\"flex items-center\">\r\n <NavigationMenu>\r\n <NavigationMenuList>\r\n {menu.map((item) => renderMenuItem(item))}\r\n </NavigationMenuList>\r\n </NavigationMenu>\r\n </div>\r\n </div>\r\n <div className=\"flex gap-2\">\r\n <Button asChild variant=\"outline\" size=\"sm\">\r\n <Link to=\"/login\">{t(\"login\", \"Login\")}</Link>\r\n </Button>\r\n <Button asChild size=\"sm\">\r\n <Link to=\"/register\">{t(\"signup\", \"Sign up\")}</Link>\r\n </Button>\r\n </div>\r\n </nav>\r\n\r\n {/* Mobile Menu */}\r\n <div className=\"block lg:hidden\">\r\n <div className=\"flex items-center justify-between\">\r\n {/* Logo */}\r\n <Link to=\"/\" className=\"flex items-center gap-2\">\r\n <img\r\n src=\"/images/logo.png\"\r\n className=\"h-8 w-auto\"\r\n alt={constants.site.name}\r\n onError={(e) => {\r\n e.currentTarget.style.display = \"none\";\r\n }}\r\n />\r\n <span className=\"text-lg font-semibold tracking-tight\">\r\n {constants.site.name}\r\n </span>\r\n </Link>\r\n <Sheet>\r\n <SheetTrigger asChild>\r\n <Button variant=\"outline\" size=\"icon\">\r\n <Menu className=\"h-4 w-4\" />\r\n </Button>\r\n </SheetTrigger>\r\n <SheetContent className=\"z-50 overflow-y-auto px-6\">\r\n <SheetHeader>\r\n <SheetTitle>\r\n <Link to=\"/\" className=\"flex items-center gap-2\">\r\n <img\r\n src=\"/images/logo.png\"\r\n className=\"h-8 w-auto\"\r\n alt={constants.site.name}\r\n onError={(e) => {\r\n e.currentTarget.style.display = \"none\";\r\n }}\r\n />\r\n </Link>\r\n </SheetTitle>\r\n </SheetHeader>\r\n <div className=\"flex flex-col gap-6 p-4\">\r\n <Accordion\r\n type=\"single\"\r\n collapsible\r\n className=\"flex w-full flex-col gap-4\"\r\n >\r\n {menu.map((item) => renderMobileMenuItem(item))}\r\n </Accordion>\r\n\r\n <div className=\"flex flex-col gap-3\">\r\n <Button asChild variant=\"outline\">\r\n <Link to=\"/login\">{t(\"login\", \"Login\")}</Link>\r\n </Button>\r\n <Button asChild>\r\n <Link to=\"/register\">{t(\"signup\", \"Sign up\")}</Link>\r\n </Button>\r\n </div>\r\n </div>\r\n </SheetContent>\r\n </Sheet>\r\n </div>\r\n </div>\r\n </div>\r\n </header>\r\n );\r\n}\r\n\r\nfunction SubMenuLink({ item }: { item: MenuItem }) {\r\n return (\r\n <Link\r\n to={item.url}\r\n className=\"flex min-w-80 flex-row gap-4 rounded-md p-3 leading-none no-underline transition-colors outline-none select-none hover:bg-muted hover:text-accent-foreground\"\r\n >\r\n <div className=\"text-foreground\">{item.icon}</div>\r\n <div>\r\n <div className=\"text-sm font-semibold\">{item.title}</div>\r\n {item.description && (\r\n <p className=\"text-sm leading-snug text-muted-foreground\">\r\n {item.description}\r\n </p>\r\n )}\r\n </div>\r\n </Link>\r\n );\r\n}\r\n"
27
27
  },
28
28
  {
29
29
  "path": "header-mega/lang/en.json",
30
30
  "type": "registry:lang",
31
31
  "target": "$modules$/header-mega/lang/en.json",
32
- "content": "{\n \"home\": \"Home\",\n \"products\": \"Products\",\n \"allProducts\": \"All Products\",\n \"allProductsDesc\": \"Brief description that appears in the mega menu. Explain what visitors will find in your full product catalog. Use Promake to customize this menu text to guide navigation.\",\n \"featured\": \"Featured\",\n \"featuredDesc\": \"Menu description for your featured or highlighted products. Explain what makes these items special or recommended. Customize with Promake.\",\n \"newArrivals\": \"New Arrivals\",\n \"newArrivalsDesc\": \"Menu text describing your latest products. Create interest in what's new. Use Promake to customize this navigation description.\",\n \"onSale\": \"On Sale\",\n \"onSaleDesc\": \"Menu description for sale or discounted items. Highlight current promotions or deals. Customize with Promake to drive interest.\",\n \"company\": \"About\",\n \"aboutUs\": \"About Us\",\n \"aboutUsDesc\": \"Brief menu description of your about page. Tease what visitors will learn about your company, mission, or story. Customize with Promake.\",\n \"contact\": \"Contact\",\n \"contactDesc\": \"Menu text that encourages visitors to get in touch. Mention how you can help or your availability. Use Promake to create inviting contact text.\",\n \"blog\": \"Blog\",\n \"blogDesc\": \"Menu description for your blog section. Explain what type of content you publish or topics you cover. Customize with Promake.\",\n \"login\": \"Login\",\n \"signup\": \"Sign up\"\n}\n"
32
+ "content": "{\r\n \"home\": \"Home\",\r\n \"products\": \"Products\",\r\n \"allProducts\": \"All Products\",\r\n \"allProductsDesc\": \"Brief description that appears in the mega menu. Explain what visitors will find in your full product catalog. Use Promake to customize this menu text to guide navigation.\",\r\n \"featured\": \"Featured\",\r\n \"featuredDesc\": \"Menu description for your featured or highlighted products. Explain what makes these items special or recommended. Customize with Promake.\",\r\n \"newArrivals\": \"New Arrivals\",\r\n \"newArrivalsDesc\": \"Menu text describing your latest products. Create interest in what's new. Use Promake to customize this navigation description.\",\r\n \"onSale\": \"On Sale\",\r\n \"onSaleDesc\": \"Menu description for sale or discounted items. Highlight current promotions or deals. Customize with Promake to drive interest.\",\r\n \"company\": \"About\",\r\n \"aboutUs\": \"About Us\",\r\n \"aboutUsDesc\": \"Brief menu description of your about page. Tease what visitors will learn about your company, mission, or story. Customize with Promake.\",\r\n \"contact\": \"Contact\",\r\n \"contactDesc\": \"Menu text that encourages visitors to get in touch. Mention how you can help or your availability. Use Promake to create inviting contact text.\",\r\n \"blog\": \"Blog\",\r\n \"blogDesc\": \"Menu description for your blog section. Explain what type of content you publish or topics you cover. Customize with Promake.\",\r\n \"login\": \"Login\",\r\n \"signup\": \"Sign up\"\r\n}\r\n"
33
33
  },
34
34
  {
35
35
  "path": "header-mega/lang/tr.json",
36
36
  "type": "registry:lang",
37
37
  "target": "$modules$/header-mega/lang/tr.json",
38
- "content": "{\n \"home\": \"Ana Sayfa\",\n \"products\": \"Ürünler\",\n \"allProducts\": \"Tüm Ürünler\",\n \"allProductsDesc\": \"Mega menüde görünen kısa açıklama. Ziyaretçilerin tam ürün kataloğunuzda neleri bulacağını açıklayın. Promake ile bu menü metnini navigasyonu yönlendirmek için özelleştirin.\",\n \"featured\": \"Öne Çıkanlar\",\n \"featuredDesc\": \"Öne çıkan veya önerilen ürünleriniz için menü açıklaması. Bu ürünleri özel veya önerilen yapan şeyi açıklayın. Promake ile özelleştirin.\",\n \"newArrivals\": \"Yeni Gelenler\",\n \"newArrivalsDesc\": \"En son ürünlerinizi açıklayan menü metni. Yeni olanda ilgi yaratın. Promake ile bu navigasyon açıklamasını özelleştirin.\",\n \"onSale\": \"İndirimde\",\n \"onSaleDesc\": \"İndirimli veya promosyonlu ürünler için menü açıklaması. Güncel promosyonları veya fırsatları vurgulayın. Promake ile ilgi uyandırmak için özelleştirin.\",\n \"company\": \"Hakkında\",\n \"aboutUs\": \"Hakkımızda\",\n \"aboutUsDesc\": \"Hakkımızda sayfanızın kısa menü açıklaması. Ziyaretçilerin şirketiniz, misyonunuz veya hikayeniz hakkında ne öğreneceklerini vurgulayın. Promake ile özelleştirin.\",\n \"contact\": \"İletişim\",\n \"contactDesc\": \"Ziyaretçileri iletişime geçmeye teşvik eden menü metni. Nasıl yardımcı olabileceğinizden veya müsaitliğinizden bahsedin. Promake ile davetkar iletişim metni oluşturun.\",\n \"blog\": \"Blog\",\n \"blogDesc\": \"Blog bölümünüz için menü açıklaması. Ne tür içerik yayınladığınızı veya hangi konuları ele aldığınızı açıklayın. Promake ile özelleştirin.\",\n \"login\": \"Giriş Yap\",\n \"signup\": \"Kayıt Ol\"\n}\n"
38
+ "content": "{\r\n \"home\": \"Ana Sayfa\",\r\n \"products\": \"Ürünler\",\r\n \"allProducts\": \"Tüm Ürünler\",\r\n \"allProductsDesc\": \"Mega menüde görünen kısa açıklama. Ziyaretçilerin tam ürün kataloğunuzda neleri bulacağını açıklayın. Promake ile bu menü metnini navigasyonu yönlendirmek için özelleştirin.\",\r\n \"featured\": \"Öne Çıkanlar\",\r\n \"featuredDesc\": \"Öne çıkan veya önerilen ürünleriniz için menü açıklaması. Bu ürünleri özel veya önerilen yapan şeyi açıklayın. Promake ile özelleştirin.\",\r\n \"newArrivals\": \"Yeni Gelenler\",\r\n \"newArrivalsDesc\": \"En son ürünlerinizi açıklayan menü metni. Yeni olanda ilgi yaratın. Promake ile bu navigasyon açıklamasını özelleştirin.\",\r\n \"onSale\": \"İndirimde\",\r\n \"onSaleDesc\": \"İndirimli veya promosyonlu ürünler için menü açıklaması. Güncel promosyonları veya fırsatları vurgulayın. Promake ile ilgi uyandırmak için özelleştirin.\",\r\n \"company\": \"Hakkında\",\r\n \"aboutUs\": \"Hakkımızda\",\r\n \"aboutUsDesc\": \"Hakkımızda sayfanızın kısa menü açıklaması. Ziyaretçilerin şirketiniz, misyonunuz veya hikayeniz hakkında ne öğreneceklerini vurgulayın. Promake ile özelleştirin.\",\r\n \"contact\": \"İletişim\",\r\n \"contactDesc\": \"Ziyaretçileri iletişime geçmeye teşvik eden menü metni. Nasıl yardımcı olabileceğinizden veya müsaitliğinizden bahsedin. Promake ile davetkar iletişim metni oluşturun.\",\r\n \"blog\": \"Blog\",\r\n \"blogDesc\": \"Blog bölümünüz için menü açıklaması. Ne tür içerik yayınladığınızı veya hangi konuları ele aldığınızı açıklayın. Promake ile özelleştirin.\",\r\n \"login\": \"Giriş Yap\",\r\n \"signup\": \"Kayıt Ol\"\r\n}\r\n"
39
39
  }
40
40
  ],
41
41
  "exports": {
@@ -15,25 +15,25 @@
15
15
  "path": "header-minimal/index.ts",
16
16
  "type": "registry:index",
17
17
  "target": "$modules$/header-minimal/index.ts",
18
- "content": "export * from './header-minimal';\n"
18
+ "content": "export * from './header-minimal';\r\n"
19
19
  },
20
20
  {
21
21
  "path": "header-minimal/header-minimal.tsx",
22
22
  "type": "registry:component",
23
23
  "target": "$modules$/header-minimal/header-minimal.tsx",
24
- "content": "import { Link } from \"react-router\";\nimport { Menu } from \"lucide-react\";\nimport { useTranslation } from \"react-i18next\";\nimport { cn } from \"@/lib/utils\";\nimport { Button } from \"@/components/ui/button\";\nimport {\n Sheet,\n SheetContent,\n SheetHeader,\n SheetTitle,\n SheetTrigger,\n} from \"@/components/ui/sheet\";\nimport constants from \"@/constants/constants.json\";\n\ninterface HeaderMinimalProps {\n className?: string;\n}\n\nexport function HeaderMinimal({ className }: HeaderMinimalProps) {\n const { t } = useTranslation(\"header-minimal\");\n\n const links = [\n { title: t(\"home\", \"Home\"), url: \"/\" },\n { title: t(\"about\", \"About\"), url: \"/about\" },\n ];\n\n return (\n <header className={cn(\"py-4 border-b bg-background\", className)}>\n <div className=\"container max-w-7xl mx-auto px-4\">\n <nav className=\"flex items-center justify-between\">\n {/* Logo */}\n <Link to=\"/\" className=\"flex items-center gap-2\">\n <img\n src=\"/images/logo.png\"\n className=\"h-8 w-auto\"\n alt={constants.site.name}\n onError={(e) => {\n e.currentTarget.style.display = \"none\";\n }}\n />\n <span className=\"text-xl font-bold tracking-tight\">\n {constants.site.name}\n </span>\n </Link>\n\n {/* Desktop Links */}\n <div className=\"hidden md:flex items-center gap-8\">\n {links.map((link) => (\n <Link\n key={link.title}\n to={link.url}\n className=\"text-sm font-medium text-muted-foreground hover:text-foreground transition-colors\"\n >\n {link.title}\n </Link>\n ))}\n </div>\n\n {/* CTA Button - Desktop */}\n <div className=\"hidden md:block\">\n <Button asChild>\n <Link to=\"/contact\">{t(\"cta\", \"Contact\")}</Link>\n </Button>\n </div>\n\n {/* Mobile Menu */}\n <div className=\"md:hidden\">\n <Sheet>\n <SheetTrigger asChild>\n <Button variant=\"ghost\" size=\"icon\">\n <Menu className=\"h-5 w-5\" />\n </Button>\n </SheetTrigger>\n <SheetContent side=\"right\" className=\"px-6\">\n <SheetHeader>\n <SheetTitle>\n <Link to=\"/\" className=\"flex items-center gap-2\">\n <span className=\"text-xl font-bold\">\n {constants.site.name}\n </span>\n </Link>\n </SheetTitle>\n </SheetHeader>\n <div className=\"flex flex-col gap-4 mt-8\">\n {links.map((link) => (\n <Link\n key={link.title}\n to={link.url}\n className=\"text-lg font-medium hover:text-primary transition-colors\"\n >\n {link.title}\n </Link>\n ))}\n <Button asChild className=\"mt-4\">\n <Link to=\"/contact\">{t(\"cta\", \"Contact\")}</Link>\n </Button>\n </div>\n </SheetContent>\n </Sheet>\n </div>\n </nav>\n </div>\n </header>\n );\n}\n"
24
+ "content": "import { Link } from \"react-router\";\r\nimport { Menu } from \"lucide-react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { cn } from \"@/lib/utils\";\r\nimport { Button } from \"@/components/ui/button\";\r\nimport {\r\n Sheet,\r\n SheetContent,\r\n SheetHeader,\r\n SheetTitle,\r\n SheetTrigger,\r\n} from \"@/components/ui/sheet\";\r\nimport constants from \"@/constants/constants.json\";\r\n\r\ninterface HeaderMinimalProps {\r\n className?: string;\r\n}\r\n\r\nexport function HeaderMinimal({ className }: HeaderMinimalProps) {\r\n const { t } = useTranslation(\"header-minimal\");\r\n\r\n const links = [\r\n { title: t(\"home\", \"Home\"), url: \"/\" },\r\n { title: t(\"about\", \"About\"), url: \"/about\" },\r\n ];\r\n\r\n return (\r\n <header className={cn(\"py-4 border-b bg-background\", className)}>\r\n <div className=\"container max-w-7xl mx-auto px-4\">\r\n <nav className=\"flex items-center justify-between\">\r\n {/* Logo */}\r\n <Link to=\"/\" className=\"flex items-center gap-2\">\r\n <img\r\n src=\"/images/logo.png\"\r\n className=\"h-8 w-auto\"\r\n alt={constants.site.name}\r\n onError={(e) => {\r\n e.currentTarget.style.display = \"none\";\r\n }}\r\n />\r\n <span className=\"text-xl font-bold tracking-tight\">\r\n {constants.site.name}\r\n </span>\r\n </Link>\r\n\r\n {/* Desktop Links */}\r\n <div className=\"hidden md:flex items-center gap-8\">\r\n {links.map((link) => (\r\n <Link\r\n key={link.title}\r\n to={link.url}\r\n className=\"text-sm font-medium text-muted-foreground hover:text-foreground transition-colors\"\r\n >\r\n {link.title}\r\n </Link>\r\n ))}\r\n </div>\r\n\r\n {/* CTA Button - Desktop */}\r\n <div className=\"hidden md:block\">\r\n <Button asChild>\r\n <Link to=\"/contact\">{t(\"cta\", \"Contact\")}</Link>\r\n </Button>\r\n </div>\r\n\r\n {/* Mobile Menu */}\r\n <div className=\"md:hidden\">\r\n <Sheet>\r\n <SheetTrigger asChild>\r\n <Button variant=\"ghost\" size=\"icon\">\r\n <Menu className=\"h-5 w-5\" />\r\n </Button>\r\n </SheetTrigger>\r\n <SheetContent side=\"right\" className=\"px-6\">\r\n <SheetHeader>\r\n <SheetTitle>\r\n <Link to=\"/\" className=\"flex items-center gap-2\">\r\n <span className=\"text-xl font-bold\">\r\n {constants.site.name}\r\n </span>\r\n </Link>\r\n </SheetTitle>\r\n </SheetHeader>\r\n <div className=\"flex flex-col gap-4 mt-8\">\r\n {links.map((link) => (\r\n <Link\r\n key={link.title}\r\n to={link.url}\r\n className=\"text-lg font-medium hover:text-primary transition-colors\"\r\n >\r\n {link.title}\r\n </Link>\r\n ))}\r\n <Button asChild className=\"mt-4\">\r\n <Link to=\"/contact\">{t(\"cta\", \"Contact\")}</Link>\r\n </Button>\r\n </div>\r\n </SheetContent>\r\n </Sheet>\r\n </div>\r\n </nav>\r\n </div>\r\n </header>\r\n );\r\n}\r\n"
25
25
  },
26
26
  {
27
27
  "path": "header-minimal/lang/en.json",
28
28
  "type": "registry:lang",
29
29
  "target": "$modules$/header-minimal/lang/en.json",
30
- "content": "{\n \"home\": \"Home\",\n \"about\": \"About\",\n \"cta\": \"Contact\"\n}\n"
30
+ "content": "{\r\n \"home\": \"Home\",\r\n \"about\": \"About\",\r\n \"cta\": \"Contact\"\r\n}\r\n"
31
31
  },
32
32
  {
33
33
  "path": "header-minimal/lang/tr.json",
34
34
  "type": "registry:lang",
35
35
  "target": "$modules$/header-minimal/lang/tr.json",
36
- "content": "{\n \"home\": \"Ana Sayfa\",\n \"about\": \"Hakkımızda\",\n \"cta\": \"İletişim\"\n}\n"
36
+ "content": "{\r\n \"home\": \"Ana Sayfa\",\r\n \"about\": \"Hakkımızda\",\r\n \"cta\": \"İletişim\"\r\n}\r\n"
37
37
  }
38
38
  ],
39
39
  "exports": {
@@ -13,7 +13,7 @@
13
13
  "path": "header-simple/index.ts",
14
14
  "type": "registry:index",
15
15
  "target": "$modules$/header-simple/index.ts",
16
- "content": "export * from './header-simple';\n"
16
+ "content": "export * from './header-simple';\r\n"
17
17
  },
18
18
  {
19
19
  "path": "header-simple/header-simple.tsx",
@@ -25,13 +25,13 @@
25
25
  "path": "header-simple/lang/en.json",
26
26
  "type": "registry:lang",
27
27
  "target": "$modules$/header-simple/lang/en.json",
28
- "content": "{\n \"home\": \"Home\",\n \"about\": \"About\",\n \"contact\": \"Contact\",\n \"menu\": \"Menu\"\n}\n"
28
+ "content": "{\r\n \"home\": \"Home\",\r\n \"about\": \"About\",\r\n \"contact\": \"Contact\",\r\n \"menu\": \"Menu\"\r\n}\r\n"
29
29
  },
30
30
  {
31
31
  "path": "header-simple/lang/tr.json",
32
32
  "type": "registry:lang",
33
33
  "target": "$modules$/header-simple/lang/tr.json",
34
- "content": "{\n \"home\": \"Ana Sayfa\",\n \"about\": \"Hakkımızda\",\n \"contact\": \"İletişim\",\n \"menu\": \"Menü\"\n}\n"
34
+ "content": "{\r\n \"home\": \"Ana Sayfa\",\r\n \"about\": \"Hakkımızda\",\r\n \"contact\": \"İletişim\",\r\n \"menu\": \"Menü\"\r\n}\r\n"
35
35
  }
36
36
  ],
37
37
  "exports": {
@@ -21,19 +21,19 @@
21
21
  "path": "hero-carousel/index.ts",
22
22
  "type": "registry:index",
23
23
  "target": "$modules$/hero-carousel/index.ts",
24
- "content": "export * from \"./hero-carousel\";\n"
24
+ "content": "export * from \"./hero-carousel\";\r\n"
25
25
  },
26
26
  {
27
27
  "path": "hero-carousel/lang/en.json",
28
28
  "type": "registry:lang",
29
29
  "target": "$modules$/hero-carousel/lang/en.json",
30
- "content": "{\n \"slides\": [\n {\n \"title\": \"Build Something Amazing\",\n \"description\": \"Edit these slides via Promake to match your brand message and call-to-action.\",\n \"primaryButton\": \"Get Started\",\n \"secondaryButton\": \"Learn More\"\n },\n {\n \"title\": \"Powerful Features\",\n \"description\": \"Discover tools and features that help you achieve more with less effort.\",\n \"primaryButton\": \"Explore Features\"\n },\n {\n \"title\": \"Ready to Transform?\",\n \"description\": \"Join thousands of satisfied customers who have already made the switch.\",\n \"primaryButton\": \"Contact Us\",\n \"secondaryButton\": \"See Demo\"\n }\n ]\n}\n"
30
+ "content": "{\r\n \"slides\": [\r\n {\r\n \"title\": \"Build Something Amazing\",\r\n \"description\": \"Edit these slides via Promake to match your brand message and call-to-action.\",\r\n \"primaryButton\": \"Get Started\",\r\n \"secondaryButton\": \"Learn More\"\r\n },\r\n {\r\n \"title\": \"Powerful Features\",\r\n \"description\": \"Discover tools and features that help you achieve more with less effort.\",\r\n \"primaryButton\": \"Explore Features\"\r\n },\r\n {\r\n \"title\": \"Ready to Transform?\",\r\n \"description\": \"Join thousands of satisfied customers who have already made the switch.\",\r\n \"primaryButton\": \"Contact Us\",\r\n \"secondaryButton\": \"See Demo\"\r\n }\r\n ]\r\n}\r\n"
31
31
  },
32
32
  {
33
33
  "path": "hero-carousel/lang/tr.json",
34
34
  "type": "registry:lang",
35
35
  "target": "$modules$/hero-carousel/lang/tr.json",
36
- "content": "{\n \"slides\": [\n {\n \"title\": \"Harika Bir Şey İnşa Edin\",\n \"description\": \"Bu slaytları marka mesajınıza ve eylem çağrınıza uyacak şekilde Promake üzerinden düzenleyin.\",\n \"primaryButton\": \"Başlayın\",\n \"secondaryButton\": \"Daha Fazla Bilgi\"\n },\n {\n \"title\": \"Güçlü Özellikler\",\n \"description\": \"Daha az çabayla daha fazlasını başarmanıza yardımcı olan araçları ve özellikleri keşfedin.\",\n \"primaryButton\": \"Özellikleri Keşfet\"\n },\n {\n \"title\": \"Dönüşüme Hazır mısınız?\",\n \"description\": \"Geçiş yapan binlerce memnun müşteriye katılın.\",\n \"primaryButton\": \"Bize Ulaşın\",\n \"secondaryButton\": \"Demo İzle\"\n }\n ]\n}\n"
36
+ "content": "{\r\n \"slides\": [\r\n {\r\n \"title\": \"Harika Bir Şey İnşa Edin\",\r\n \"description\": \"Bu slaytları marka mesajınıza ve eylem çağrınıza uyacak şekilde Promake üzerinden düzenleyin.\",\r\n \"primaryButton\": \"Başlayın\",\r\n \"secondaryButton\": \"Daha Fazla Bilgi\"\r\n },\r\n {\r\n \"title\": \"Güçlü Özellikler\",\r\n \"description\": \"Daha az çabayla daha fazlasını başarmanıza yardımcı olan araçları ve özellikleri keşfedin.\",\r\n \"primaryButton\": \"Özellikleri Keşfet\"\r\n },\r\n {\r\n \"title\": \"Dönüşüme Hazır mısınız?\",\r\n \"description\": \"Geçiş yapan binlerce memnun müşteriye katılın.\",\r\n \"primaryButton\": \"Bize Ulaşın\",\r\n \"secondaryButton\": \"Demo İzle\"\r\n }\r\n ]\r\n}\r\n"
37
37
  }
38
38
  ],
39
39
  "exports": {
@@ -12,25 +12,25 @@
12
12
  "path": "hero-cta/index.ts",
13
13
  "type": "registry:index",
14
14
  "target": "$modules$/hero-cta/index.ts",
15
- "content": "export * from './hero-cta';\n"
15
+ "content": "export * from './hero-cta';\r\n"
16
16
  },
17
17
  {
18
18
  "path": "hero-cta/hero-cta.tsx",
19
19
  "type": "registry:component",
20
20
  "target": "$modules$/hero-cta/hero-cta.tsx",
21
- "content": "import { Link } from \"react-router\";\nimport { ArrowRight, Star } from \"lucide-react\";\nimport { useTranslation } from \"react-i18next\";\nimport { Avatar, AvatarImage, AvatarFallback } from \"@/components/ui/avatar\";\nimport { Button } from \"@/components/ui/button\";\nimport { cn } from \"@/lib/utils\";\n\ninterface HeroCtaProps {\n className?: string;\n}\n\nexport function HeroCta({ className }: HeroCtaProps) {\n const { t } = useTranslation(\"hero-cta\");\n\n const avatars = [\n { src: \"/images/placeholder.png\", alt: \"User 1\", fallback: \"U1\" },\n { src: \"/images/placeholder.png\", alt: \"User 2\", fallback: \"U2\" },\n { src: \"/images/placeholder.png\", alt: \"User 3\", fallback: \"U3\" },\n { src: \"/images/placeholder.png\", alt: \"User 4\", fallback: \"U4\" },\n { src: \"/images/placeholder.png\", alt: \"User 5\", fallback: \"U5\" },\n ];\n\n return (\n <section className={cn(\"py-8 md:py-12 lg:py-26\", className)}>\n <div className=\"w-full max-w-[var(--container-max-width)] mx-auto px-4\">\n <div className=\"grid items-center gap-10 lg:grid-cols-2 lg:gap-16\">\n {/* Content Column */}\n <div className=\"flex flex-col items-center text-center lg:items-start lg:text-left\">\n <h1 className=\"mb-6 text-2xl font-bold text-pretty sm:text-3xl lg:text-4xl xl:text-5xl leading-tight\">\n {t(\"heading\")}\n </h1>\n <p className=\"mb-8 max-w-xl text-muted-foreground text-base lg:text-lg\">\n {t(\"description\")}\n </p>\n\n {/* Social Proof */}\n <div className=\"mb-10 flex flex-col items-center gap-4 sm:flex-row lg:items-start\">\n <div className=\"flex -space-x-3\">\n {avatars.map((avatar, index) => (\n <Avatar key={index} className=\"h-10 w-10 border-2 border-background\">\n <AvatarImage src={avatar.src} alt={avatar.alt} />\n <AvatarFallback className=\"text-xs\">{avatar.fallback}</AvatarFallback>\n </Avatar>\n ))}\n </div>\n <div>\n <div className=\"flex items-center gap-1\">\n {[...Array(5)].map((_, index) => (\n <Star\n key={index}\n className=\"h-4 w-4 fill-yellow-400 text-yellow-400\"\n />\n ))}\n <span className=\"ml-1 font-semibold text-sm\">5.0</span>\n </div>\n <p className=\"text-sm text-muted-foreground\">\n {t(\"reviews\")}\n </p>\n </div>\n </div>\n\n {/* CTA Buttons */}\n <div className=\"flex w-full flex-col gap-3 sm:flex-row sm:w-auto\">\n <Button asChild size=\"lg\" className=\"w-full sm:w-auto\">\n <Link to=\"/register\">\n {t(\"primaryCta\")}\n </Link>\n </Button>\n <Button asChild variant=\"outline\" size=\"lg\" className=\"w-full sm:w-auto\">\n <Link to=\"/about\">\n {t(\"secondaryCta\")}\n <ArrowRight className=\"ml-2 h-4 w-4\" />\n </Link>\n </Button>\n </div>\n </div>\n\n {/* Image Column */}\n <div className=\"relative order-first lg:order-last\">\n <div className=\"aspect-[4/3] overflow-hidden rounded-2xl bg-muted\">\n <img\n src=\"/images/placeholder.png\"\n alt={t(\"imageAlt\")}\n className=\"h-full w-full object-cover\"\n onError={(e) => {\n e.currentTarget.style.display = \"none\";\n }}\n />\n </div>\n {/* Decorative gradient blur */}\n <div className=\"absolute -z-10 -bottom-4 -right-4 h-72 w-72 rounded-full bg-primary/20 blur-3xl\" />\n </div>\n </div>\n </div>\n </section>\n );\n}\n"
21
+ "content": "import { Link } from \"react-router\";\r\nimport { ArrowRight, Star } from \"lucide-react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { Avatar, AvatarImage, AvatarFallback } from \"@/components/ui/avatar\";\r\nimport { Button } from \"@/components/ui/button\";\r\nimport { cn } from \"@/lib/utils\";\r\n\r\ninterface HeroCtaProps {\r\n className?: string;\r\n}\r\n\r\nexport function HeroCta({ className }: HeroCtaProps) {\r\n const { t } = useTranslation(\"hero-cta\");\r\n\r\n const avatars = [\r\n { src: \"/images/placeholder.png\", alt: \"User 1\", fallback: \"U1\" },\r\n { src: \"/images/placeholder.png\", alt: \"User 2\", fallback: \"U2\" },\r\n { src: \"/images/placeholder.png\", alt: \"User 3\", fallback: \"U3\" },\r\n { src: \"/images/placeholder.png\", alt: \"User 4\", fallback: \"U4\" },\r\n { src: \"/images/placeholder.png\", alt: \"User 5\", fallback: \"U5\" },\r\n ];\r\n\r\n return (\r\n <section className={cn(\"py-8 md:py-12 lg:py-26\", className)}>\r\n <div className=\"w-full max-w-[var(--container-max-width)] mx-auto px-4\">\r\n <div className=\"grid items-center gap-10 lg:grid-cols-2 lg:gap-16\">\r\n {/* Content Column */}\r\n <div className=\"flex flex-col items-center text-center lg:items-start lg:text-left\">\r\n <h1 className=\"mb-6 text-2xl font-bold text-pretty sm:text-3xl lg:text-4xl xl:text-5xl leading-tight\">\r\n {t(\"heading\")}\r\n </h1>\r\n <p className=\"mb-8 max-w-xl text-muted-foreground text-base lg:text-lg\">\r\n {t(\"description\")}\r\n </p>\r\n\r\n {/* Social Proof */}\r\n <div className=\"mb-10 flex flex-col items-center gap-4 sm:flex-row lg:items-start\">\r\n <div className=\"flex -space-x-3\">\r\n {avatars.map((avatar, index) => (\r\n <Avatar key={index} className=\"h-10 w-10 border-2 border-background\">\r\n <AvatarImage src={avatar.src} alt={avatar.alt} />\r\n <AvatarFallback className=\"text-xs\">{avatar.fallback}</AvatarFallback>\r\n </Avatar>\r\n ))}\r\n </div>\r\n <div>\r\n <div className=\"flex items-center gap-1\">\r\n {[...Array(5)].map((_, index) => (\r\n <Star\r\n key={index}\r\n className=\"h-4 w-4 fill-yellow-400 text-yellow-400\"\r\n />\r\n ))}\r\n <span className=\"ml-1 font-semibold text-sm\">5.0</span>\r\n </div>\r\n <p className=\"text-sm text-muted-foreground\">\r\n {t(\"reviews\")}\r\n </p>\r\n </div>\r\n </div>\r\n\r\n {/* CTA Buttons */}\r\n <div className=\"flex w-full flex-col gap-3 sm:flex-row sm:w-auto\">\r\n <Button asChild size=\"lg\" className=\"w-full sm:w-auto\">\r\n <Link to=\"/register\">\r\n {t(\"primaryCta\")}\r\n </Link>\r\n </Button>\r\n <Button asChild variant=\"outline\" size=\"lg\" className=\"w-full sm:w-auto\">\r\n <Link to=\"/about\">\r\n {t(\"secondaryCta\")}\r\n <ArrowRight className=\"ml-2 h-4 w-4\" />\r\n </Link>\r\n </Button>\r\n </div>\r\n </div>\r\n\r\n {/* Image Column */}\r\n <div className=\"relative order-first lg:order-last\">\r\n <div className=\"aspect-[4/3] overflow-hidden rounded-2xl bg-muted\">\r\n <img\r\n src=\"/images/placeholder.png\"\r\n alt={t(\"imageAlt\")}\r\n className=\"h-full w-full object-cover\"\r\n onError={(e) => {\r\n e.currentTarget.style.display = \"none\";\r\n }}\r\n />\r\n </div>\r\n {/* Decorative gradient blur */}\r\n <div className=\"absolute -z-10 -bottom-4 -right-4 h-72 w-72 rounded-full bg-primary/20 blur-3xl\" />\r\n </div>\r\n </div>\r\n </div>\r\n </section>\r\n );\r\n}\r\n"
22
22
  },
23
23
  {
24
24
  "path": "hero-cta/lang/en.json",
25
25
  "type": "registry:lang",
26
26
  "target": "$modules$/hero-cta/lang/en.json",
27
- "content": "{\n \"heading\": \"Build Something Amazing Today\",\n \"description\": \"Create powerful solutions that help you achieve your goals faster and more efficiently.\",\n \"reviews\": \"Trusted by 10,000+ users worldwide\",\n \"primaryCta\": \"Get Started\",\n \"secondaryCta\": \"Learn More\",\n \"imageAlt\": \"Hero image\"\n}\n"
27
+ "content": "{\r\n \"heading\": \"Build Something Amazing Today\",\r\n \"description\": \"Create powerful solutions that help you achieve your goals faster and more efficiently.\",\r\n \"reviews\": \"Trusted by 10,000+ users worldwide\",\r\n \"primaryCta\": \"Get Started\",\r\n \"secondaryCta\": \"Learn More\",\r\n \"imageAlt\": \"Hero image\"\r\n}\r\n"
28
28
  },
29
29
  {
30
30
  "path": "hero-cta/lang/tr.json",
31
31
  "type": "registry:lang",
32
32
  "target": "$modules$/hero-cta/lang/tr.json",
33
- "content": "{\n \"heading\": \"Bugün Harika Bir Şey İnşa Edin\",\n \"description\": \"Hedeflerinize daha hızlı ve verimli ulaşmanıza yardımcı olan güçlü çözümler oluşturun.\",\n \"reviews\": \"Dünya çapında 10.000+ kullanıcı tarafından güveniliyor\",\n \"primaryCta\": \"Başlayın\",\n \"secondaryCta\": \"Daha Fazla Bilgi\",\n \"imageAlt\": \"Hero görseli\"\n}\n"
33
+ "content": "{\r\n \"heading\": \"Bugün Harika Bir Şey İnşa Edin\",\r\n \"description\": \"Hedeflerinize daha hızlı ve verimli ulaşmanıza yardımcı olan güçlü çözümler oluşturun.\",\r\n \"reviews\": \"Dünya çapında 10.000+ kullanıcı tarafından güveniliyor\",\r\n \"primaryCta\": \"Başlayın\",\r\n \"secondaryCta\": \"Daha Fazla Bilgi\",\r\n \"imageAlt\": \"Hero görseli\"\r\n}\r\n"
34
34
  }
35
35
  ],
36
36
  "exports": {
@@ -10,25 +10,25 @@
10
10
  "path": "hero-gradient/index.ts",
11
11
  "type": "registry:index",
12
12
  "target": "$modules$/hero-gradient/index.ts",
13
- "content": "export * from './hero-gradient';\n"
13
+ "content": "export * from './hero-gradient';\r\n"
14
14
  },
15
15
  {
16
16
  "path": "hero-gradient/hero-gradient.tsx",
17
17
  "type": "registry:component",
18
18
  "target": "$modules$/hero-gradient/hero-gradient.tsx",
19
- "content": "import { Link } from \"react-router\";\nimport { ArrowRight } from \"lucide-react\";\nimport { useTranslation } from \"react-i18next\";\nimport { Button } from \"@/components/ui/button\";\nimport { cn } from \"@/lib/utils\";\n\ninterface HeroGradientProps {\n className?: string;\n}\n\nexport function HeroGradient({ className }: HeroGradientProps) {\n const { t } = useTranslation(\"hero-gradient\");\n\n return (\n <section\n className={cn(\n \"relative min-h-[70vh] flex items-center justify-center overflow-hidden\",\n className\n )}\n >\n {/* Gradient Background */}\n <div className=\"absolute inset-0 bg-gradient-to-br from-primary/20 via-background to-primary/10\" />\n\n {/* Animated gradient orbs */}\n <div className=\"absolute top-1/4 left-1/4 h-96 w-96 rounded-full bg-primary/30 blur-3xl animate-pulse\" />\n <div className=\"absolute bottom-1/4 right-1/4 h-80 w-80 rounded-full bg-primary/20 blur-3xl animate-pulse delay-700\" />\n\n {/* Grid pattern overlay */}\n <div className=\"absolute inset-0 bg-[linear-gradient(to_right,hsl(var(--border)/0.1)_1px,transparent_1px),linear-gradient(to_bottom,hsl(var(--border)/0.1)_1px,transparent_1px)] bg-[size:4rem_4rem]\" />\n\n {/* Content */}\n <div className=\"w-full max-w-[var(--container-max-width)] mx-auto px-4 relative z-10\">\n <div className=\"max-w-4xl mx-auto text-center\">\n {/* Badge */}\n <div className=\"inline-flex items-center gap-2 rounded-full border border-border/50 bg-background/50 backdrop-blur-sm px-4 py-1.5 text-sm mb-8\">\n <span className=\"relative flex h-2 w-2\">\n <span className=\"animate-ping absolute inline-flex h-full w-full rounded-full bg-primary opacity-75\" />\n <span className=\"relative inline-flex rounded-full h-2 w-2 bg-primary\" />\n </span>\n {t(\"badge\", \"New features available\")}\n </div>\n\n {/* Heading */}\n <h1 className=\"text-4xl sm:text-5xl md:text-6xl lg:text-7xl font-bold tracking-tight mb-6 leading-tight\">\n {t(\"headingLine1\", \"Transform your ideas\")}\n <br />\n <span className=\"bg-gradient-to-r from-primary to-primary/60 bg-clip-text text-transparent\">\n {t(\"headingLine2\", \"into reality\")}\n </span>\n </h1>\n\n {/* Description */}\n <p className=\"text-lg md:text-xl text-muted-foreground max-w-2xl mx-auto mb-10\">\n {t(\"description\", \"A powerful platform that helps you build, deploy, and scale your applications with ease. Start your journey today.\")}\n </p>\n\n {/* CTA Buttons */}\n <div className=\"flex flex-col sm:flex-row gap-4 justify-center\">\n <Button asChild size=\"lg\" className=\"text-base px-8\">\n <Link to=\"/register\">\n {t(\"primaryCta\", \"Start Building\")}\n <ArrowRight className=\"ml-2 h-4 w-4\" />\n </Link>\n </Button>\n <Button asChild variant=\"outline\" size=\"lg\" className=\"text-base px-8\">\n <Link to=\"/contact\">\n {t(\"secondaryCta\", \"Contact Sales\")}\n </Link>\n </Button>\n </div>\n\n {/* Trust badges */}\n <div className=\"mt-12 flex flex-wrap items-center justify-center gap-8 text-muted-foreground\">\n <div className=\"flex items-center gap-2\">\n <span className=\"text-2xl font-bold text-foreground\">10K+</span>\n <span className=\"text-sm\">{t(\"users\", \"Active Users\")}</span>\n </div>\n <div className=\"h-8 w-px bg-border hidden sm:block\" />\n <div className=\"flex items-center gap-2\">\n <span className=\"text-2xl font-bold text-foreground\">99.9%</span>\n <span className=\"text-sm\">{t(\"uptime\", \"Uptime\")}</span>\n </div>\n <div className=\"h-8 w-px bg-border hidden sm:block\" />\n <div className=\"flex items-center gap-2\">\n <span className=\"text-2xl font-bold text-foreground\">24/7</span>\n <span className=\"text-sm\">{t(\"support\", \"Support\")}</span>\n </div>\n </div>\n </div>\n </div>\n </section>\n );\n}\n"
19
+ "content": "import { Link } from \"react-router\";\r\nimport { ArrowRight } from \"lucide-react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { Button } from \"@/components/ui/button\";\r\nimport { cn } from \"@/lib/utils\";\r\n\r\ninterface HeroGradientProps {\r\n className?: string;\r\n}\r\n\r\nexport function HeroGradient({ className }: HeroGradientProps) {\r\n const { t } = useTranslation(\"hero-gradient\");\r\n\r\n return (\r\n <section\r\n className={cn(\r\n \"relative min-h-[70vh] flex items-center justify-center overflow-hidden\",\r\n className\r\n )}\r\n >\r\n {/* Gradient Background */}\r\n <div className=\"absolute inset-0 bg-gradient-to-br from-primary/20 via-background to-primary/10\" />\r\n\r\n {/* Animated gradient orbs */}\r\n <div className=\"absolute top-1/4 left-1/4 h-96 w-96 rounded-full bg-primary/30 blur-3xl animate-pulse\" />\r\n <div className=\"absolute bottom-1/4 right-1/4 h-80 w-80 rounded-full bg-primary/20 blur-3xl animate-pulse delay-700\" />\r\n\r\n {/* Grid pattern overlay */}\r\n <div className=\"absolute inset-0 bg-[linear-gradient(to_right,hsl(var(--border)/0.1)_1px,transparent_1px),linear-gradient(to_bottom,hsl(var(--border)/0.1)_1px,transparent_1px)] bg-[size:4rem_4rem]\" />\r\n\r\n {/* Content */}\r\n <div className=\"w-full max-w-[var(--container-max-width)] mx-auto px-4 relative z-10\">\r\n <div className=\"max-w-4xl mx-auto text-center\">\r\n {/* Badge */}\r\n <div className=\"inline-flex items-center gap-2 rounded-full border border-border/50 bg-background/50 backdrop-blur-sm px-4 py-1.5 text-sm mb-8\">\r\n <span className=\"relative flex h-2 w-2\">\r\n <span className=\"animate-ping absolute inline-flex h-full w-full rounded-full bg-primary opacity-75\" />\r\n <span className=\"relative inline-flex rounded-full h-2 w-2 bg-primary\" />\r\n </span>\r\n {t(\"badge\", \"New features available\")}\r\n </div>\r\n\r\n {/* Heading */}\r\n <h1 className=\"text-4xl sm:text-5xl md:text-6xl lg:text-7xl font-bold tracking-tight mb-6 leading-tight\">\r\n {t(\"headingLine1\", \"Transform your ideas\")}\r\n <br />\r\n <span className=\"bg-gradient-to-r from-primary to-primary/60 bg-clip-text text-transparent\">\r\n {t(\"headingLine2\", \"into reality\")}\r\n </span>\r\n </h1>\r\n\r\n {/* Description */}\r\n <p className=\"text-lg md:text-xl text-muted-foreground max-w-2xl mx-auto mb-10\">\r\n {t(\"description\", \"A powerful platform that helps you build, deploy, and scale your applications with ease. Start your journey today.\")}\r\n </p>\r\n\r\n {/* CTA Buttons */}\r\n <div className=\"flex flex-col sm:flex-row gap-4 justify-center\">\r\n <Button asChild size=\"lg\" className=\"text-base px-8\">\r\n <Link to=\"/register\">\r\n {t(\"primaryCta\", \"Start Building\")}\r\n <ArrowRight className=\"ml-2 h-4 w-4\" />\r\n </Link>\r\n </Button>\r\n <Button asChild variant=\"outline\" size=\"lg\" className=\"text-base px-8\">\r\n <Link to=\"/contact\">\r\n {t(\"secondaryCta\", \"Contact Sales\")}\r\n </Link>\r\n </Button>\r\n </div>\r\n\r\n {/* Trust badges */}\r\n <div className=\"mt-12 flex flex-wrap items-center justify-center gap-8 text-muted-foreground\">\r\n <div className=\"flex items-center gap-2\">\r\n <span className=\"text-2xl font-bold text-foreground\">10K+</span>\r\n <span className=\"text-sm\">{t(\"users\", \"Active Users\")}</span>\r\n </div>\r\n <div className=\"h-8 w-px bg-border hidden sm:block\" />\r\n <div className=\"flex items-center gap-2\">\r\n <span className=\"text-2xl font-bold text-foreground\">99.9%</span>\r\n <span className=\"text-sm\">{t(\"uptime\", \"Uptime\")}</span>\r\n </div>\r\n <div className=\"h-8 w-px bg-border hidden sm:block\" />\r\n <div className=\"flex items-center gap-2\">\r\n <span className=\"text-2xl font-bold text-foreground\">24/7</span>\r\n <span className=\"text-sm\">{t(\"support\", \"Support\")}</span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </section>\r\n );\r\n}\r\n"
20
20
  },
21
21
  {
22
22
  "path": "hero-gradient/lang/en.json",
23
23
  "type": "registry:lang",
24
24
  "target": "$modules$/hero-gradient/lang/en.json",
25
- "content": "{\n \"badge\": \"New Feature Available\",\n \"headingLine1\": \"Build Something Amazing\",\n \"headingLine2\": \"with your site headline\",\n \"description\": \"Create powerful solutions that drive results for your business.\",\n \"primaryCta\": \"Get Started\",\n \"secondaryCta\": \"Contact Sales\",\n \"users\": \"Active Users\",\n \"uptime\": \"Uptime\",\n \"support\": \"Support\"\n}\n"
25
+ "content": "{\r\n \"badge\": \"New Feature Available\",\r\n \"headingLine1\": \"Build Something Amazing\",\r\n \"headingLine2\": \"with your site headline\",\r\n \"description\": \"Create powerful solutions that drive results for your business.\",\r\n \"primaryCta\": \"Get Started\",\r\n \"secondaryCta\": \"Contact Sales\",\r\n \"users\": \"Active Users\",\r\n \"uptime\": \"Uptime\",\r\n \"support\": \"Support\"\r\n}\r\n"
26
26
  },
27
27
  {
28
28
  "path": "hero-gradient/lang/tr.json",
29
29
  "type": "registry:lang",
30
30
  "target": "$modules$/hero-gradient/lang/tr.json",
31
- "content": "{\n \"badge\": \"Yeni Özellik Mevcut\",\n \"headingLine1\": \"Harika Bir Şey İnşa Edin\",\n \"headingLine2\": \"site başlığınızla güncellemesini isteyin\",\n \"description\": \"İşiniz için sonuç odaklı güçlü çözümler oluşturun.\",\n \"primaryCta\": \"Başlayın\",\n \"secondaryCta\": \"Satış ile İletişim\",\n \"users\": \"Aktif Kullanıcı\",\n \"uptime\": \"Çalışma Süresi\",\n \"support\": \"Destek\"\n}\n"
31
+ "content": "{\r\n \"badge\": \"Yeni Özellik Mevcut\",\r\n \"headingLine1\": \"Harika Bir Şey İnşa Edin\",\r\n \"headingLine2\": \"site başlığınızla güncellemesini isteyin\",\r\n \"description\": \"İşiniz için sonuç odaklı güçlü çözümler oluşturun.\",\r\n \"primaryCta\": \"Başlayın\",\r\n \"secondaryCta\": \"Satış ile İletişim\",\r\n \"users\": \"Aktif Kullanıcı\",\r\n \"uptime\": \"Çalışma Süresi\",\r\n \"support\": \"Destek\"\r\n}\r\n"
32
32
  }
33
33
  ],
34
34
  "exports": {
@@ -12,25 +12,25 @@
12
12
  "path": "hero-grid/index.ts",
13
13
  "type": "registry:index",
14
14
  "target": "$modules$/hero-grid/index.ts",
15
- "content": "export * from './hero-grid';\n"
15
+ "content": "export * from './hero-grid';\r\n"
16
16
  },
17
17
  {
18
18
  "path": "hero-grid/hero-grid.tsx",
19
19
  "type": "registry:component",
20
20
  "target": "$modules$/hero-grid/hero-grid.tsx",
21
- "content": "import { Link } from \"react-router\";\nimport { Button } from \"@/components/ui/button\";\nimport { cn } from \"@/lib/utils\";\nimport { useTranslation } from \"react-i18next\";\n\ninterface HeroGridProps {\n images?: string[];\n ctaHref?: string;\n className?: string;\n}\n\nexport function HeroGrid({\n images = [\n \"/images/placeholder.png\",\n \"/images/placeholder.png\",\n \"/images/placeholder.png\",\n \"/images/placeholder.png\",\n \"/images/placeholder.png\",\n \"/images/placeholder.png\",\n \"/images/placeholder.png\",\n ],\n ctaHref = \"/products\",\n className,\n}: HeroGridProps) {\n const { t } = useTranslation(\"hero-grid\");\n\n return (\n <div className={cn(\"relative overflow-hidden bg-background\", className)}>\n <div className=\"pt-16 pb-80 sm:pt-24 sm:pb-40 lg:pt-40 lg:pb-48\">\n <div className=\"relative mx-auto max-w-7xl px-4 sm:static sm:px-6 lg:px-8\">\n <div className=\"sm:max-w-lg\">\n <h1 className=\"text-4xl font-bold tracking-tight sm:text-6xl\">\n {t(\"title\", \"Discover Our Latest Collection\")}\n </h1>\n <p className=\"mt-4 text-xl text-muted-foreground\">\n {t(\"description\", \"Explore our curated selection of premium products designed to elevate your everyday experience.\")}\n </p>\n </div>\n <div>\n <div className=\"mt-10\">\n {/* Decorative image grid */}\n <div\n aria-hidden=\"true\"\n className=\"pointer-events-none lg:absolute lg:inset-y-0 lg:mx-auto lg:w-full lg:max-w-7xl\"\n >\n <div className=\"absolute transform sm:top-0 sm:left-1/2 sm:translate-x-8 lg:top-1/2 lg:left-1/2 lg:translate-x-8 lg:-translate-y-1/2\">\n <div className=\"flex items-center space-x-6 lg:space-x-8\">\n <div className=\"grid shrink-0 grid-cols-1 gap-y-6 lg:gap-y-8\">\n <div className=\"h-64 w-44 overflow-hidden rounded-lg sm:opacity-0 lg:opacity-100\">\n <img\n alt=\"\"\n src={images[0]}\n className=\"size-full object-cover\"\n />\n </div>\n <div className=\"h-64 w-44 overflow-hidden rounded-lg\">\n <img\n alt=\"\"\n src={images[1]}\n className=\"size-full object-cover\"\n />\n </div>\n </div>\n <div className=\"grid shrink-0 grid-cols-1 gap-y-6 lg:gap-y-8\">\n <div className=\"h-64 w-44 overflow-hidden rounded-lg\">\n <img\n alt=\"\"\n src={images[2]}\n className=\"size-full object-cover\"\n />\n </div>\n <div className=\"h-64 w-44 overflow-hidden rounded-lg\">\n <img\n alt=\"\"\n src={images[3]}\n className=\"size-full object-cover\"\n />\n </div>\n <div className=\"h-64 w-44 overflow-hidden rounded-lg\">\n <img\n alt=\"\"\n src={images[4]}\n className=\"size-full object-cover\"\n />\n </div>\n </div>\n <div className=\"grid shrink-0 grid-cols-1 gap-y-6 lg:gap-y-8\">\n <div className=\"h-64 w-44 overflow-hidden rounded-lg\">\n <img\n alt=\"\"\n src={images[5]}\n className=\"size-full object-cover\"\n />\n </div>\n <div className=\"h-64 w-44 overflow-hidden rounded-lg\">\n <img\n alt=\"\"\n src={images[6]}\n className=\"size-full object-cover\"\n />\n </div>\n </div>\n </div>\n </div>\n </div>\n\n <Button asChild size=\"lg\">\n <Link to={ctaHref}>\n {t(\"cta\", \"Shop Collection\")}\n </Link>\n </Button>\n </div>\n </div>\n </div>\n </div>\n </div>\n );\n}\n"
21
+ "content": "import { Link } from \"react-router\";\r\nimport { Button } from \"@/components/ui/button\";\r\nimport { cn } from \"@/lib/utils\";\r\nimport { useTranslation } from \"react-i18next\";\r\n\r\ninterface HeroGridProps {\r\n images?: string[];\r\n ctaHref?: string;\r\n className?: string;\r\n}\r\n\r\nexport function HeroGrid({\r\n images = [\r\n \"/images/placeholder.png\",\r\n \"/images/placeholder.png\",\r\n \"/images/placeholder.png\",\r\n \"/images/placeholder.png\",\r\n \"/images/placeholder.png\",\r\n \"/images/placeholder.png\",\r\n \"/images/placeholder.png\",\r\n ],\r\n ctaHref = \"/products\",\r\n className,\r\n}: HeroGridProps) {\r\n const { t } = useTranslation(\"hero-grid\");\r\n\r\n return (\r\n <div className={cn(\"relative overflow-hidden bg-background\", className)}>\r\n <div className=\"pt-16 pb-80 sm:pt-24 sm:pb-40 lg:pt-40 lg:pb-48\">\r\n <div className=\"relative mx-auto max-w-7xl px-4 sm:static sm:px-6 lg:px-8\">\r\n <div className=\"sm:max-w-lg\">\r\n <h1 className=\"text-4xl font-bold tracking-tight sm:text-6xl\">\r\n {t(\"title\", \"Discover Our Latest Collection\")}\r\n </h1>\r\n <p className=\"mt-4 text-xl text-muted-foreground\">\r\n {t(\"description\", \"Explore our curated selection of premium products designed to elevate your everyday experience.\")}\r\n </p>\r\n </div>\r\n <div>\r\n <div className=\"mt-10\">\r\n {/* Decorative image grid */}\r\n <div\r\n aria-hidden=\"true\"\r\n className=\"pointer-events-none lg:absolute lg:inset-y-0 lg:mx-auto lg:w-full lg:max-w-7xl\"\r\n >\r\n <div className=\"absolute transform sm:top-0 sm:left-1/2 sm:translate-x-8 lg:top-1/2 lg:left-1/2 lg:translate-x-8 lg:-translate-y-1/2\">\r\n <div className=\"flex items-center space-x-6 lg:space-x-8\">\r\n <div className=\"grid shrink-0 grid-cols-1 gap-y-6 lg:gap-y-8\">\r\n <div className=\"h-64 w-44 overflow-hidden rounded-lg sm:opacity-0 lg:opacity-100\">\r\n <img\r\n alt=\"\"\r\n src={images[0]}\r\n className=\"size-full object-cover\"\r\n />\r\n </div>\r\n <div className=\"h-64 w-44 overflow-hidden rounded-lg\">\r\n <img\r\n alt=\"\"\r\n src={images[1]}\r\n className=\"size-full object-cover\"\r\n />\r\n </div>\r\n </div>\r\n <div className=\"grid shrink-0 grid-cols-1 gap-y-6 lg:gap-y-8\">\r\n <div className=\"h-64 w-44 overflow-hidden rounded-lg\">\r\n <img\r\n alt=\"\"\r\n src={images[2]}\r\n className=\"size-full object-cover\"\r\n />\r\n </div>\r\n <div className=\"h-64 w-44 overflow-hidden rounded-lg\">\r\n <img\r\n alt=\"\"\r\n src={images[3]}\r\n className=\"size-full object-cover\"\r\n />\r\n </div>\r\n <div className=\"h-64 w-44 overflow-hidden rounded-lg\">\r\n <img\r\n alt=\"\"\r\n src={images[4]}\r\n className=\"size-full object-cover\"\r\n />\r\n </div>\r\n </div>\r\n <div className=\"grid shrink-0 grid-cols-1 gap-y-6 lg:gap-y-8\">\r\n <div className=\"h-64 w-44 overflow-hidden rounded-lg\">\r\n <img\r\n alt=\"\"\r\n src={images[5]}\r\n className=\"size-full object-cover\"\r\n />\r\n </div>\r\n <div className=\"h-64 w-44 overflow-hidden rounded-lg\">\r\n <img\r\n alt=\"\"\r\n src={images[6]}\r\n className=\"size-full object-cover\"\r\n />\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <Button asChild size=\"lg\">\r\n <Link to={ctaHref}>\r\n {t(\"cta\", \"Shop Collection\")}\r\n </Link>\r\n </Button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n}\r\n"
22
22
  },
23
23
  {
24
24
  "path": "hero-grid/lang/en.json",
25
25
  "type": "registry:lang",
26
26
  "target": "$modules$/hero-grid/lang/en.json",
27
- "content": "{\n \"title\": \"Discover What We Offer\",\n \"description\": \"Explore our curated selection of offerings designed to elevate your experience and help you achieve your goals.\",\n \"cta\": \"Explore Now\"\n}\n"
27
+ "content": "{\r\n \"title\": \"Discover What We Offer\",\r\n \"description\": \"Explore our curated selection of offerings designed to elevate your experience and help you achieve your goals.\",\r\n \"cta\": \"Explore Now\"\r\n}\r\n"
28
28
  },
29
29
  {
30
30
  "path": "hero-grid/lang/tr.json",
31
31
  "type": "registry:lang",
32
32
  "target": "$modules$/hero-grid/lang/tr.json",
33
- "content": "{\n \"title\": \"Neler Sunduğumuzu Keşfedin\",\n \"description\": \"Deneyiminizi zenginleştirmek ve hedeflerinize ulaşmanıza yardımcı olmak için tasarlanmış özenle seçilmiş tekliflerimizi keşfedin.\",\n \"cta\": \"Keşfet\"\n}\n"
33
+ "content": "{\r\n \"title\": \"Neler Sunduğumuzu Keşfedin\",\r\n \"description\": \"Deneyiminizi zenginleştirmek ve hedeflerinize ulaşmanıza yardımcı olmak için tasarlanmış özenle seçilmiş tekliflerimizi keşfedin.\",\r\n \"cta\": \"Keşfet\"\r\n}\r\n"
34
34
  }
35
35
  ],
36
36
  "exports": {
@@ -13,7 +13,7 @@
13
13
  "path": "hero-profile/index.ts",
14
14
  "type": "registry:index",
15
15
  "target": "$modules$/hero-profile/index.ts",
16
- "content": "export * from './hero-profile';\n"
16
+ "content": "export * from './hero-profile';\r\n"
17
17
  },
18
18
  {
19
19
  "path": "hero-profile/hero-profile.tsx",
@@ -25,13 +25,13 @@
25
25
  "path": "hero-profile/lang/en.json",
26
26
  "type": "registry:lang",
27
27
  "target": "$modules$/hero-profile/lang/en.json",
28
- "content": "{\n \"name\": \"Your Name\",\n \"bio\": \"Your professional title and location\",\n \"greeting\": \"Hello There!\",\n \"intro\": \"Your introduction and what you do\",\n \"freelancing\": \"Available for Freelancing\",\n \"companiesTitle\": \"Teams I've Worked With\"\n}\n"
28
+ "content": "{\r\n \"name\": \"Your Name\",\r\n \"bio\": \"Your professional title and location\",\r\n \"greeting\": \"Hello There!\",\r\n \"intro\": \"Your introduction and what you do\",\r\n \"freelancing\": \"Available for Freelancing\",\r\n \"companiesTitle\": \"Teams I've Worked With\"\r\n}\r\n"
29
29
  },
30
30
  {
31
31
  "path": "hero-profile/lang/tr.json",
32
32
  "type": "registry:lang",
33
33
  "target": "$modules$/hero-profile/lang/tr.json",
34
- "content": "{\n \"name\": \"Adınız\",\n \"bio\": \"Mesleğiniz ve konumunuz\",\n \"greeting\": \"Merhaba!\",\n \"intro\": \"Tanıtımınız ve ne yaptığınız\",\n \"freelancing\": \"Freelance İçin Müsait\",\n \"companiesTitle\": \"Çalıştığım Ekipler\"\n}\n"
34
+ "content": "{\r\n \"name\": \"Adınız\",\r\n \"bio\": \"Mesleğiniz ve konumunuz\",\r\n \"greeting\": \"Merhaba!\",\r\n \"intro\": \"Tanıtımınız ve ne yaptığınız\",\r\n \"freelancing\": \"Freelance İçin Müsait\",\r\n \"companiesTitle\": \"Çalıştığım Ekipler\"\r\n}\r\n"
35
35
  }
36
36
  ],
37
37
  "tailwind": {
@@ -10,7 +10,7 @@
10
10
  "path": "hero/index.ts",
11
11
  "type": "registry:index",
12
12
  "target": "$modules$/hero/index.ts",
13
- "content": "export * from './hero';\n"
13
+ "content": "export * from './hero';\r\n"
14
14
  },
15
15
  {
16
16
  "path": "hero/hero.tsx",
@@ -22,13 +22,13 @@
22
22
  "path": "hero/lang/en.json",
23
23
  "type": "registry:lang",
24
24
  "target": "$modules$/hero/lang/en.json",
25
- "content": "{\n \"discover\": \"Discover\",\n \"amazing\": \"Inspiring\",\n \"content\": \"Stories\",\n \"subtitle\": \"Explore inspiring stories and meaningful content.\",\n \"readLatest\": \"Start Reading\",\n \"exploreTopics\": \"Explore Topics\"\n}\n"
25
+ "content": "{\r\n \"discover\": \"Discover\",\r\n \"amazing\": \"Inspiring\",\r\n \"content\": \"Stories\",\r\n \"subtitle\": \"Explore inspiring stories and meaningful content.\",\r\n \"readLatest\": \"Start Reading\",\r\n \"exploreTopics\": \"Explore Topics\"\r\n}\r\n"
26
26
  },
27
27
  {
28
28
  "path": "hero/lang/tr.json",
29
29
  "type": "registry:lang",
30
30
  "target": "$modules$/hero/lang/tr.json",
31
- "content": "{\n \"discover\": \"Keşfedin\",\n \"amazing\": \"İlham Verici\",\n \"content\": \"Hikayeler\",\n \"subtitle\": \"İlham verici hikayeleri ve anlamlı içerikleri keşfedin.\",\n \"readLatest\": \"Okumaya Başlayın\",\n \"exploreTopics\": \"Konuları Keşfedin\"\n}\n"
31
+ "content": "{\r\n \"discover\": \"Keşfedin\",\r\n \"amazing\": \"İlham Verici\",\r\n \"content\": \"Hikayeler\",\r\n \"subtitle\": \"İlham verici hikayeleri ve anlamlı içerikleri keşfedin.\",\r\n \"readLatest\": \"Okumaya Başlayın\",\r\n \"exploreTopics\": \"Konuları Keşfedin\"\r\n}\r\n"
32
32
  }
33
33
  ],
34
34
  "exports": {
@@ -16,7 +16,7 @@
16
16
  "path": "landing-page-app/index.ts",
17
17
  "type": "registry:index",
18
18
  "target": "$modules$/landing-page-app/index.ts",
19
- "content": "export * from \"./landing-page-app\";\nexport { default } from \"./landing-page-app\";\n"
19
+ "content": "export * from \"./landing-page-app\";\r\nexport { default } from \"./landing-page-app\";\r\n"
20
20
  },
21
21
  {
22
22
  "path": "landing-page-app/landing-page-app.tsx",
@@ -28,13 +28,13 @@
28
28
  "path": "landing-page-app/lang/en.json",
29
29
  "type": "registry:lang",
30
30
  "target": "$modules$/landing-page-app/lang/en.json",
31
- "content": "{\n \"title\": \"Mobile App\",\n \"badge\": \"Available on iOS & Android\",\n \"heroTitle\": \"Your App Name Here\",\n \"heroDescription\": \"The all-in-one app that simplifies your daily tasks and boosts productivity.\",\n \"downloadOn\": \"Download on the\",\n \"getItOn\": \"Get it on\",\n \"downloads\": \"Downloads\",\n \"inCategory\": \"In Category\",\n \"taskComplete\": \"Task Complete!\",\n \"newMessage\": \"New Message\",\n \"featuresLabel\": \"Features\",\n \"featuresTitle\": \"Why You'll Love It\",\n \"feature1Title\": \"Feature One\",\n \"feature1Desc\": \"Lightning-fast performance keeps your app running smoothly at all times.\",\n \"feature2Title\": \"Feature Two\",\n \"feature2Desc\": \"Stay informed with intelligent notifications tailored to your preferences.\",\n \"feature3Title\": \"Feature Three\",\n \"feature3Desc\": \"Your data is protected with bank-level encryption and privacy controls.\",\n \"feature4Title\": \"Feature Four\",\n \"feature4Desc\": \"Access all your content offline, anytime and anywhere you need it.\",\n \"screenshotsLabel\": \"Screenshots\",\n \"screenshotsTitle\": \"See It in Action\",\n \"reviewsLabel\": \"Reviews\",\n \"reviewsTitle\": \"What Users Say\",\n \"review1\": \"This app has completely changed how I manage my daily tasks. Clean interface and super intuitive!\",\n \"review2\": \"Love the offline mode! I can work anywhere without worrying about connectivity. 5 stars!\",\n \"review3\": \"Best app in its category. The team clearly cares about user experience and it shows.\",\n \"ctaTitle\": \"Download Now\",\n \"ctaDescription\": \"Join millions of users worldwide. Download now and start simplifying your life today!\"\n}"
31
+ "content": "{\r\n \"title\": \"Mobile App\",\r\n \"badge\": \"Available on iOS & Android\",\r\n \"heroTitle\": \"Your App Name Here\",\r\n \"heroDescription\": \"The all-in-one app that simplifies your daily tasks and boosts productivity.\",\r\n \"downloadOn\": \"Download on the\",\r\n \"getItOn\": \"Get it on\",\r\n \"downloads\": \"Downloads\",\r\n \"inCategory\": \"In Category\",\r\n \"taskComplete\": \"Task Complete!\",\r\n \"newMessage\": \"New Message\",\r\n \"featuresLabel\": \"Features\",\r\n \"featuresTitle\": \"Why You'll Love It\",\r\n \"feature1Title\": \"Feature One\",\r\n \"feature1Desc\": \"Lightning-fast performance keeps your app running smoothly at all times.\",\r\n \"feature2Title\": \"Feature Two\",\r\n \"feature2Desc\": \"Stay informed with intelligent notifications tailored to your preferences.\",\r\n \"feature3Title\": \"Feature Three\",\r\n \"feature3Desc\": \"Your data is protected with bank-level encryption and privacy controls.\",\r\n \"feature4Title\": \"Feature Four\",\r\n \"feature4Desc\": \"Access all your content offline, anytime and anywhere you need it.\",\r\n \"screenshotsLabel\": \"Screenshots\",\r\n \"screenshotsTitle\": \"See It in Action\",\r\n \"reviewsLabel\": \"Reviews\",\r\n \"reviewsTitle\": \"What Users Say\",\r\n \"review1\": \"This app has completely changed how I manage my daily tasks. Clean interface and super intuitive!\",\r\n \"review2\": \"Love the offline mode! I can work anywhere without worrying about connectivity. 5 stars!\",\r\n \"review3\": \"Best app in its category. The team clearly cares about user experience and it shows.\",\r\n \"ctaTitle\": \"Download Now\",\r\n \"ctaDescription\": \"Join millions of users worldwide. Download now and start simplifying your life today!\"\r\n}"
32
32
  },
33
33
  {
34
34
  "path": "landing-page-app/lang/tr.json",
35
35
  "type": "registry:lang",
36
36
  "target": "$modules$/landing-page-app/lang/tr.json",
37
- "content": "{\n \"title\": \"Mobil Uygulama\",\n \"badge\": \"iOS ve Android'de Mevcut\",\n \"heroTitle\": \"Hayatınız, Tek Uygulamada Basitleştirildi\",\n \"heroDescription\": \"Günlük görevlerinizi basitleştiren ve verimliliğinizi artıran hepsi bir arada uygulama.\",\n \"downloadOn\": \"Şuradan indir:\",\n \"getItOn\": \"Şuradan alın:\",\n \"downloads\": \"İndirme\",\n \"inCategory\": \"Kategorisinde\",\n \"taskComplete\": \"Görev Tamamlandı!\",\n \"newMessage\": \"Yeni Mesaj\",\n \"featuresLabel\": \"Özellikler\",\n \"featuresTitle\": \"Neden Seveceksiniz\",\n \"feature1Title\": \"Işık Hızında\",\n \"feature1Desc\": \"Yıldırım hızında performans, uygulamanızı her zaman sorunsuz çalıştırır.\",\n \"feature2Title\": \"Akıllı Bildirimler\",\n \"feature2Desc\": \"Tercihlerinize göre özelleştirilmiş akıllı bildirimlerle bilgilenin.\",\n \"feature3Title\": \"Güvenli & Özel\",\n \"feature3Desc\": \"Verileriniz banka seviyesinde şifreleme ve gizlilik kontrolleriyle korunur.\",\n \"feature4Title\": \"Çevrimdışı Mod\",\n \"feature4Desc\": \"Tüm içeriğinize çevrimdışı, istediğiniz zaman ve yerde erişin.\",\n \"screenshotsLabel\": \"Ekran Görüntüleri\",\n \"screenshotsTitle\": \"Uygulamada Görün\",\n \"reviewsLabel\": \"Yorumlar\",\n \"reviewsTitle\": \"Kullanıcılar Ne Diyor\",\n \"review1\": \"Bu uygulama günlük görevlerimi yönetme şeklimi tamamen değiştirdi. Temiz arayüz ve süper sezgisel!\",\n \"review2\": \"Çevrimdışı modu çok seviyorum! Bağlantı endişesi olmadan her yerde çalışabiliyorum. 5 yıldız!\",\n \"review3\": \"Kategorisindeki en iyi uygulama. Ekibin kullanıcı deneyimini önemsediği belli oluyor.\",\n \"ctaTitle\": \"Şimdi İndirin\",\n \"ctaDescription\": \"iOS ve Android'de ücretsiz olarak mevcut. Yolculuğunuza bugün başlayın.\"\n}\n"
37
+ "content": "{\r\n \"title\": \"Mobil Uygulama\",\r\n \"badge\": \"iOS ve Android'de Mevcut\",\r\n \"heroTitle\": \"Hayatınız, Tek Uygulamada Basitleştirildi\",\r\n \"heroDescription\": \"Günlük görevlerinizi basitleştiren ve verimliliğinizi artıran hepsi bir arada uygulama.\",\r\n \"downloadOn\": \"Şuradan indir:\",\r\n \"getItOn\": \"Şuradan alın:\",\r\n \"downloads\": \"İndirme\",\r\n \"inCategory\": \"Kategorisinde\",\r\n \"taskComplete\": \"Görev Tamamlandı!\",\r\n \"newMessage\": \"Yeni Mesaj\",\r\n \"featuresLabel\": \"Özellikler\",\r\n \"featuresTitle\": \"Neden Seveceksiniz\",\r\n \"feature1Title\": \"Işık Hızında\",\r\n \"feature1Desc\": \"Yıldırım hızında performans, uygulamanızı her zaman sorunsuz çalıştırır.\",\r\n \"feature2Title\": \"Akıllı Bildirimler\",\r\n \"feature2Desc\": \"Tercihlerinize göre özelleştirilmiş akıllı bildirimlerle bilgilenin.\",\r\n \"feature3Title\": \"Güvenli & Özel\",\r\n \"feature3Desc\": \"Verileriniz banka seviyesinde şifreleme ve gizlilik kontrolleriyle korunur.\",\r\n \"feature4Title\": \"Çevrimdışı Mod\",\r\n \"feature4Desc\": \"Tüm içeriğinize çevrimdışı, istediğiniz zaman ve yerde erişin.\",\r\n \"screenshotsLabel\": \"Ekran Görüntüleri\",\r\n \"screenshotsTitle\": \"Uygulamada Görün\",\r\n \"reviewsLabel\": \"Yorumlar\",\r\n \"reviewsTitle\": \"Kullanıcılar Ne Diyor\",\r\n \"review1\": \"Bu uygulama günlük görevlerimi yönetme şeklimi tamamen değiştirdi. Temiz arayüz ve süper sezgisel!\",\r\n \"review2\": \"Çevrimdışı modu çok seviyorum! Bağlantı endişesi olmadan her yerde çalışabiliyorum. 5 yıldız!\",\r\n \"review3\": \"Kategorisindeki en iyi uygulama. Ekibin kullanıcı deneyimini önemsediği belli oluyor.\",\r\n \"ctaTitle\": \"Şimdi İndirin\",\r\n \"ctaDescription\": \"iOS ve Android'de ücretsiz olarak mevcut. Yolculuğunuza bugün başlayın.\"\r\n}\r\n"
38
38
  }
39
39
  ],
40
40
  "exports": {
@@ -16,7 +16,7 @@
16
16
  "path": "landing-page-saas/index.ts",
17
17
  "type": "registry:index",
18
18
  "target": "$modules$/landing-page-saas/index.ts",
19
- "content": "export * from \"./landing-page-saas\";\nexport { default } from \"./landing-page-saas\";\n"
19
+ "content": "export * from \"./landing-page-saas\";\r\nexport { default } from \"./landing-page-saas\";\r\n"
20
20
  },
21
21
  {
22
22
  "path": "landing-page-saas/landing-page-saas.tsx",
@@ -28,13 +28,13 @@
28
28
  "path": "landing-page-saas/lang/en.json",
29
29
  "type": "registry:lang",
30
30
  "target": "$modules$/landing-page-saas/lang/en.json",
31
- "content": "{\n \"title\": \"SaaS Landing\",\n \"badge\": \"New Feature Available\",\n \"heroTitle\": \"Your Product Name Here\",\n \"heroDescription\": \"Streamline your workflow and boost team productivity with powerful automation tools.\",\n \"startFree\": \"Start Free Trial\",\n \"watchDemo\": \"Watch Demo\",\n \"noCreditCard\": \"No credit card required\",\n \"stat1Label\": \"Active Users\",\n \"stat2Label\": \"Uptime\",\n \"stat3Label\": \"Tasks Done\",\n \"stat4Label\": \"Rating\",\n \"featuresLabel\": \"Features\",\n \"featuresTitle\": \"Everything You Need\",\n \"featuresDescription\": \"Discover the tools and features that make your work easier and more productive.\",\n \"feature1Title\": \"Feature One\",\n \"feature1Desc\": \"Lightning-fast performance that saves you time and boosts efficiency.\",\n \"feature2Title\": \"Feature Two\",\n \"feature2Desc\": \"Bank-level encryption keeps your data secure and protected at all times.\",\n \"feature3Title\": \"Feature Three\",\n \"feature3Desc\": \"Deep insights and analytics help you make better data-driven decisions.\",\n \"feature4Title\": \"Feature Four\",\n \"feature4Desc\": \"Real-time collaboration tools keep your team connected and productive.\",\n \"feature5Title\": \"Feature Five\",\n \"feature5Desc\": \"99.9% uptime guarantee ensures your work is always accessible.\",\n \"feature6Title\": \"Feature Six\",\n \"feature6Desc\": \"Smart automation handles repetitive tasks so you can focus on what matters.\",\n \"testimonialsLabel\": \"Testimonials\",\n \"testimonialsTitle\": \"What Our Customers Say\",\n \"testimonial1\": \"This tool transformed how our team works. We've cut project delivery time by 40% and improved collaboration significantly.\",\n \"testimonial2\": \"The automation features alone save us 10+ hours per week. It's become essential to our workflow.\",\n \"testimonial3\": \"Incredibly intuitive and powerful. The customer support is outstanding, and the ROI has been remarkable.\",\n \"pricingLabel\": \"Pricing\",\n \"pricingTitle\": \"Simple, Transparent Pricing\",\n \"starterPlan\": \"Starter\",\n \"proPlan\": \"Pro\",\n \"enterprisePlan\": \"Enterprise\",\n \"custom\": \"Custom\",\n \"mostPopular\": \"Most Popular\",\n \"getStarted\": \"Get Started\",\n \"viewAllPlans\": \"View all pricing plans\",\n \"ctaTitle\": \"Ready to Get Started?\",\n \"ctaDescription\": \"Join thousands of teams already using our platform. Start your free 14-day trial today—no credit card required.\",\n \"ctaButton\": \"Get Started\"\n}\n"
31
+ "content": "{\r\n \"title\": \"SaaS Landing\",\r\n \"badge\": \"New Feature Available\",\r\n \"heroTitle\": \"Your Product Name Here\",\r\n \"heroDescription\": \"Streamline your workflow and boost team productivity with powerful automation tools.\",\r\n \"startFree\": \"Start Free Trial\",\r\n \"watchDemo\": \"Watch Demo\",\r\n \"noCreditCard\": \"No credit card required\",\r\n \"stat1Label\": \"Active Users\",\r\n \"stat2Label\": \"Uptime\",\r\n \"stat3Label\": \"Tasks Done\",\r\n \"stat4Label\": \"Rating\",\r\n \"featuresLabel\": \"Features\",\r\n \"featuresTitle\": \"Everything You Need\",\r\n \"featuresDescription\": \"Discover the tools and features that make your work easier and more productive.\",\r\n \"feature1Title\": \"Feature One\",\r\n \"feature1Desc\": \"Lightning-fast performance that saves you time and boosts efficiency.\",\r\n \"feature2Title\": \"Feature Two\",\r\n \"feature2Desc\": \"Bank-level encryption keeps your data secure and protected at all times.\",\r\n \"feature3Title\": \"Feature Three\",\r\n \"feature3Desc\": \"Deep insights and analytics help you make better data-driven decisions.\",\r\n \"feature4Title\": \"Feature Four\",\r\n \"feature4Desc\": \"Real-time collaboration tools keep your team connected and productive.\",\r\n \"feature5Title\": \"Feature Five\",\r\n \"feature5Desc\": \"99.9% uptime guarantee ensures your work is always accessible.\",\r\n \"feature6Title\": \"Feature Six\",\r\n \"feature6Desc\": \"Smart automation handles repetitive tasks so you can focus on what matters.\",\r\n \"testimonialsLabel\": \"Testimonials\",\r\n \"testimonialsTitle\": \"What Our Customers Say\",\r\n \"testimonial1\": \"This tool transformed how our team works. We've cut project delivery time by 40% and improved collaboration significantly.\",\r\n \"testimonial2\": \"The automation features alone save us 10+ hours per week. It's become essential to our workflow.\",\r\n \"testimonial3\": \"Incredibly intuitive and powerful. The customer support is outstanding, and the ROI has been remarkable.\",\r\n \"pricingLabel\": \"Pricing\",\r\n \"pricingTitle\": \"Simple, Transparent Pricing\",\r\n \"starterPlan\": \"Starter\",\r\n \"proPlan\": \"Pro\",\r\n \"enterprisePlan\": \"Enterprise\",\r\n \"custom\": \"Custom\",\r\n \"mostPopular\": \"Most Popular\",\r\n \"getStarted\": \"Get Started\",\r\n \"viewAllPlans\": \"View all pricing plans\",\r\n \"ctaTitle\": \"Ready to Get Started?\",\r\n \"ctaDescription\": \"Join thousands of teams already using our platform. Start your free 14-day trial today—no credit card required.\",\r\n \"ctaButton\": \"Get Started\"\r\n}\r\n"
32
32
  },
33
33
  {
34
34
  "path": "landing-page-saas/lang/tr.json",
35
35
  "type": "registry:lang",
36
36
  "target": "$modules$/landing-page-saas/lang/tr.json",
37
- "content": "{\n \"title\": \"SaaS Landing\",\n \"badge\": \"Artık AI destekli özelliklerle\",\n \"heroTitle\": \"Daha İyi Ürünler, Her Zamankinden Daha Hızlı Oluşturun\",\n \"heroDescription\": \"Güçlü otomasyon araçlarıyla iş akışınızı optimize edin ve ekip verimliliğini artırın.\",\n \"startFree\": \"Ücretsiz Deneyin\",\n \"watchDemo\": \"Demo İzle\",\n \"noCreditCard\": \"Kredi kartı gerekmez • 14 gün ücretsiz deneme\",\n \"stat1Label\": \"Aktif Kullanıcı\",\n \"stat2Label\": \"Çalışma Süresi\",\n \"stat3Label\": \"Tamamlanan Görev\",\n \"stat4Label\": \"Kullanıcı Puanı\",\n \"featuresLabel\": \"Özellikler\",\n \"featuresTitle\": \"Başarı İçin İhtiyacınız Olan Her Şey\",\n \"featuresDescription\": \"İşinizi daha kolay ve verimli hale getiren araçları ve özellikleri keşfedin.\",\n \"feature1Title\": \"Işık Hızında\",\n \"feature1Desc\": \"Yıldırım hızında performans, zamandan tasarruf sağlar ve verimliliği artırır.\",\n \"feature2Title\": \"Varsayılan Olarak Güvenli\",\n \"feature2Desc\": \"Banka seviyesinde şifreleme, verilerinizi her zaman güvende tutar.\",\n \"feature3Title\": \"Güçlü Analitik\",\n \"feature3Desc\": \"Derin görüşler ve analizler, daha iyi veri odaklı kararlar almanıza yardımcı olur.\",\n \"feature4Title\": \"Takım İşbirliği\",\n \"feature4Desc\": \"Gerçek zamanlı işbirliği araçları ekibinizi bağlı ve verimli tutar.\",\n \"feature5Title\": \"7/24 Kullanılabilirlik\",\n \"feature5Desc\": \"%99.9 çalışma süresi garantisi, işinizin her zaman erişilebilir olmasını sağlar.\",\n \"feature6Title\": \"AI Destekli\",\n \"feature6Desc\": \"Akıllı otomasyon tekrarlayan görevleri halleder, siz önemli işlere odaklanın.\",\n \"testimonialsLabel\": \"Referanslar\",\n \"testimonialsTitle\": \"Dünya Genelinde Ekipler Tarafından Seviliyor\",\n \"testimonial1\": \"Bu araç ekibimizin çalışma şeklini değiştirdi. Proje teslim süremizi %40 azalttık ve işbirliğimizi önemli ölçüde geliştirdik.\",\n \"testimonial2\": \"Sadece otomasyon özellikleri bile bize haftada 10+ saat kazandırıyor. İş akışımızın vazgeçilmez bir parçası oldu.\",\n \"testimonial3\": \"İnanılmaz sezgisel ve güçlü. Müşteri desteği olağanüstü ve yatırım getirisi dikkat çekici.\",\n \"pricingLabel\": \"Fiyatlandırma\",\n \"pricingTitle\": \"Basit, Şeffaf Fiyatlandırma\",\n \"starterPlan\": \"Başlangıç\",\n \"proPlan\": \"Pro\",\n \"enterprisePlan\": \"Kurumsal\",\n \"custom\": \"Özel\",\n \"mostPopular\": \"En Popüler\",\n \"getStarted\": \"Başlayın\",\n \"viewAllPlans\": \"Tüm planları görüntüle\",\n \"ctaTitle\": \"İş Akışınızı Dönüştürmeye Hazır mısınız?\",\n \"ctaDescription\": \"Platformumuzu kullanan binlerce ekibe katılın. 14 günlük ücretsiz denemenizi bugün başlatın—kredi kartı gerekmez.\",\n \"ctaButton\": \"Ücretsiz Denemenizi Başlatın\"\n}\n"
37
+ "content": "{\r\n \"title\": \"SaaS Landing\",\r\n \"badge\": \"Artık AI destekli özelliklerle\",\r\n \"heroTitle\": \"Daha İyi Ürünler, Her Zamankinden Daha Hızlı Oluşturun\",\r\n \"heroDescription\": \"Güçlü otomasyon araçlarıyla iş akışınızı optimize edin ve ekip verimliliğini artırın.\",\r\n \"startFree\": \"Ücretsiz Deneyin\",\r\n \"watchDemo\": \"Demo İzle\",\r\n \"noCreditCard\": \"Kredi kartı gerekmez • 14 gün ücretsiz deneme\",\r\n \"stat1Label\": \"Aktif Kullanıcı\",\r\n \"stat2Label\": \"Çalışma Süresi\",\r\n \"stat3Label\": \"Tamamlanan Görev\",\r\n \"stat4Label\": \"Kullanıcı Puanı\",\r\n \"featuresLabel\": \"Özellikler\",\r\n \"featuresTitle\": \"Başarı İçin İhtiyacınız Olan Her Şey\",\r\n \"featuresDescription\": \"İşinizi daha kolay ve verimli hale getiren araçları ve özellikleri keşfedin.\",\r\n \"feature1Title\": \"Işık Hızında\",\r\n \"feature1Desc\": \"Yıldırım hızında performans, zamandan tasarruf sağlar ve verimliliği artırır.\",\r\n \"feature2Title\": \"Varsayılan Olarak Güvenli\",\r\n \"feature2Desc\": \"Banka seviyesinde şifreleme, verilerinizi her zaman güvende tutar.\",\r\n \"feature3Title\": \"Güçlü Analitik\",\r\n \"feature3Desc\": \"Derin görüşler ve analizler, daha iyi veri odaklı kararlar almanıza yardımcı olur.\",\r\n \"feature4Title\": \"Takım İşbirliği\",\r\n \"feature4Desc\": \"Gerçek zamanlı işbirliği araçları ekibinizi bağlı ve verimli tutar.\",\r\n \"feature5Title\": \"7/24 Kullanılabilirlik\",\r\n \"feature5Desc\": \"%99.9 çalışma süresi garantisi, işinizin her zaman erişilebilir olmasını sağlar.\",\r\n \"feature6Title\": \"AI Destekli\",\r\n \"feature6Desc\": \"Akıllı otomasyon tekrarlayan görevleri halleder, siz önemli işlere odaklanın.\",\r\n \"testimonialsLabel\": \"Referanslar\",\r\n \"testimonialsTitle\": \"Dünya Genelinde Ekipler Tarafından Seviliyor\",\r\n \"testimonial1\": \"Bu araç ekibimizin çalışma şeklini değiştirdi. Proje teslim süremizi %40 azalttık ve işbirliğimizi önemli ölçüde geliştirdik.\",\r\n \"testimonial2\": \"Sadece otomasyon özellikleri bile bize haftada 10+ saat kazandırıyor. İş akışımızın vazgeçilmez bir parçası oldu.\",\r\n \"testimonial3\": \"İnanılmaz sezgisel ve güçlü. Müşteri desteği olağanüstü ve yatırım getirisi dikkat çekici.\",\r\n \"pricingLabel\": \"Fiyatlandırma\",\r\n \"pricingTitle\": \"Basit, Şeffaf Fiyatlandırma\",\r\n \"starterPlan\": \"Başlangıç\",\r\n \"proPlan\": \"Pro\",\r\n \"enterprisePlan\": \"Kurumsal\",\r\n \"custom\": \"Özel\",\r\n \"mostPopular\": \"En Popüler\",\r\n \"getStarted\": \"Başlayın\",\r\n \"viewAllPlans\": \"Tüm planları görüntüle\",\r\n \"ctaTitle\": \"İş Akışınızı Dönüştürmeye Hazır mısınız?\",\r\n \"ctaDescription\": \"Platformumuzu kullanan binlerce ekibe katılın. 14 günlük ücretsiz denemenizi bugün başlatın—kredi kartı gerekmez.\",\r\n \"ctaButton\": \"Ücretsiz Denemenizi Başlatın\"\r\n}\r\n"
38
38
  }
39
39
  ],
40
40
  "exports": {