@promakeai/cli 0.0.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +212 -0
- package/dist/registry/about-page.json +45 -0
- package/dist/registry/about-section.json +40 -0
- package/dist/registry/animations.json +69 -0
- package/dist/registry/bento-grid-section.json +42 -0
- package/dist/registry/blog-core.json +74 -0
- package/dist/registry/blog-list-page.json +48 -0
- package/dist/registry/blog-section.json +43 -0
- package/dist/registry/cards-carousel-section.json +46 -0
- package/dist/registry/cart-drawer.json +43 -0
- package/dist/registry/cart-page.json +47 -0
- package/dist/registry/category-section.json +43 -0
- package/dist/registry/checkout-page.json +47 -0
- package/dist/registry/contact-info-grid.json +40 -0
- package/dist/registry/contact-page-centered.json +50 -0
- package/dist/registry/contact-page-map-overlay.json +54 -0
- package/dist/registry/contact-page-map-split.json +54 -0
- package/dist/registry/contact-page-split.json +49 -0
- package/dist/registry/contact-page.json +45 -0
- package/dist/registry/content-section.json +40 -0
- package/dist/registry/cookies-page.json +45 -0
- package/dist/registry/cta-section.json +40 -0
- package/dist/registry/docs/about-page.md +32 -0
- package/dist/registry/docs/about-section.md +33 -0
- package/dist/registry/docs/animations.md +44 -0
- package/dist/registry/docs/bento-grid-section.md +40 -0
- package/dist/registry/docs/blog-core.md +37 -0
- package/dist/registry/docs/blog-list-page.md +38 -0
- package/dist/registry/docs/blog-section.md +39 -0
- package/dist/registry/docs/cards-carousel-section.md +39 -0
- package/dist/registry/docs/cart-drawer.md +42 -0
- package/dist/registry/docs/cart-page.md +37 -0
- package/dist/registry/docs/category-section.md +34 -0
- package/dist/registry/docs/checkout-page.md +38 -0
- package/dist/registry/docs/contact-info-grid.md +33 -0
- package/dist/registry/docs/contact-page-centered.md +41 -0
- package/dist/registry/docs/contact-page-map-overlay.md +44 -0
- package/dist/registry/docs/contact-page-map-split.md +44 -0
- package/dist/registry/docs/contact-page-split.md +40 -0
- package/dist/registry/docs/contact-page.md +33 -0
- package/dist/registry/docs/content-section.md +35 -0
- package/dist/registry/docs/cookies-page.md +32 -0
- package/dist/registry/docs/cta-section.md +32 -0
- package/dist/registry/docs/ecommerce-core.md +41 -0
- package/dist/registry/docs/empty-page.md +31 -0
- package/dist/registry/docs/faq-categorized.md +38 -0
- package/dist/registry/docs/faq-simple.md +38 -0
- package/dist/registry/docs/favorites-blog-block.md +38 -0
- package/dist/registry/docs/favorites-ecommerce-block.md +38 -0
- package/dist/registry/docs/feature-section.md +33 -0
- package/dist/registry/docs/featured-products.md +38 -0
- package/dist/registry/docs/footer-detailed.md +33 -0
- package/dist/registry/docs/footer-minimal.md +32 -0
- package/dist/registry/docs/footer.md +32 -0
- package/dist/registry/docs/google-map.md +36 -0
- package/dist/registry/docs/header-centered-pill.md +37 -0
- package/dist/registry/docs/header-ecommerce.md +38 -0
- package/dist/registry/docs/header-mega.md +40 -0
- package/dist/registry/docs/header-minimal.md +38 -0
- package/dist/registry/docs/header-simple.md +32 -0
- package/dist/registry/docs/hero-cta.md +38 -0
- package/dist/registry/docs/hero-gradient.md +33 -0
- package/dist/registry/docs/hero-grid.md +40 -0
- package/dist/registry/docs/hero-profile.md +33 -0
- package/dist/registry/docs/hero.md +32 -0
- package/dist/registry/docs/login-page-split.md +40 -0
- package/dist/registry/docs/login-page.md +39 -0
- package/dist/registry/docs/newsletter-section.md +40 -0
- package/dist/registry/docs/order-card-compact.md +37 -0
- package/dist/registry/docs/order-detail-block.md +37 -0
- package/dist/registry/docs/orders-list-block.md +40 -0
- package/dist/registry/docs/payment-success-block.md +32 -0
- package/dist/registry/docs/post-card.md +37 -0
- package/dist/registry/docs/post-detail-block.md +37 -0
- package/dist/registry/docs/pricing-card.md +37 -0
- package/dist/registry/docs/pricing-section.md +39 -0
- package/dist/registry/docs/privacy-page.md +32 -0
- package/dist/registry/docs/product-card-detailed.md +42 -0
- package/dist/registry/docs/product-card-hover.md +35 -0
- package/dist/registry/docs/product-card.md +37 -0
- package/dist/registry/docs/product-detail-block.md +37 -0
- package/dist/registry/docs/product-detail-section.md +45 -0
- package/dist/registry/docs/products-page.md +39 -0
- package/dist/registry/docs/related-posts-block.md +38 -0
- package/dist/registry/docs/related-products-block.md +38 -0
- package/dist/registry/docs/service-card.md +34 -0
- package/dist/registry/docs/skill-card.md +33 -0
- package/dist/registry/docs/terms-page.md +32 -0
- package/dist/registry/docs/testimonials-carousel.md +40 -0
- package/dist/registry/docs/testimonials-grid.md +39 -0
- package/dist/registry/ecommerce-core.json +95 -0
- package/dist/registry/empty-page.json +45 -0
- package/dist/registry/faq-categorized.json +42 -0
- package/dist/registry/faq-simple.json +42 -0
- package/dist/registry/favorites-blog-block.json +43 -0
- package/dist/registry/favorites-ecommerce-block.json +43 -0
- package/dist/registry/feature-section.json +40 -0
- package/dist/registry/featured-products.json +43 -0
- package/dist/registry/footer-detailed.json +43 -0
- package/dist/registry/footer-minimal.json +40 -0
- package/dist/registry/footer.json +40 -0
- package/dist/registry/google-map.json +31 -0
- package/dist/registry/header-centered-pill.json +45 -0
- package/dist/registry/header-ecommerce.json +42 -0
- package/dist/registry/header-mega.json +47 -0
- package/dist/registry/header-minimal.json +45 -0
- package/dist/registry/header-simple.json +43 -0
- package/dist/registry/hero-cta.json +42 -0
- package/dist/registry/hero-gradient.json +40 -0
- package/dist/registry/hero-grid.json +42 -0
- package/dist/registry/hero-profile.json +62 -0
- package/dist/registry/hero.json +40 -0
- package/dist/registry/index.json +70 -0
- package/dist/registry/login-page-split.json +47 -0
- package/dist/registry/login-page.json +49 -0
- package/dist/registry/newsletter-section.json +44 -0
- package/dist/registry/order-card-compact.json +42 -0
- package/dist/registry/order-detail-block.json +42 -0
- package/dist/registry/orders-list-block.json +45 -0
- package/dist/registry/payment-success-block.json +40 -0
- package/dist/registry/post-card.json +42 -0
- package/dist/registry/post-detail-block.json +42 -0
- package/dist/registry/pricing-card.json +40 -0
- package/dist/registry/pricing-section.json +43 -0
- package/dist/registry/privacy-page.json +45 -0
- package/dist/registry/product-card-detailed.json +45 -0
- package/dist/registry/product-card-hover.json +40 -0
- package/dist/registry/product-card.json +42 -0
- package/dist/registry/product-detail-block.json +42 -0
- package/dist/registry/product-detail-section.json +46 -0
- package/dist/registry/products-page.json +48 -0
- package/dist/registry/related-posts-block.json +43 -0
- package/dist/registry/related-products-block.json +43 -0
- package/dist/registry/service-card.json +28 -0
- package/dist/registry/skill-card.json +28 -0
- package/dist/registry/terms-page.json +45 -0
- package/dist/registry/testimonials-carousel.json +44 -0
- package/dist/registry/testimonials-grid.json +43 -0
- package/package.json +52 -0
- package/template/.env +6 -0
- package/template/.prettierignore +3 -0
- package/template/.prettierrc +1 -0
- package/template/README.md +73 -0
- package/template/bun.lock +1007 -0
- package/template/components.json +22 -0
- package/template/eslint.config.js +32 -0
- package/template/index.html +285 -0
- package/template/package.json +92 -0
- package/template/promake.json +6 -0
- package/template/public/_redirects +1 -0
- package/template/public/data/database.db +0 -0
- package/template/public/favicon.svg +1 -0
- package/template/public/images/placeholder.png +0 -0
- package/template/public/robots.txt +14 -0
- package/template/scripts/init-db.ts +131 -0
- package/template/src/App.tsx +33 -0
- package/template/src/components/Footer.tsx +100 -0
- package/template/src/components/Header.tsx +79 -0
- package/template/src/components/Hero.tsx +69 -0
- package/template/src/components/LanguageSwitcher.tsx +47 -0
- package/template/src/components/Layout.tsx +25 -0
- package/template/src/components/Logo.tsx +64 -0
- package/template/src/components/ThemeSwitcher.tsx +58 -0
- package/template/src/components/ui/accordion.tsx +64 -0
- package/template/src/components/ui/alert-dialog.tsx +155 -0
- package/template/src/components/ui/alert.tsx +66 -0
- package/template/src/components/ui/aspect-ratio.tsx +11 -0
- package/template/src/components/ui/avatar.tsx +51 -0
- package/template/src/components/ui/badge.tsx +46 -0
- package/template/src/components/ui/breadcrumb.tsx +109 -0
- package/template/src/components/ui/button-group.tsx +83 -0
- package/template/src/components/ui/button.tsx +62 -0
- package/template/src/components/ui/calendar.tsx +220 -0
- package/template/src/components/ui/card.tsx +92 -0
- package/template/src/components/ui/carousel.tsx +239 -0
- package/template/src/components/ui/chart.tsx +357 -0
- package/template/src/components/ui/checkbox.tsx +32 -0
- package/template/src/components/ui/collapsible.tsx +31 -0
- package/template/src/components/ui/command.tsx +182 -0
- package/template/src/components/ui/context-menu.tsx +252 -0
- package/template/src/components/ui/dialog.tsx +141 -0
- package/template/src/components/ui/drawer.tsx +135 -0
- package/template/src/components/ui/dropdown-menu.tsx +255 -0
- package/template/src/components/ui/empty.tsx +104 -0
- package/template/src/components/ui/field.tsx +246 -0
- package/template/src/components/ui/form.tsx +168 -0
- package/template/src/components/ui/hover-card.tsx +44 -0
- package/template/src/components/ui/input-group.tsx +170 -0
- package/template/src/components/ui/input-otp.tsx +75 -0
- package/template/src/components/ui/input.tsx +21 -0
- package/template/src/components/ui/item.tsx +193 -0
- package/template/src/components/ui/kbd.tsx +28 -0
- package/template/src/components/ui/label.tsx +24 -0
- package/template/src/components/ui/menubar.tsx +274 -0
- package/template/src/components/ui/navigation-menu.tsx +168 -0
- package/template/src/components/ui/pagination.tsx +127 -0
- package/template/src/components/ui/popover.tsx +48 -0
- package/template/src/components/ui/progress.tsx +29 -0
- package/template/src/components/ui/radio-group.tsx +45 -0
- package/template/src/components/ui/resizable.tsx +54 -0
- package/template/src/components/ui/scroll-area.tsx +58 -0
- package/template/src/components/ui/select.tsx +188 -0
- package/template/src/components/ui/separator.tsx +28 -0
- package/template/src/components/ui/sheet.tsx +137 -0
- package/template/src/components/ui/sidebar.tsx +726 -0
- package/template/src/components/ui/skeleton.tsx +13 -0
- package/template/src/components/ui/slider.tsx +63 -0
- package/template/src/components/ui/sonner.tsx +38 -0
- package/template/src/components/ui/spinner.tsx +16 -0
- package/template/src/components/ui/switch.tsx +31 -0
- package/template/src/components/ui/table.tsx +114 -0
- package/template/src/components/ui/tabs.tsx +66 -0
- package/template/src/components/ui/textarea.tsx +18 -0
- package/template/src/components/ui/toggle-group.tsx +81 -0
- package/template/src/components/ui/toggle.tsx +45 -0
- package/template/src/components/ui/tooltip.tsx +61 -0
- package/template/src/constants/constants.json +58 -0
- package/template/src/hooks/use-is-mobile.ts +21 -0
- package/template/src/hooks/use-page-title.ts +49 -0
- package/template/src/hooks/use-theme.ts +57 -0
- package/template/src/index.css +128 -0
- package/template/src/lang/en/about.json +4 -0
- package/template/src/lang/en/contact.json +39 -0
- package/template/src/lang/en/cookies.json +4 -0
- package/template/src/lang/en/footer.json +12 -0
- package/template/src/lang/en/forgotPassword.json +37 -0
- package/template/src/lang/en/header.json +10 -0
- package/template/src/lang/en/hero.json +8 -0
- package/template/src/lang/en/index.json +30 -0
- package/template/src/lang/en/login.json +18 -0
- package/template/src/lang/en/notfound.json +7 -0
- package/template/src/lang/en/privacy.json +4 -0
- package/template/src/lang/en/register.json +25 -0
- package/template/src/lang/en/terms.json +4 -0
- package/template/src/lang/index.ts +86 -0
- package/template/src/lang/tr/about.json +4 -0
- package/template/src/lang/tr/contact.json +39 -0
- package/template/src/lang/tr/cookies.json +4 -0
- package/template/src/lang/tr/footer.json +12 -0
- package/template/src/lang/tr/forgotPassword.json +37 -0
- package/template/src/lang/tr/header.json +10 -0
- package/template/src/lang/tr/hero.json +8 -0
- package/template/src/lang/tr/index.json +30 -0
- package/template/src/lang/tr/login.json +18 -0
- package/template/src/lang/tr/notfound.json +7 -0
- package/template/src/lang/tr/privacy.json +4 -0
- package/template/src/lang/tr/register.json +25 -0
- package/template/src/lang/tr/terms.json +4 -0
- package/template/src/lib/api.ts +237 -0
- package/template/src/lib/storage.ts +109 -0
- package/template/src/lib/utils.ts +15 -0
- package/template/src/main.tsx +13 -0
- package/template/src/modules/api/USAGE.md +515 -0
- package/template/src/modules/api/customer-client.ts +20 -0
- package/template/src/modules/api/get-error-message.ts +18 -0
- package/template/src/modules/api/validation/en.json +29 -0
- package/template/src/modules/api/validation/tr.json +29 -0
- package/template/src/modules/auth/USAGE.md +248 -0
- package/template/src/modules/auth/auth-header-menu.tsx +123 -0
- package/template/src/modules/auth/auth-store.ts +57 -0
- package/template/src/modules/auth/forgot-password-page.tsx +371 -0
- package/template/src/modules/auth/login-page.tsx +183 -0
- package/template/src/modules/auth/register-page.tsx +252 -0
- package/template/src/modules/auth/use-auth.ts +273 -0
- package/template/src/modules/db/adapters/IDataAdapter.ts +26 -0
- package/template/src/modules/db/adapters/SqliteAdapter.ts +364 -0
- package/template/src/modules/db/adapters/index.ts +2 -0
- package/template/src/modules/db/config.ts +59 -0
- package/template/src/modules/db/core/DataManager.ts +125 -0
- package/template/src/modules/db/core/types.ts +101 -0
- package/template/src/modules/db/index.ts +42 -0
- package/template/src/modules/db/react/QueryProvider.tsx +16 -0
- package/template/src/modules/db/react/index.ts +23 -0
- package/template/src/modules/db/react/queryClient.ts +64 -0
- package/template/src/modules/db/react/useRepository.ts +400 -0
- package/template/src/modules/db/utils/parsers.ts +96 -0
- package/template/src/pages/Index.tsx +108 -0
- package/template/src/pages/NotFound.tsx +35 -0
- package/template/src/router.tsx +14 -0
- package/template/src/types/index.ts +0 -0
- package/template/src/vite-env.d.ts +1 -0
- package/template/tsconfig.app.json +32 -0
- package/template/tsconfig.json +17 -0
- package/template/tsconfig.node.json +26 -0
- package/template/vite.config.ts +74 -0
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
# Cart Drawer
|
|
2
|
+
|
|
3
|
+
Shopping cart drawer that slides in from the right. Displays cart items with images, prices, quantities, remove buttons, subtotal calculation, checkout button, and continue shopping link. Uses shadcn Sheet component.
|
|
4
|
+
|
|
5
|
+
## Files
|
|
6
|
+
|
|
7
|
+
| Target | Type |
|
|
8
|
+
|--------|------|
|
|
9
|
+
| `$modules$/cart-drawer/index.ts` | index |
|
|
10
|
+
| `$modules$/cart-drawer/cart-drawer.tsx` | component |
|
|
11
|
+
| `$modules$/cart-drawer/lang/en.json` | lang |
|
|
12
|
+
| `$modules$/cart-drawer/lang/tr.json` | lang |
|
|
13
|
+
|
|
14
|
+
## Exports
|
|
15
|
+
|
|
16
|
+
**Components/Functions:** `CartDrawer`
|
|
17
|
+
|
|
18
|
+
```typescript
|
|
19
|
+
import { CartDrawer } from '@/modules/cart-drawer';
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
## Usage
|
|
23
|
+
|
|
24
|
+
```
|
|
25
|
+
import { CartDrawer } from '@/modules/cart-drawer';
|
|
26
|
+
|
|
27
|
+
const [open, setOpen] = useState(false);
|
|
28
|
+
|
|
29
|
+
<CartDrawer
|
|
30
|
+
open={open}
|
|
31
|
+
onOpenChange={setOpen}
|
|
32
|
+
items={cartItems}
|
|
33
|
+
onRemove={(id) => removeFromCart(id)}
|
|
34
|
+
checkoutHref="/checkout"
|
|
35
|
+
/>
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
## Dependencies
|
|
39
|
+
|
|
40
|
+
This component requires:
|
|
41
|
+
- `sheet`
|
|
42
|
+
- `button`
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
# Cart Page
|
|
2
|
+
|
|
3
|
+
Shopping cart page with item list showing product image, name, price, and quantity controls (+/- buttons). Features order summary sidebar with subtotal, shipping estimate, tax calculation, and total. Includes empty cart state with CTA, remove item confirmation, quantity validation, and proceed to checkout button. Responsive layout with mobile-optimized summary.
|
|
4
|
+
|
|
5
|
+
## Files
|
|
6
|
+
|
|
7
|
+
| Target | Type |
|
|
8
|
+
|--------|------|
|
|
9
|
+
| `$modules$/cart-page/index.ts` | index |
|
|
10
|
+
| `$modules$/cart-page/cart-page.tsx` | page |
|
|
11
|
+
| `$modules$/cart-page/lang/en.json` | lang |
|
|
12
|
+
| `$modules$/cart-page/lang/tr.json` | lang |
|
|
13
|
+
|
|
14
|
+
## Exports
|
|
15
|
+
|
|
16
|
+
**Components/Functions:** `CartPage`, `default`
|
|
17
|
+
|
|
18
|
+
```typescript
|
|
19
|
+
import { CartPage, default } from '@/modules/cart-page';
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
## Usage
|
|
23
|
+
|
|
24
|
+
```
|
|
25
|
+
import CartPage from '@/modules/cart-page';
|
|
26
|
+
|
|
27
|
+
<Route path="/cart" element={<CartPage />} />
|
|
28
|
+
|
|
29
|
+
• Uses useCart() from ecommerce-core (Zustand)
|
|
30
|
+
• Features: item list, quantity controls, order summary
|
|
31
|
+
• Empty cart state with shop CTA
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
## Dependencies
|
|
35
|
+
|
|
36
|
+
This component requires:
|
|
37
|
+
- `ecommerce-core`
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
# Category Section
|
|
2
|
+
|
|
3
|
+
E-commerce category showcase grid with image cards. Each card has category image, name overlay, and hover zoom effect. Supports 4-6 categories in responsive grid (2 cols mobile, 3 cols tablet, 4+ cols desktop). Click navigates to filtered products page. Great for homepage category browsing.
|
|
4
|
+
|
|
5
|
+
## Files
|
|
6
|
+
|
|
7
|
+
| Target | Type |
|
|
8
|
+
|--------|------|
|
|
9
|
+
| `$modules$/category-section/index.ts` | index |
|
|
10
|
+
| `$modules$/category-section/category-section.tsx` | component |
|
|
11
|
+
| `$modules$/category-section/lang/en.json` | lang |
|
|
12
|
+
| `$modules$/category-section/lang/tr.json` | lang |
|
|
13
|
+
|
|
14
|
+
## Exports
|
|
15
|
+
|
|
16
|
+
**Types:** `CategoryItem`, `CategorySectionProps`
|
|
17
|
+
|
|
18
|
+
**Components/Functions:** `CategorySection`
|
|
19
|
+
|
|
20
|
+
```typescript
|
|
21
|
+
import { CategorySection, CategoryItem, CategorySectionProps } from '@/modules/category-section';
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
## Usage
|
|
25
|
+
|
|
26
|
+
```
|
|
27
|
+
import { CategorySection } from '@/modules/category-section';
|
|
28
|
+
|
|
29
|
+
<CategorySection />
|
|
30
|
+
|
|
31
|
+
• Installed at: src/modules/category-section/
|
|
32
|
+
• Customize content: src/modules/category-section/lang/*.json
|
|
33
|
+
• Categories link to: /products?category={slug}
|
|
34
|
+
```
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
# Checkout Page
|
|
2
|
+
|
|
3
|
+
Multi-step checkout page with customer information form (name, email, phone, address), shipping method selection, payment method options (credit card, PayPal, bank transfer), and order review. Features form validation, order summary sidebar, shipping cost calculation, and place order button. Includes progress indicator for checkout steps.
|
|
4
|
+
|
|
5
|
+
## Files
|
|
6
|
+
|
|
7
|
+
| Target | Type |
|
|
8
|
+
|--------|------|
|
|
9
|
+
| `$modules$/checkout-page/index.ts` | index |
|
|
10
|
+
| `$modules$/checkout-page/checkout-page.tsx` | page |
|
|
11
|
+
| `$modules$/checkout-page/lang/en.json` | lang |
|
|
12
|
+
| `$modules$/checkout-page/lang/tr.json` | lang |
|
|
13
|
+
|
|
14
|
+
## Exports
|
|
15
|
+
|
|
16
|
+
**Components/Functions:** `CheckoutPage`, `default`
|
|
17
|
+
|
|
18
|
+
```typescript
|
|
19
|
+
import { CheckoutPage, default } from '@/modules/checkout-page';
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
## Usage
|
|
23
|
+
|
|
24
|
+
```
|
|
25
|
+
import CheckoutPage from '@/modules/checkout-page';
|
|
26
|
+
|
|
27
|
+
<Route path="/checkout" element={<CheckoutPage />} />
|
|
28
|
+
|
|
29
|
+
• Uses useCart() from ecommerce-core (Zustand)
|
|
30
|
+
• Steps: customer info → shipping → payment → review
|
|
31
|
+
• Form validation with react-hook-form
|
|
32
|
+
• Connect payment provider (Stripe, PayPal, etc.)
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
## Dependencies
|
|
36
|
+
|
|
37
|
+
This component requires:
|
|
38
|
+
- `ecommerce-core`
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# Contact Info Grid
|
|
2
|
+
|
|
3
|
+
4-card grid displaying contact information (email, office address, phone, live chat). Each card has an icon, label, description, and clickable value. Uses constants.json for contact details. Perfect as a standalone section or complement to contact forms.
|
|
4
|
+
|
|
5
|
+
## Files
|
|
6
|
+
|
|
7
|
+
| Target | Type |
|
|
8
|
+
|--------|------|
|
|
9
|
+
| `$modules$/contact-info-grid/index.ts` | index |
|
|
10
|
+
| `$modules$/contact-info-grid/contact-info-grid.tsx` | component |
|
|
11
|
+
| `$modules$/contact-info-grid/lang/en.json` | lang |
|
|
12
|
+
| `$modules$/contact-info-grid/lang/tr.json` | lang |
|
|
13
|
+
|
|
14
|
+
## Exports
|
|
15
|
+
|
|
16
|
+
**Components/Functions:** `ContactInfoGrid`
|
|
17
|
+
|
|
18
|
+
```typescript
|
|
19
|
+
import { ContactInfoGrid } from '@/modules/contact-info-grid';
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
## Usage
|
|
23
|
+
|
|
24
|
+
```
|
|
25
|
+
import { ContactInfoGrid } from '@/modules/contact-info-grid';
|
|
26
|
+
|
|
27
|
+
<ContactInfoGrid />
|
|
28
|
+
|
|
29
|
+
- 4-card responsive grid
|
|
30
|
+
- Email, Office, Phone, Chat
|
|
31
|
+
- Uses constants.json values
|
|
32
|
+
- Hover effects on cards
|
|
33
|
+
```
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
# Contact Page Centered
|
|
2
|
+
|
|
3
|
+
Centered contact page layout with contact info cards above the form. Features 3 info cards (email, phone, address), centered header, and a simple name/email/message form. Clean, minimal design perfect for landing pages.
|
|
4
|
+
|
|
5
|
+
## Files
|
|
6
|
+
|
|
7
|
+
| Target | Type |
|
|
8
|
+
|--------|------|
|
|
9
|
+
| `$modules$/contact-page-centered/index.ts` | index |
|
|
10
|
+
| `$modules$/contact-page-centered/contact-page-centered.tsx` | component |
|
|
11
|
+
| `$modules$/contact-page-centered/lang/en.json` | lang |
|
|
12
|
+
| `$modules$/contact-page-centered/lang/tr.json` | lang |
|
|
13
|
+
|
|
14
|
+
## Exports
|
|
15
|
+
|
|
16
|
+
**Components/Functions:** `ContactPageCentered`, `default`
|
|
17
|
+
|
|
18
|
+
```typescript
|
|
19
|
+
import { ContactPageCentered, default } from '@/modules/contact-page-centered';
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
## Usage
|
|
23
|
+
|
|
24
|
+
```
|
|
25
|
+
import { ContactPageCentered } from '@/modules/contact-page-centered';
|
|
26
|
+
|
|
27
|
+
<ContactPageCentered />
|
|
28
|
+
|
|
29
|
+
- 3 contact info cards
|
|
30
|
+
- Centered form layout
|
|
31
|
+
- Name, email, message fields
|
|
32
|
+
- Success/error states
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
## Dependencies
|
|
36
|
+
|
|
37
|
+
This component requires:
|
|
38
|
+
- `card`
|
|
39
|
+
- `input`
|
|
40
|
+
- `textarea`
|
|
41
|
+
- `label`
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
# Contact Page (Map Overlay)
|
|
2
|
+
|
|
3
|
+
Stunning full-screen Google Map background with glassmorphism contact form and info cards overlaid. Modern, eye-catching design with backdrop blur effects.
|
|
4
|
+
|
|
5
|
+
## Files
|
|
6
|
+
|
|
7
|
+
| Target | Type |
|
|
8
|
+
|--------|------|
|
|
9
|
+
| `$modules$/contact-page-map-overlay/index.ts` | index |
|
|
10
|
+
| `$modules$/contact-page-map-overlay/contact-page-map-overlay.tsx` | component |
|
|
11
|
+
| `$modules$/contact-page-map-overlay/lang/en.json` | lang |
|
|
12
|
+
| `$modules$/contact-page-map-overlay/lang/tr.json` | lang |
|
|
13
|
+
|
|
14
|
+
## Exports
|
|
15
|
+
|
|
16
|
+
**Components/Functions:** `ContactPageMapOverlay`
|
|
17
|
+
|
|
18
|
+
```typescript
|
|
19
|
+
import { ContactPageMapOverlay } from '@/modules/contact-page-map-overlay';
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
## Usage
|
|
23
|
+
|
|
24
|
+
```
|
|
25
|
+
import { ContactPageMapOverlay } from '@/modules/contact-page-map-overlay';
|
|
26
|
+
|
|
27
|
+
<ContactPageMapOverlay />
|
|
28
|
+
|
|
29
|
+
- Full-screen map background
|
|
30
|
+
- Glassmorphism form card
|
|
31
|
+
- Contact info overlay
|
|
32
|
+
- Social media links
|
|
33
|
+
- Open in Maps link
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
## Dependencies
|
|
37
|
+
|
|
38
|
+
This component requires:
|
|
39
|
+
- `button`
|
|
40
|
+
- `input`
|
|
41
|
+
- `label`
|
|
42
|
+
- `textarea`
|
|
43
|
+
- `card`
|
|
44
|
+
- `google-map`
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
# Contact Page (Split with Map)
|
|
2
|
+
|
|
3
|
+
Modern 50/50 split layout contact page with contact form on the left and full-height Google Map on the right. Includes email, phone, address info cards and social media links.
|
|
4
|
+
|
|
5
|
+
## Files
|
|
6
|
+
|
|
7
|
+
| Target | Type |
|
|
8
|
+
|--------|------|
|
|
9
|
+
| `$modules$/contact-page-map-split/index.ts` | index |
|
|
10
|
+
| `$modules$/contact-page-map-split/contact-page-map-split.tsx` | component |
|
|
11
|
+
| `$modules$/contact-page-map-split/lang/en.json` | lang |
|
|
12
|
+
| `$modules$/contact-page-map-split/lang/tr.json` | lang |
|
|
13
|
+
|
|
14
|
+
## Exports
|
|
15
|
+
|
|
16
|
+
**Components/Functions:** `ContactPageMapSplit`
|
|
17
|
+
|
|
18
|
+
```typescript
|
|
19
|
+
import { ContactPageMapSplit } from '@/modules/contact-page-map-split';
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
## Usage
|
|
23
|
+
|
|
24
|
+
```
|
|
25
|
+
import { ContactPageMapSplit } from '@/modules/contact-page-map-split';
|
|
26
|
+
|
|
27
|
+
<ContactPageMapSplit />
|
|
28
|
+
|
|
29
|
+
- 50/50 split layout
|
|
30
|
+
- Contact form with validation
|
|
31
|
+
- Google Map integration
|
|
32
|
+
- Social media links
|
|
33
|
+
- Responsive design
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
## Dependencies
|
|
37
|
+
|
|
38
|
+
This component requires:
|
|
39
|
+
- `button`
|
|
40
|
+
- `input`
|
|
41
|
+
- `label`
|
|
42
|
+
- `textarea`
|
|
43
|
+
- `google-map`
|
|
44
|
+
- `animations`
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
# Contact Page Split
|
|
2
|
+
|
|
3
|
+
50/50 split layout contact page with colored info panel on left and form on right. Left side features primary color background with contact details (email, phone, address, hours). Right side has clean form with name, email, phone, and message fields.
|
|
4
|
+
|
|
5
|
+
## Files
|
|
6
|
+
|
|
7
|
+
| Target | Type |
|
|
8
|
+
|--------|------|
|
|
9
|
+
| `$modules$/contact-page-split/index.ts` | index |
|
|
10
|
+
| `$modules$/contact-page-split/contact-page-split.tsx` | component |
|
|
11
|
+
| `$modules$/contact-page-split/lang/en.json` | lang |
|
|
12
|
+
| `$modules$/contact-page-split/lang/tr.json` | lang |
|
|
13
|
+
|
|
14
|
+
## Exports
|
|
15
|
+
|
|
16
|
+
**Components/Functions:** `ContactPageSplit`, `default`
|
|
17
|
+
|
|
18
|
+
```typescript
|
|
19
|
+
import { ContactPageSplit, default } from '@/modules/contact-page-split';
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
## Usage
|
|
23
|
+
|
|
24
|
+
```
|
|
25
|
+
import { ContactPageSplit } from '@/modules/contact-page-split';
|
|
26
|
+
|
|
27
|
+
<ContactPageSplit />
|
|
28
|
+
|
|
29
|
+
- 50/50 split layout
|
|
30
|
+
- Primary color info panel
|
|
31
|
+
- Contact details with icons
|
|
32
|
+
- Clean form on white background
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
## Dependencies
|
|
36
|
+
|
|
37
|
+
This component requires:
|
|
38
|
+
- `input`
|
|
39
|
+
- `textarea`
|
|
40
|
+
- `label`
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# Contact Page
|
|
2
|
+
|
|
3
|
+
Contact page with two-column layout: contact form (name, email, subject, message) on left, and contact information (address, phone, email, business hours, social links) on right. Includes embedded Google Map, form validation, and success/error toast notifications. Mobile-responsive with stacked layout.
|
|
4
|
+
|
|
5
|
+
## Files
|
|
6
|
+
|
|
7
|
+
| Target | Type |
|
|
8
|
+
|--------|------|
|
|
9
|
+
| `$modules$/contact-page/index.ts` | index |
|
|
10
|
+
| `$modules$/contact-page/contact-page.tsx` | page |
|
|
11
|
+
| `$modules$/contact-page/lang/en.json` | lang |
|
|
12
|
+
| `$modules$/contact-page/lang/tr.json` | lang |
|
|
13
|
+
|
|
14
|
+
## Exports
|
|
15
|
+
|
|
16
|
+
**Components/Functions:** `ContactPage`, `default`
|
|
17
|
+
|
|
18
|
+
```typescript
|
|
19
|
+
import { ContactPage, default } from '@/modules/contact-page';
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
## Usage
|
|
23
|
+
|
|
24
|
+
```
|
|
25
|
+
import { ContactPage } from '@/modules/contact-page';
|
|
26
|
+
|
|
27
|
+
<Route path="/contact" element={<ContactPage />} />
|
|
28
|
+
|
|
29
|
+
• Two-column: form left, info right
|
|
30
|
+
• Form: name, email, subject, message
|
|
31
|
+
• Info: address, phone, email, hours, map
|
|
32
|
+
• Toast notifications on submit
|
|
33
|
+
```
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
# Content Section
|
|
2
|
+
|
|
3
|
+
Two-column content section with large image and title/description grid. Features optional grayscale effect on image, CTA button, and responsive layout. Perfect for about pages and feature showcases.
|
|
4
|
+
|
|
5
|
+
## Files
|
|
6
|
+
|
|
7
|
+
| Target | Type |
|
|
8
|
+
|--------|------|
|
|
9
|
+
| `$modules$/content-section/index.ts` | index |
|
|
10
|
+
| `$modules$/content-section/content-section.tsx` | component |
|
|
11
|
+
| `$modules$/content-section/lang/en.json` | lang |
|
|
12
|
+
| `$modules$/content-section/lang/tr.json` | lang |
|
|
13
|
+
|
|
14
|
+
## Exports
|
|
15
|
+
|
|
16
|
+
**Components/Functions:** `ContentSection`
|
|
17
|
+
|
|
18
|
+
```typescript
|
|
19
|
+
import { ContentSection } from '@/modules/content-section';
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
## Usage
|
|
23
|
+
|
|
24
|
+
```
|
|
25
|
+
import { ContentSection } from '@/modules/content-section';
|
|
26
|
+
|
|
27
|
+
<ContentSection
|
|
28
|
+
image="/images/team.jpg"
|
|
29
|
+
title="Our Mission"
|
|
30
|
+
description="We are building the future..."
|
|
31
|
+
ctaText="Learn More"
|
|
32
|
+
ctaLink="/about"
|
|
33
|
+
grayscale
|
|
34
|
+
/>
|
|
35
|
+
```
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
# Cookie Policy Page
|
|
2
|
+
|
|
3
|
+
Cookie policy page explaining cookie types (essential, analytics, marketing), purposes, third-party cookies, and user controls. Includes cookie table with name, purpose, and expiration. GDPR/ePrivacy compliant formatting with clear explanations for non-technical users.
|
|
4
|
+
|
|
5
|
+
## Files
|
|
6
|
+
|
|
7
|
+
| Target | Type |
|
|
8
|
+
|--------|------|
|
|
9
|
+
| `$modules$/cookies-page/index.ts` | index |
|
|
10
|
+
| `$modules$/cookies-page/cookies-page.tsx` | page |
|
|
11
|
+
| `$modules$/cookies-page/lang/en.json` | lang |
|
|
12
|
+
| `$modules$/cookies-page/lang/tr.json` | lang |
|
|
13
|
+
|
|
14
|
+
## Exports
|
|
15
|
+
|
|
16
|
+
**Components/Functions:** `CookiesPage`, `default`
|
|
17
|
+
|
|
18
|
+
```typescript
|
|
19
|
+
import { CookiesPage, default } from '@/modules/cookies-page';
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
## Usage
|
|
23
|
+
|
|
24
|
+
```
|
|
25
|
+
import { CookiesPage } from '@/modules/cookies-page';
|
|
26
|
+
|
|
27
|
+
<Route path="/cookies" element={<CookiesPage />} />
|
|
28
|
+
|
|
29
|
+
• Cookie types: essential, analytics, marketing
|
|
30
|
+
• Cookie table with name, purpose, expiration
|
|
31
|
+
• GDPR/ePrivacy compliant
|
|
32
|
+
```
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
# CTA Section
|
|
2
|
+
|
|
3
|
+
Eye-catching call-to-action section with primary/brand color background. Features large headline, supporting text, and prominent action button. Can include secondary button or email input for newsletter. Designed to drive conversions at the bottom of landing pages.
|
|
4
|
+
|
|
5
|
+
## Files
|
|
6
|
+
|
|
7
|
+
| Target | Type |
|
|
8
|
+
|--------|------|
|
|
9
|
+
| `$modules$/cta-section/index.ts` | index |
|
|
10
|
+
| `$modules$/cta-section/cta-section.tsx` | component |
|
|
11
|
+
| `$modules$/cta-section/lang/en.json` | lang |
|
|
12
|
+
| `$modules$/cta-section/lang/tr.json` | lang |
|
|
13
|
+
|
|
14
|
+
## Exports
|
|
15
|
+
|
|
16
|
+
**Components/Functions:** `CtaSection`
|
|
17
|
+
|
|
18
|
+
```typescript
|
|
19
|
+
import { CtaSection } from '@/modules/cta-section';
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
## Usage
|
|
23
|
+
|
|
24
|
+
```
|
|
25
|
+
import { CtaSection } from '@/modules/cta-section';
|
|
26
|
+
|
|
27
|
+
<CtaSection />
|
|
28
|
+
|
|
29
|
+
• Installed at: src/modules/cta-section/
|
|
30
|
+
• Customize content: src/modules/cta-section/lang/*.json
|
|
31
|
+
• Customize background via CSS variables
|
|
32
|
+
```
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
# E-commerce Core
|
|
2
|
+
|
|
3
|
+
Complete e-commerce state management with Zustand. Includes useCartStore for shopping cart operations (add/remove/update items, totals), useFavoritesStore for wishlist, useProducts hook for product fetching with filtering/sorting/pagination, and useSearch hook. No provider wrapping needed.
|
|
4
|
+
|
|
5
|
+
## Files
|
|
6
|
+
|
|
7
|
+
| Target | Type |
|
|
8
|
+
|--------|------|
|
|
9
|
+
| `$modules$/ecommerce-core/index.ts` | index |
|
|
10
|
+
| `$modules$/ecommerce-core/types.ts` | type |
|
|
11
|
+
| `$modules$/ecommerce-core/stores/cart-store.ts` | store |
|
|
12
|
+
| `$modules$/ecommerce-core/stores/favorites-store.ts` | store |
|
|
13
|
+
| `$modules$/ecommerce-core/useProducts.ts` | hook |
|
|
14
|
+
| `$modules$/ecommerce-core/useSearch.ts` | hook |
|
|
15
|
+
| `$modules$/ecommerce-core/format-price.ts` | lib |
|
|
16
|
+
| `$modules$/ecommerce-core/lang/en.json` | lang |
|
|
17
|
+
| `$modules$/ecommerce-core/lang/tr.json` | lang |
|
|
18
|
+
|
|
19
|
+
## Exports
|
|
20
|
+
|
|
21
|
+
**Types:** `Address`, `CartContextType`, `CartItem`, `CartState`, `Category`, `FavoritesContextType`, `Order`, `OrderItem`, `Product`, `ProductCategory`, `ProductVariant`, `User`
|
|
22
|
+
|
|
23
|
+
**Components/Functions:** `formatPrice`, `useCart`, `useCartStore`, `useCategories`, `useFavorites`, `useFavoritesStore`, `useFeaturedProducts`, `useProductBySlug`, `useProducts`, `useSearch`
|
|
24
|
+
|
|
25
|
+
```typescript
|
|
26
|
+
import { formatPrice, useCart, useCartStore, ... } from '@/modules/ecommerce-core';
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
## Usage
|
|
30
|
+
|
|
31
|
+
```
|
|
32
|
+
import { useCart, useFavorites, useProducts } from '@/modules/ecommerce-core';
|
|
33
|
+
|
|
34
|
+
// No provider needed - just use the hooks:
|
|
35
|
+
const { addItem, removeItem, state, itemCount } = useCart();
|
|
36
|
+
const { addToFavorites, isFavorite } = useFavorites();
|
|
37
|
+
const { products, loading } = useProducts();
|
|
38
|
+
|
|
39
|
+
// Or use stores directly with selectors:
|
|
40
|
+
const itemCount = useCartStore((s) => s.itemCount);
|
|
41
|
+
```
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# Empty Page
|
|
2
|
+
|
|
3
|
+
Minimal starter page template. Use with --module-name and --route-path flags to create custom pages. Includes Layout wrapper, i18n support, and usePageTitle hook.
|
|
4
|
+
|
|
5
|
+
## Files
|
|
6
|
+
|
|
7
|
+
| Target | Type |
|
|
8
|
+
|--------|------|
|
|
9
|
+
| `$modules$/empty-page/index.ts` | index |
|
|
10
|
+
| `$modules$/empty-page/empty-page.tsx` | page |
|
|
11
|
+
| `$modules$/empty-page/lang/en.json` | lang |
|
|
12
|
+
| `$modules$/empty-page/lang/tr.json` | lang |
|
|
13
|
+
|
|
14
|
+
## Exports
|
|
15
|
+
|
|
16
|
+
**Components/Functions:** `EmptyPage`, `default`
|
|
17
|
+
|
|
18
|
+
```typescript
|
|
19
|
+
import { EmptyPage, default } from '@/modules/empty-page';
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
## Usage
|
|
23
|
+
|
|
24
|
+
```
|
|
25
|
+
promake add empty-page --module-name faq --route-path /faq
|
|
26
|
+
|
|
27
|
+
• Creates: src/modules/faq/faq.tsx
|
|
28
|
+
• Adds route: /faq → FaqPage
|
|
29
|
+
• Edit content in lang/en.json
|
|
30
|
+
• Wrapped with Layout component
|
|
31
|
+
```
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
# FAQ Categorized
|
|
2
|
+
|
|
3
|
+
Multi-column FAQ section with questions grouped by category. Features 3 category columns (General, Billing, Technical) each with its own accordion. Responsive grid layout that stacks on mobile. Great for comprehensive FAQ pages.
|
|
4
|
+
|
|
5
|
+
## Files
|
|
6
|
+
|
|
7
|
+
| Target | Type |
|
|
8
|
+
|--------|------|
|
|
9
|
+
| `$modules$/faq-categorized/index.ts` | index |
|
|
10
|
+
| `$modules$/faq-categorized/faq-categorized.tsx` | component |
|
|
11
|
+
| `$modules$/faq-categorized/lang/en.json` | lang |
|
|
12
|
+
| `$modules$/faq-categorized/lang/tr.json` | lang |
|
|
13
|
+
|
|
14
|
+
## Exports
|
|
15
|
+
|
|
16
|
+
**Components/Functions:** `FaqCategorized`
|
|
17
|
+
|
|
18
|
+
```typescript
|
|
19
|
+
import { FaqCategorized } from '@/modules/faq-categorized';
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
## Usage
|
|
23
|
+
|
|
24
|
+
```
|
|
25
|
+
import { FaqCategorized } from '@/modules/faq-categorized';
|
|
26
|
+
|
|
27
|
+
<FaqCategorized />
|
|
28
|
+
|
|
29
|
+
- 3 category columns
|
|
30
|
+
- Each category has accordion
|
|
31
|
+
- Responsive grid (1-3 columns)
|
|
32
|
+
- Customize categories via lang files
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
## Dependencies
|
|
36
|
+
|
|
37
|
+
This component requires:
|
|
38
|
+
- `accordion`
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
# FAQ Simple
|
|
2
|
+
|
|
3
|
+
Simple single-column FAQ section with accordion. Features centered heading, subtitle, and collapsible question/answer items. Clean minimal design using shadcn Accordion component. Perfect for landing pages and support sections.
|
|
4
|
+
|
|
5
|
+
## Files
|
|
6
|
+
|
|
7
|
+
| Target | Type |
|
|
8
|
+
|--------|------|
|
|
9
|
+
| `$modules$/faq-simple/index.ts` | index |
|
|
10
|
+
| `$modules$/faq-simple/faq-simple.tsx` | component |
|
|
11
|
+
| `$modules$/faq-simple/lang/en.json` | lang |
|
|
12
|
+
| `$modules$/faq-simple/lang/tr.json` | lang |
|
|
13
|
+
|
|
14
|
+
## Exports
|
|
15
|
+
|
|
16
|
+
**Components/Functions:** `FaqSimple`
|
|
17
|
+
|
|
18
|
+
```typescript
|
|
19
|
+
import { FaqSimple } from '@/modules/faq-simple';
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
## Usage
|
|
23
|
+
|
|
24
|
+
```
|
|
25
|
+
import { FaqSimple } from '@/modules/faq-simple';
|
|
26
|
+
|
|
27
|
+
<FaqSimple />
|
|
28
|
+
|
|
29
|
+
- Single column accordion
|
|
30
|
+
- Centered header
|
|
31
|
+
- Collapsible Q&A items
|
|
32
|
+
- Customize via lang files
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
## Dependencies
|
|
36
|
+
|
|
37
|
+
This component requires:
|
|
38
|
+
- `accordion`
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
# Favorites Blog Block
|
|
2
|
+
|
|
3
|
+
Saved posts page block showing bookmarked blog posts in grid. Includes empty state with browse CTA, clear all button, and remove from favorites per item.
|
|
4
|
+
|
|
5
|
+
## Files
|
|
6
|
+
|
|
7
|
+
| Target | Type |
|
|
8
|
+
|--------|------|
|
|
9
|
+
| `$modules$/favorites-blog-block/index.ts` | index |
|
|
10
|
+
| `$modules$/favorites-blog-block/favorites-blog-block.tsx` | block |
|
|
11
|
+
| `$modules$/favorites-blog-block/lang/en.json` | lang |
|
|
12
|
+
| `$modules$/favorites-blog-block/lang/tr.json` | lang |
|
|
13
|
+
|
|
14
|
+
## Exports
|
|
15
|
+
|
|
16
|
+
**Components/Functions:** `FavoritesBlogBlock`
|
|
17
|
+
|
|
18
|
+
```typescript
|
|
19
|
+
import { FavoritesBlogBlock } from '@/modules/favorites-blog-block';
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
## Usage
|
|
23
|
+
|
|
24
|
+
```
|
|
25
|
+
import { FavoritesBlogBlock } from '@/modules/favorites-blog-block';
|
|
26
|
+
|
|
27
|
+
<FavoritesBlogBlock />
|
|
28
|
+
|
|
29
|
+
• Uses useBlog() from blog-core (Zustand)
|
|
30
|
+
• Reads favorites directly from store
|
|
31
|
+
• Empty state: "No saved posts" with blog link
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
## Dependencies
|
|
35
|
+
|
|
36
|
+
This component requires:
|
|
37
|
+
- `blog-core`
|
|
38
|
+
- `post-card`
|