astro-component-kit 0.4.0 → 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +139 -27
- package/bin/cli.js +67 -0
- package/bin/installer.js +179 -0
- package/package.json +35 -5
- package/src/components/index.ts +2 -0
- package/src/components/lib/Galaxy3D.astro +249 -137
- package/src/components/lib/app/AppSidebar.astro +249 -0
- package/src/components/lib/app/AppTopbar.astro +284 -0
- package/src/components/lib/app/ArrivalsBoard.astro +176 -0
- package/src/components/lib/app/AuthCard.astro +213 -0
- package/src/components/lib/app/DataTable.astro +346 -0
- package/src/components/lib/app/GuestProfileCard.astro +133 -0
- package/src/components/lib/app/HousekeepingBoard.astro +189 -0
- package/src/components/lib/app/PageHeader.astro +157 -0
- package/src/components/lib/app/PlanUsageCard.astro +112 -0
- package/src/components/lib/app/RoomRack.astro +207 -0
- package/src/components/lib/app/SettingsSection.astro +96 -0
- package/src/components/lib/app/SwitchRow.astro +71 -0
- package/src/components/lib/app/TeamMembers.astro +190 -0
- package/src/components/lib/app/app-icons.ts +52 -0
- package/src/components/lib/app/index.ts +19 -0
- package/src/components/lib/charts/AreaChart.astro +4 -4
- package/src/components/lib/charts/BarChart.astro +3 -3
- package/src/components/lib/charts/ChartFrame.astro +10 -10
- package/src/components/lib/charts/DonutChart.astro +2 -2
- package/src/components/lib/charts/DumbbellChart.astro +1 -1
- package/src/components/lib/charts/ForecastLineChart.astro +1 -1
- package/src/components/lib/charts/GaugeChart.astro +1 -1
- package/src/components/lib/charts/HeatmapChart.astro +1 -1
- package/src/components/lib/charts/HorizontalBarChart.astro +2 -2
- package/src/components/lib/charts/KpiStatTile.astro +4 -4
- package/src/components/lib/charts/LinearProgressGauge.astro +4 -4
- package/src/components/lib/charts/MetricDeltaTable.astro +3 -3
- package/src/components/lib/charts/RadarMetricChart.astro +4 -4
- package/src/components/lib/charts/RadialBarChart.astro +1 -1
- package/src/components/lib/charts/RetentionCohortTable.astro +2 -2
- package/src/components/lib/charts/TreemapChart.astro +1 -1
- package/src/components/lib/ecommerce/CartDrawer.astro +483 -0
- package/src/components/lib/ecommerce/CartPageList.astro +290 -0
- package/src/components/lib/ecommerce/CartToast.astro +276 -0
- package/src/components/lib/ecommerce/CategoryTiles.astro +143 -0
- package/src/components/lib/ecommerce/CheckoutForm.astro +423 -0
- package/src/components/lib/ecommerce/CountdownBanner.astro +230 -0
- package/src/components/lib/ecommerce/FilterBar.astro +278 -0
- package/src/components/lib/ecommerce/FilterSidebar.astro +405 -0
- package/src/components/lib/ecommerce/LiveActivityToast.astro +213 -0
- package/src/components/lib/ecommerce/OrderSummary.astro +295 -0
- package/src/components/lib/ecommerce/ProductBuyBox.astro +247 -0
- package/src/components/lib/ecommerce/ProductCardMinimal.astro +229 -0
- package/src/components/lib/ecommerce/ProductGallery.astro +145 -0
- package/src/components/lib/ecommerce/ProductGrid.astro +118 -0
- package/src/components/lib/ecommerce/ProductMedia.astro +113 -0
- package/src/components/lib/ecommerce/ProductRating.astro +78 -0
- package/src/components/lib/ecommerce/ProductToolbar.astro +93 -0
- package/src/components/lib/ecommerce/PromoBar.astro +145 -0
- package/src/components/lib/ecommerce/StockIndicator.astro +127 -0
- package/src/components/lib/ecommerce/StoreHeader.astro +446 -0
- package/src/components/lib/ecommerce/StoreHero.astro +260 -0
- package/src/components/lib/ecommerce/StoreProductCard.astro +307 -0
- package/src/components/lib/ecommerce/TrustBadges.astro +101 -0
- package/src/components/lib/ecommerce/VariantPicker.astro +145 -0
- package/src/components/lib/ecommerce/cart-store.ts +151 -0
- package/src/components/lib/ecommerce/catalog-filter.ts +62 -0
- package/src/components/lib/ecommerce/index.ts +34 -0
- package/src/components/lib/ecommerce/product-icons.ts +28 -0
- package/src/components/lib/ecommerce/types.ts +70 -0
- package/src/components/lib/forms/AnimatedInput.astro +4 -2
- package/src/components/lib/forms/CustomRadioGroup.astro +3 -1
- package/src/components/lib/index.ts +2 -0
- package/src/components/lib/layout/BentoGrid3.astro +6 -4
- package/src/components/lib/layout/CenterFixedBox.astro +2 -2
- package/src/components/lib/layout/CenteredContainer.astro +4 -2
- package/src/components/lib/layout/ClusterHorizontal.astro +2 -2
- package/src/components/lib/layout/FeatureHero.astro +4 -2
- package/src/components/lib/layout/FooterCenteredMinimal.astro +4 -2
- package/src/components/lib/layout/FullBleedSection.astro +2 -2
- package/src/components/lib/layout/GalleryGrid4.astro +2 -2
- package/src/components/lib/layout/HolyGrailGrid.astro +11 -9
- package/src/components/lib/layout/LandingSectionSplit.astro +5 -3
- package/src/components/lib/layout/MasonryGrid.astro +2 -2
- package/src/components/lib/layout/MinimalFooterGrid.astro +1 -1
- package/src/components/lib/layout/ScrollSnapSection.astro +1 -1
- package/src/components/lib/layout/SidebarLayoutWrapper.astro +4 -2
- package/src/components/lib/layout/SplitScreenLayout.astro +3 -3
- package/src/components/lib/layout/StepLayoutVertical.astro +1 -1
- package/src/components/lib/layout/StickySidebarWrapper.astro +4 -2
- package/src/components/lib/sections/AgencyContactBrief.astro +194 -0
- package/src/components/lib/sections/AgencyFooterCta.astro +94 -0
- package/src/components/lib/sections/AgencyHeader.astro +161 -0
- package/src/components/lib/sections/AgencyHeroKinetic.astro +172 -0
- package/src/components/lib/sections/AgencyServicesList.astro +113 -0
- package/src/components/lib/sections/AgencyTeamGrid.astro +111 -0
- package/src/components/lib/sections/AgencyWorkGrid.astro +147 -0
- package/src/components/lib/sections/BlogGridSection.astro +9 -7
- package/src/components/lib/sections/ButtonsShowcase.astro +20 -18
- package/src/components/lib/sections/CardsShowcase.astro +28 -26
- package/src/components/lib/sections/CareersOpenings.astro +10 -8
- package/src/components/lib/sections/ChangelogSection.astro +20 -7
- package/src/components/lib/sections/ContactGlassForm.astro +10 -8
- package/src/components/lib/sections/ContactSplitMap.astro +11 -9
- package/src/components/lib/sections/CtaAppDownload.astro +13 -11
- package/src/components/lib/sections/CtaGlowBanner.astro +12 -10
- package/src/components/lib/sections/CtaNewsletterSection.astro +13 -11
- package/src/components/lib/sections/CtaSplitImage.astro +13 -11
- package/src/components/lib/sections/DataShowcase.astro +23 -21
- package/src/components/lib/sections/FaqAccordionSection.astro +8 -8
- package/src/components/lib/sections/FaqTwoColumn.astro +9 -7
- package/src/components/lib/sections/FeatureAlternatingRows.astro +10 -8
- package/src/components/lib/sections/FeatureBentoGrid.astro +13 -11
- package/src/components/lib/sections/FeatureIconGrid.astro +6 -6
- package/src/components/lib/sections/FeatureTabsShowcase.astro +13 -11
- package/src/components/lib/sections/FeatureTimelineFlow.astro +8 -6
- package/src/components/lib/sections/FeedbackShowcase.astro +15 -13
- package/src/components/lib/sections/FooterMegaSection.astro +13 -11
- package/src/components/lib/sections/FormsShowcase.astro +22 -20
- package/src/components/lib/sections/HeroDashboardPreview.astro +11 -9
- package/src/components/lib/sections/HeroGlass.astro +22 -20
- package/src/components/lib/sections/HeroGradient.astro +15 -13
- package/src/components/lib/sections/HeroMinimalCentered.astro +10 -10
- package/src/components/lib/sections/HeroShowcaseSplit.astro +18 -16
- package/src/components/lib/sections/HeroSplit.astro +13 -11
- package/src/components/lib/sections/HeroTerminal.astro +14 -12
- package/src/components/lib/sections/HeroWaitlist.astro +10 -8
- package/src/components/lib/sections/HowItWorksSteps.astro +12 -10
- package/src/components/lib/sections/IntegrationsGrid.astro +7 -7
- package/src/components/lib/sections/LayoutShowcase.astro +21 -19
- package/src/components/lib/sections/LogoCloudSection.astro +4 -4
- package/src/components/lib/sections/LogoWallGrid.astro +6 -4
- package/src/components/lib/sections/NavigationShowcase.astro +15 -13
- package/src/components/lib/sections/OverlaysShowcase.astro +21 -19
- package/src/components/lib/sections/PricingComparisonMatrix.astro +15 -13
- package/src/components/lib/sections/PricingSinglePlan.astro +13 -11
- package/src/components/lib/sections/PricingTierCards.astro +11 -9
- package/src/components/lib/sections/PricingToggleCards.astro +13 -13
- package/src/components/lib/sections/ShopCategoryHero.astro +103 -0
- package/src/components/lib/sections/ShopCollectionMosaic.astro +131 -0
- package/src/components/lib/sections/ShopFooterWordmark.astro +100 -0
- package/src/components/lib/sections/ShopHeaderEditorial.astro +396 -0
- package/src/components/lib/sections/ShopHeroEditorial.astro +151 -0
- package/src/components/lib/sections/ShopLookbook.astro +250 -0
- package/src/components/lib/sections/ShopNewsletterEditorial.astro +128 -0
- package/src/components/lib/sections/ShopProductRail.astro +150 -0
- package/src/components/lib/sections/ShopReviewsEditorial.astro +133 -0
- package/src/components/lib/sections/ShopValuesMarquee.astro +91 -0
- package/src/components/lib/sections/StatsCounterBand.astro +9 -7
- package/src/components/lib/sections/StatsDashboardSection.astro +4 -2
- package/src/components/lib/sections/StatsMetricShowcase.astro +9 -7
- package/src/components/lib/sections/TeamGridSection.astro +12 -10
- package/src/components/lib/sections/TestimonialCarousel.astro +10 -8
- package/src/components/lib/sections/TestimonialFeatured.astro +7 -5
- package/src/components/lib/sections/TestimonialGridSection.astro +7 -7
- package/src/components/lib/sections/TestimonialWallGlass.astro +11 -9
- package/src/components/lib/sections/TypographyShowcase.astro +10 -8
- package/src/components/lib/sections/index.ts +10 -0
- package/src/components/lib/templates/ecommerce/StoreCategoryPage.astro +160 -0
- package/src/components/lib/templates/ecommerce/StoreCheckoutPage.astro +98 -0
- package/src/components/lib/templates/ecommerce/StoreHomePage.astro +191 -0
- package/src/components/lib/templates/ecommerce/StoreLayout.astro +169 -0
- package/src/components/lib/templates/ecommerce/StoreProductPage.astro +165 -0
- package/src/components/lib/templates/ecommerce/data.ts +187 -0
- package/src/components/lib/templates/ecommerce/index.ts +14 -0
- package/src/components/lib/templates/ecommerce-editorial/EditorialBagPage.astro +52 -0
- package/src/components/lib/templates/ecommerce-editorial/EditorialCheckoutPage.astro +123 -0
- package/src/components/lib/templates/ecommerce-editorial/EditorialHomePage.astro +102 -0
- package/src/components/lib/templates/ecommerce-editorial/EditorialLayout.astro +216 -0
- package/src/components/lib/templates/ecommerce-editorial/EditorialProductPage.astro +205 -0
- package/src/components/lib/templates/ecommerce-editorial/EditorialShopPage.astro +112 -0
- package/src/components/lib/templates/ecommerce-editorial/data.ts +125 -0
- package/src/components/lib/templates/ecommerce-editorial/index.ts +16 -0
- package/src/components/lib/templates/saas-hotel/AppLayout.astro +83 -0
- package/src/components/lib/templates/saas-hotel/DashboardPage.astro +66 -0
- package/src/components/lib/templates/saas-hotel/GuestsPage.astro +65 -0
- package/src/components/lib/templates/saas-hotel/LandingPage.astro +213 -0
- package/src/components/lib/templates/saas-hotel/ReportsPage.astro +63 -0
- package/src/components/lib/templates/saas-hotel/ReservationsPage.astro +49 -0
- package/src/components/lib/templates/saas-hotel/RoomsPage.astro +48 -0
- package/src/components/lib/templates/saas-hotel/SettingsPage.astro +115 -0
- package/src/components/lib/templates/saas-hotel/SignInPage.astro +50 -0
- package/src/components/lib/templates/saas-hotel/data.ts +229 -0
- package/src/components/lib/templates/saas-hotel/index.ts +19 -0
- package/src/components/lib/templates/saas-hotel/lobby-theme.css +90 -0
- package/src/data/registry/app.ts +93 -0
- package/src/data/registry/buttons.ts +3279 -0
- package/src/data/registry/cards.ts +1753 -0
- package/src/data/registry/charts-svg.ts +557 -0
- package/src/data/registry/charts.ts +500 -0
- package/src/data/registry/data.ts +986 -0
- package/src/data/registry/ecommerce.ts +269 -0
- package/src/data/registry/feedback.ts +1824 -0
- package/src/data/registry/forms.ts +2513 -0
- package/src/data/registry/index.ts +64 -0
- package/src/data/registry/layout.ts +206 -0
- package/src/data/registry/navigation.ts +936 -0
- package/src/data/registry/overlays.ts +1133 -0
- package/src/data/registry/sections-extra.ts +397 -0
- package/src/data/registry/sections.ts +361 -0
- package/src/data/registry/sources.ts +41 -0
- package/src/data/registry/templates.ts +414 -0
- package/src/data/registry/types.ts +30 -0
- package/src/data/registry/typography.ts +777 -0
- package/src/mcp/http-server.ts +324 -0
- package/src/mcp/index.ts +67 -0
- package/src/mcp/installer.ts +178 -0
- package/src/mcp/registry-adapter.ts +278 -0
- package/src/mcp/stdio-server.ts +11 -0
- package/src/mcp/tools.ts +247 -0
- package/src/mcp/types.ts +53 -0
- package/src/styles/global.css +95 -0
|
@@ -0,0 +1,361 @@
|
|
|
1
|
+
// src/data/registry/sections.ts
|
|
2
|
+
import type { ComponentDoc, SectionCategory } from './types';
|
|
3
|
+
import { sectionsExtra } from './sections-extra';
|
|
4
|
+
import { source } from './sources';
|
|
5
|
+
|
|
6
|
+
export const sectionCategories: SectionCategory[] = [
|
|
7
|
+
{
|
|
8
|
+
id: 'hero',
|
|
9
|
+
name: 'Heroes',
|
|
10
|
+
description: 'High-impact full-screen landing heroes and headlines.',
|
|
11
|
+
icon: `<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="m3 9 9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z"/><polyline points="9 22 9 12 15 12 15 22"/></svg>`,
|
|
12
|
+
},
|
|
13
|
+
{
|
|
14
|
+
id: 'features',
|
|
15
|
+
name: 'Features & Grids',
|
|
16
|
+
description: 'Bento grids, timeline flows, and feature highlights.',
|
|
17
|
+
icon: `<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="3" width="7" height="9"/><rect x="14" y="3" width="7" height="5"/><rect x="14" y="12" width="7" height="9"/><rect x="3" y="16" width="7" height="5"/></svg>`,
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
id: 'pricing',
|
|
21
|
+
name: 'Pricing & Plans',
|
|
22
|
+
description: 'Pricing tables, comparison matrices, and plan tiers.',
|
|
23
|
+
icon: `<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><line x1="12" y1="1" x2="12" y2="23"/><path d="M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"/></svg>`,
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
id: 'testimonials',
|
|
27
|
+
name: 'Testimonials',
|
|
28
|
+
description: 'Wall of love, bento customer reviews, and verified badges.',
|
|
29
|
+
icon: `<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z"/></svg>`,
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
id: 'cta',
|
|
33
|
+
name: 'Call to Action',
|
|
34
|
+
description: 'Conversion glow banners, app downloads, and email subscription ribbons.',
|
|
35
|
+
icon: `<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polygon points="13 2 3 14 12 14 11 22 21 10 12 10 13 2"/></svg>`,
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
id: 'stats',
|
|
39
|
+
name: 'Stats & Metrics',
|
|
40
|
+
description: 'Numbers showcase, data proof, and milestone metrics.',
|
|
41
|
+
icon: `<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><line x1="18" y1="20" x2="18" y2="10"/><line x1="12" y1="20" x2="12" y2="4"/><line x1="6" y1="20" x2="6" y2="14"/></svg>`,
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
id: 'team',
|
|
45
|
+
name: 'Team & People',
|
|
46
|
+
description: 'Founder grids, advisor profiles, and leadership showcases.',
|
|
47
|
+
icon: `<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M17 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2"/><circle cx="9" cy="7" r="4"/><path d="M23 21v-2a4 4 0 0 0-3-3.87"/><path d="M16 3.13a4 4 0 0 1 0 7.75"/></svg>`,
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
id: 'faq',
|
|
51
|
+
name: 'FAQ & Help',
|
|
52
|
+
description: 'Accordion questions and answers with glass styling.',
|
|
53
|
+
icon: `<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"/><path d="M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3"/><line x1="12" y1="17" x2="12.01" y2="17"/></svg>`,
|
|
54
|
+
},
|
|
55
|
+
{
|
|
56
|
+
id: 'contact',
|
|
57
|
+
name: 'Contact & Support',
|
|
58
|
+
description: 'Contact glass forms, support channels, and inquiries.',
|
|
59
|
+
icon: `<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><rect width="20" height="16" x="2" y="4" rx="2"/><path d="m22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7"/></svg>`,
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
id: 'content',
|
|
63
|
+
name: 'Blog & Content',
|
|
64
|
+
description: 'Article grids, featured posts and changelog timelines.',
|
|
65
|
+
icon: `<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M4 19.5A2.5 2.5 0 0 1 6.5 17H20"/><path d="M6.5 2H20v20H6.5A2.5 2.5 0 0 1 4 19.5v-15A2.5 2.5 0 0 1 6.5 2z"/></svg>`,
|
|
66
|
+
},
|
|
67
|
+
{
|
|
68
|
+
id: 'footer',
|
|
69
|
+
name: 'Footers',
|
|
70
|
+
description: 'Complete site footers with link columns, newsletter and social links.',
|
|
71
|
+
icon: `<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="3" width="18" height="18" rx="2"/><path d="M3 15h18"/></svg>`,
|
|
72
|
+
},
|
|
73
|
+
{
|
|
74
|
+
id: 'commerce',
|
|
75
|
+
name: 'E-commerce',
|
|
76
|
+
description: 'Editorial store sections: shop header with mega menu, hero, collections, product rail, lookbook, reviews and footer.',
|
|
77
|
+
icon: `<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M6 7h12l-1 13H7z"/><path d="M9 7V6a3 3 0 0 1 6 0v1"/></svg>`,
|
|
78
|
+
},
|
|
79
|
+
{
|
|
80
|
+
id: 'logos',
|
|
81
|
+
name: 'Logos & Partners',
|
|
82
|
+
description: 'Client logo clouds, partner grids, and brand badges.',
|
|
83
|
+
icon: `<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M6 3h12l4 6-10 12L2 9z"/></svg>`,
|
|
84
|
+
},
|
|
85
|
+
];
|
|
86
|
+
|
|
87
|
+
export const sections: ComponentDoc[] = [
|
|
88
|
+
// === HERO SECTIONS ===
|
|
89
|
+
{
|
|
90
|
+
slug: 'hero-gradient',
|
|
91
|
+
sectionCategory: 'hero',
|
|
92
|
+
name: 'Hero Gradient',
|
|
93
|
+
description: 'Full-screen hero with animated gradient background, glassmorphism badge, and CTA group.',
|
|
94
|
+
category: 'sections',
|
|
95
|
+
tags: ['hero', 'gradient', 'animated', 'glass', 'fullscreen'],
|
|
96
|
+
featured: true,
|
|
97
|
+
code: source('sections/HeroGradient.astro'),
|
|
98
|
+
usage: `---
|
|
99
|
+
import { HeroGradient } from 'astro-component-kit';
|
|
100
|
+
---
|
|
101
|
+
|
|
102
|
+
<HeroGradient />`,
|
|
103
|
+
},
|
|
104
|
+
{
|
|
105
|
+
slug: 'hero-split',
|
|
106
|
+
sectionCategory: 'hero',
|
|
107
|
+
name: 'Hero Split',
|
|
108
|
+
description: 'Split-screen hero with content column and interactive preview mockup side.',
|
|
109
|
+
category: 'sections',
|
|
110
|
+
tags: ['hero', 'split', 'browser-mockup', 'stats', 'responsive'],
|
|
111
|
+
featured: true,
|
|
112
|
+
code: source('sections/HeroSplit.astro'),
|
|
113
|
+
usage: `---
|
|
114
|
+
import { HeroSplit } from 'astro-component-kit';
|
|
115
|
+
---
|
|
116
|
+
|
|
117
|
+
<HeroSplit />`,
|
|
118
|
+
},
|
|
119
|
+
{
|
|
120
|
+
slug: 'hero-glass',
|
|
121
|
+
sectionCategory: 'hero',
|
|
122
|
+
name: 'Hero Glass',
|
|
123
|
+
description: 'Centered hero with glassmorphism card overlay, animated glowing orbs, and action buttons.',
|
|
124
|
+
category: 'sections',
|
|
125
|
+
tags: ['hero', 'glassmorphism', 'animated-orbs', 'trust', 'responsive'],
|
|
126
|
+
featured: true,
|
|
127
|
+
code: source('sections/HeroGlass.astro'),
|
|
128
|
+
usage: `---
|
|
129
|
+
import { HeroGlass } from 'astro-component-kit';
|
|
130
|
+
---
|
|
131
|
+
|
|
132
|
+
<HeroGlass />`,
|
|
133
|
+
},
|
|
134
|
+
|
|
135
|
+
// === FEATURES SECTIONS ===
|
|
136
|
+
{
|
|
137
|
+
slug: 'feature-bento-grid',
|
|
138
|
+
sectionCategory: 'features',
|
|
139
|
+
name: 'Feature Bento Grid',
|
|
140
|
+
description: 'Modern 6-slot Bento Grid feature showcase with live scores, telemetry badges, and code snippets.',
|
|
141
|
+
category: 'sections',
|
|
142
|
+
tags: ['features', 'bento', 'grid', 'metrics', 'glassmorphism'],
|
|
143
|
+
featured: true,
|
|
144
|
+
code: source('sections/FeatureBentoGrid.astro'),
|
|
145
|
+
usage: `---
|
|
146
|
+
import { FeatureBentoGrid } from 'astro-component-kit';
|
|
147
|
+
---
|
|
148
|
+
|
|
149
|
+
<FeatureBentoGrid />`,
|
|
150
|
+
},
|
|
151
|
+
{
|
|
152
|
+
slug: 'feature-timeline-flow',
|
|
153
|
+
sectionCategory: 'features',
|
|
154
|
+
name: 'Feature Timeline Flow',
|
|
155
|
+
description: 'Step-by-step product architecture workflow section with connected glowing nodes and code examples.',
|
|
156
|
+
category: 'sections',
|
|
157
|
+
tags: ['features', 'timeline', 'workflow', 'steps', 'architecture'],
|
|
158
|
+
featured: true,
|
|
159
|
+
code: source('sections/FeatureTimelineFlow.astro'),
|
|
160
|
+
usage: `---
|
|
161
|
+
import { FeatureTimelineFlow } from 'astro-component-kit';
|
|
162
|
+
---
|
|
163
|
+
|
|
164
|
+
<FeatureTimelineFlow />`,
|
|
165
|
+
},
|
|
166
|
+
|
|
167
|
+
// === PRICING SECTIONS ===
|
|
168
|
+
{
|
|
169
|
+
slug: 'pricing-comparison-matrix',
|
|
170
|
+
sectionCategory: 'pricing',
|
|
171
|
+
name: 'Pricing Comparison Matrix',
|
|
172
|
+
description: 'Interactive pricing matrix with monthly/annual billing toggle, highlighted plan, and full feature checklist.',
|
|
173
|
+
category: 'sections',
|
|
174
|
+
tags: ['pricing', 'matrix', 'comparison', 'toggle', 'saas'],
|
|
175
|
+
featured: true,
|
|
176
|
+
code: source('sections/PricingComparisonMatrix.astro'),
|
|
177
|
+
usage: `---
|
|
178
|
+
import { PricingComparisonMatrix } from 'astro-component-kit';
|
|
179
|
+
---
|
|
180
|
+
|
|
181
|
+
<PricingComparisonMatrix />`,
|
|
182
|
+
},
|
|
183
|
+
{
|
|
184
|
+
slug: 'pricing-tier-cards',
|
|
185
|
+
sectionCategory: 'pricing',
|
|
186
|
+
name: 'Pricing Tier Cards',
|
|
187
|
+
description: '3-tier pricing cards with featured highlight, feature breakdown, and money-back guarantee.',
|
|
188
|
+
category: 'sections',
|
|
189
|
+
tags: ['pricing', 'cards', 'tiers', 'subscription', 'responsive'],
|
|
190
|
+
featured: true,
|
|
191
|
+
code: source('sections/PricingTierCards.astro'),
|
|
192
|
+
usage: `---
|
|
193
|
+
import { PricingTierCards } from 'astro-component-kit';
|
|
194
|
+
---
|
|
195
|
+
|
|
196
|
+
<PricingTierCards />`,
|
|
197
|
+
},
|
|
198
|
+
|
|
199
|
+
// === TESTIMONIALS SECTIONS ===
|
|
200
|
+
{
|
|
201
|
+
slug: 'testimonial-wall-glass',
|
|
202
|
+
sectionCategory: 'testimonials',
|
|
203
|
+
name: 'Testimonial Wall Glass',
|
|
204
|
+
description: 'Social proof testimonial wall with verified customer badges, rating stats, and responsive masonry grid.',
|
|
205
|
+
category: 'sections',
|
|
206
|
+
tags: ['testimonials', 'social-proof', 'reviews', 'ratings', 'glassmorphism'],
|
|
207
|
+
featured: true,
|
|
208
|
+
code: source('sections/TestimonialWallGlass.astro'),
|
|
209
|
+
usage: `---
|
|
210
|
+
import { TestimonialWallGlass } from 'astro-component-kit';
|
|
211
|
+
---
|
|
212
|
+
|
|
213
|
+
<TestimonialWallGlass />`,
|
|
214
|
+
},
|
|
215
|
+
|
|
216
|
+
// === CALL TO ACTION (CTA) SECTIONS ===
|
|
217
|
+
{
|
|
218
|
+
slug: 'cta-glow-banner',
|
|
219
|
+
sectionCategory: 'cta',
|
|
220
|
+
name: 'CTA Glow Banner',
|
|
221
|
+
description: 'High-conversion full-width glass banner with radial glowing mesh, trust badges, and email input.',
|
|
222
|
+
category: 'sections',
|
|
223
|
+
tags: ['cta', 'banner', 'conversion', 'newsletter', 'glow'],
|
|
224
|
+
featured: true,
|
|
225
|
+
code: source('sections/CtaGlowBanner.astro'),
|
|
226
|
+
usage: `---
|
|
227
|
+
import { CtaGlowBanner } from 'astro-component-kit';
|
|
228
|
+
---
|
|
229
|
+
|
|
230
|
+
<CtaGlowBanner />`,
|
|
231
|
+
},
|
|
232
|
+
{
|
|
233
|
+
slug: 'cta-app-download',
|
|
234
|
+
sectionCategory: 'cta',
|
|
235
|
+
name: 'CTA App Download',
|
|
236
|
+
description: 'Mobile application showcase section with phone mockup preview, feature pills, and App Store badges.',
|
|
237
|
+
category: 'sections',
|
|
238
|
+
tags: ['cta', 'mobile', 'app-store', 'download', 'mockup'],
|
|
239
|
+
featured: true,
|
|
240
|
+
code: source('sections/CtaAppDownload.astro'),
|
|
241
|
+
usage: `---
|
|
242
|
+
import { CtaAppDownload } from 'astro-component-kit';
|
|
243
|
+
---
|
|
244
|
+
|
|
245
|
+
<CtaAppDownload />`,
|
|
246
|
+
},
|
|
247
|
+
|
|
248
|
+
// === FAQ SECTIONS ===
|
|
249
|
+
{
|
|
250
|
+
slug: 'faq-accordion-section',
|
|
251
|
+
sectionCategory: 'faq',
|
|
252
|
+
name: 'FAQ Accordion Section',
|
|
253
|
+
description: 'Interactive FAQ section with category filter tabs, accessible animated accordions, and support box.',
|
|
254
|
+
category: 'sections',
|
|
255
|
+
tags: ['faq', 'accordion', 'questions', 'support', 'accessible'],
|
|
256
|
+
featured: true,
|
|
257
|
+
code: source('sections/FaqAccordionSection.astro'),
|
|
258
|
+
usage: `---
|
|
259
|
+
import { FaqAccordionSection } from 'astro-component-kit';
|
|
260
|
+
---
|
|
261
|
+
|
|
262
|
+
<FaqAccordionSection />`,
|
|
263
|
+
},
|
|
264
|
+
|
|
265
|
+
// === STATS SECTIONS ===
|
|
266
|
+
{
|
|
267
|
+
slug: 'stats-metric-showcase',
|
|
268
|
+
sectionCategory: 'stats',
|
|
269
|
+
name: 'Stats Metric Showcase',
|
|
270
|
+
description: 'Data showcase section with 4 KPI cards, progress sparklines, and live network telemetry status.',
|
|
271
|
+
category: 'sections',
|
|
272
|
+
tags: ['stats', 'metrics', 'kpi', 'telemetry', 'data'],
|
|
273
|
+
featured: true,
|
|
274
|
+
code: source('sections/StatsMetricShowcase.astro'),
|
|
275
|
+
usage: `---
|
|
276
|
+
import { StatsMetricShowcase } from 'astro-component-kit';
|
|
277
|
+
---
|
|
278
|
+
|
|
279
|
+
<StatsMetricShowcase />`,
|
|
280
|
+
},
|
|
281
|
+
|
|
282
|
+
// === TEAM SECTIONS ===
|
|
283
|
+
{
|
|
284
|
+
slug: 'team-grid-section',
|
|
285
|
+
sectionCategory: 'team',
|
|
286
|
+
name: 'Team Grid Section',
|
|
287
|
+
description: 'Leadership & team showcase section with profile cards, social links, and open positions hiring banner.',
|
|
288
|
+
category: 'sections',
|
|
289
|
+
tags: ['team', 'people', 'leadership', 'hiring', 'social'],
|
|
290
|
+
featured: true,
|
|
291
|
+
code: source('sections/TeamGridSection.astro'),
|
|
292
|
+
usage: `---
|
|
293
|
+
import { TeamGridSection } from 'astro-component-kit';
|
|
294
|
+
---
|
|
295
|
+
|
|
296
|
+
<TeamGridSection />`,
|
|
297
|
+
},
|
|
298
|
+
|
|
299
|
+
// === CONTACT SECTIONS ===
|
|
300
|
+
{
|
|
301
|
+
slug: 'contact-glass-form',
|
|
302
|
+
sectionCategory: 'contact',
|
|
303
|
+
name: 'Contact Glass Form',
|
|
304
|
+
description: 'Interactive contact section with split support channels, SLA response badge, and glassmorphic inquiry form.',
|
|
305
|
+
category: 'sections',
|
|
306
|
+
tags: ['contact', 'form', 'support', 'channels', 'inquiry'],
|
|
307
|
+
featured: true,
|
|
308
|
+
code: source('sections/ContactGlassForm.astro'),
|
|
309
|
+
usage: `---
|
|
310
|
+
import { ContactGlassForm } from 'astro-component-kit';
|
|
311
|
+
---
|
|
312
|
+
|
|
313
|
+
<ContactGlassForm />`,
|
|
314
|
+
},
|
|
315
|
+
{
|
|
316
|
+
slug: 'testimonial-grid-section',
|
|
317
|
+
sectionCategory: 'testimonials',
|
|
318
|
+
name: 'Testimonial Grid Section',
|
|
319
|
+
description: 'High-converting customer review bento grid featuring avatar ratings, verified badges, and quote spotlights.',
|
|
320
|
+
category: 'sections',
|
|
321
|
+
tags: ["sections","testimonials","reviews","social-proof","grid"],
|
|
322
|
+
featured: true,
|
|
323
|
+
code: source('sections/TestimonialGridSection.astro'),
|
|
324
|
+
usage: `<TestimonialGridSection />`,
|
|
325
|
+
},
|
|
326
|
+
{
|
|
327
|
+
slug: 'logo-cloud-section',
|
|
328
|
+
sectionCategory: 'logos',
|
|
329
|
+
name: 'Logo Cloud Section',
|
|
330
|
+
description: 'Trusted by industry leaders company logo cloud with grayscale filter, hover glow, and ticker animation.',
|
|
331
|
+
category: 'sections',
|
|
332
|
+
tags: ["sections","logos","partners","cloud","social-proof"],
|
|
333
|
+
featured: true,
|
|
334
|
+
code: source('sections/LogoCloudSection.astro'),
|
|
335
|
+
usage: `<LogoCloudSection />`,
|
|
336
|
+
},
|
|
337
|
+
{
|
|
338
|
+
slug: 'hero-showcase-split',
|
|
339
|
+
sectionCategory: 'hero',
|
|
340
|
+
name: 'Hero Showcase Split',
|
|
341
|
+
description: 'High-impact landing hero section with dual-column layout, glowing typography, CTAs, and interactive live preview card.',
|
|
342
|
+
category: 'sections',
|
|
343
|
+
tags: ["sections","hero","landing","showcase","split"],
|
|
344
|
+
featured: true,
|
|
345
|
+
code: source('sections/HeroShowcaseSplit.astro'),
|
|
346
|
+
usage: `<HeroShowcaseSplit />`,
|
|
347
|
+
},
|
|
348
|
+
...sectionsExtra,
|
|
349
|
+
];
|
|
350
|
+
|
|
351
|
+
export function getSectionBySlug(slug: string) {
|
|
352
|
+
return sections.find((s) => s.slug === slug) || null;
|
|
353
|
+
}
|
|
354
|
+
|
|
355
|
+
export function getSectionsByCategory(sectionCategoryId: string) {
|
|
356
|
+
return sections.filter((s) => s.sectionCategory === sectionCategoryId);
|
|
357
|
+
}
|
|
358
|
+
|
|
359
|
+
export function getSectionCategoryById(id: string) {
|
|
360
|
+
return sectionCategories.find((c) => c.id === id) || null;
|
|
361
|
+
}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
// src/data/registry/sources.ts
|
|
2
|
+
// Loads raw component source code at build time (Vite) or runtime (Node/MCP)
|
|
3
|
+
// so registry `code` strings are always identical to the real files without drift.
|
|
4
|
+
import fs from 'node:fs';
|
|
5
|
+
import path from 'node:path';
|
|
6
|
+
|
|
7
|
+
let rawSources: Record<string, string> = {};
|
|
8
|
+
|
|
9
|
+
// When running inside Vite/Astro, use import.meta.glob for eager bundling.
|
|
10
|
+
try {
|
|
11
|
+
// @ts-ignore
|
|
12
|
+
if (typeof import.meta !== 'undefined' && typeof import.meta.glob === 'function') {
|
|
13
|
+
// @ts-ignore
|
|
14
|
+
rawSources = import.meta.glob('../../components/lib/**/*.{astro,ts}', {
|
|
15
|
+
query: '?raw',
|
|
16
|
+
import: 'default',
|
|
17
|
+
eager: true,
|
|
18
|
+
}) as Record<string, string>;
|
|
19
|
+
}
|
|
20
|
+
} catch {
|
|
21
|
+
// Fall back to filesystem in Node.js runtime
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* Returns the raw source of a library file.
|
|
26
|
+
* @param relPath - Path relative to `src/components/lib/`, e.g. `charts/LineChart.astro`.
|
|
27
|
+
*/
|
|
28
|
+
export function source(relPath: string): string {
|
|
29
|
+
if (rawSources[`../../components/lib/${relPath}`]) {
|
|
30
|
+
return rawSources[`../../components/lib/${relPath}`];
|
|
31
|
+
}
|
|
32
|
+
try {
|
|
33
|
+
const fullPath = path.resolve(process.cwd(), 'src/components/lib', relPath);
|
|
34
|
+
if (fs.existsSync(fullPath)) {
|
|
35
|
+
return fs.readFileSync(fullPath, 'utf8');
|
|
36
|
+
}
|
|
37
|
+
} catch {
|
|
38
|
+
// ignore
|
|
39
|
+
}
|
|
40
|
+
return '';
|
|
41
|
+
}
|