@zoyth/simple-site-framework 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (166) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +572 -0
  3. package/bin/create-simple-site.js +390 -0
  4. package/bin/simple-site.js +664 -0
  5. package/dist/client.js +135 -0
  6. package/dist/client.js.map +1 -0
  7. package/dist/client.mjs +107 -0
  8. package/dist/client.mjs.map +1 -0
  9. package/dist/components/index.d.mts +3936 -0
  10. package/dist/components/index.d.ts +3936 -0
  11. package/dist/components/index.js +38265 -0
  12. package/dist/components/index.js.map +1 -0
  13. package/dist/components/index.mjs +38173 -0
  14. package/dist/components/index.mjs.map +1 -0
  15. package/dist/config/index.d.mts +298 -0
  16. package/dist/config/index.d.ts +298 -0
  17. package/dist/config/index.js +19 -0
  18. package/dist/config/index.js.map +1 -0
  19. package/dist/config/index.mjs +1 -0
  20. package/dist/config/index.mjs.map +1 -0
  21. package/dist/index.d.mts +2184 -0
  22. package/dist/index.d.ts +2184 -0
  23. package/dist/index.js +1713 -0
  24. package/dist/index.js.map +1 -0
  25. package/dist/index.mjs +1605 -0
  26. package/dist/index.mjs.map +1 -0
  27. package/dist/lib/i18n/index.js +665 -0
  28. package/dist/lib/i18n/index.js.map +1 -0
  29. package/dist/lib/i18n/index.mjs +621 -0
  30. package/dist/lib/i18n/index.mjs.map +1 -0
  31. package/docs/DOCUMENTATION-STRUCTURE.md +1156 -0
  32. package/docs/EXPORTS.md +125 -0
  33. package/docs/PERFORMANCE.md +757 -0
  34. package/docs/POLICY-PAGES.md +867 -0
  35. package/docs/ROADMAP.md +334 -0
  36. package/docs/SEO.md +455 -0
  37. package/docs/SITEMAP.md +708 -0
  38. package/docs/STRUCTURED-DATA.md +671 -0
  39. package/docs/accessibility/common-patterns.md +529 -0
  40. package/docs/accessibility/keyboard-navigation.md +263 -0
  41. package/docs/accessibility/overview.md +122 -0
  42. package/docs/accessibility/screen-readers.md +311 -0
  43. package/docs/accessibility/wcag-compliance.md +159 -0
  44. package/docs/api/README.md +164 -0
  45. package/docs/api/components/Accessibility.md +356 -0
  46. package/docs/api/components/Button.md +240 -0
  47. package/docs/api/components/HeroSection.md +306 -0
  48. package/docs/architecture/decisions.md +449 -0
  49. package/docs/components/AnalyticsTracker.md +58 -0
  50. package/docs/components/AnimatedCounter.md +48 -0
  51. package/docs/components/AnimatedSection.md +56 -0
  52. package/docs/components/BlogCard.md +42 -0
  53. package/docs/components/Checkbox.md +56 -0
  54. package/docs/components/CodeBlock.md +52 -0
  55. package/docs/components/ComparisonTable.md +40 -0
  56. package/docs/components/ComponentDemo.md +38 -0
  57. package/docs/components/CountdownTimer.md +51 -0
  58. package/docs/components/ExitIntentModal.md +56 -0
  59. package/docs/components/FAQAccordion.md +66 -0
  60. package/docs/components/FeaturesGrid.md +55 -0
  61. package/docs/components/FileUpload.md +54 -0
  62. package/docs/components/I18nMetaTags.md +55 -0
  63. package/docs/components/Icon.md +53 -0
  64. package/docs/components/LazySection.md +46 -0
  65. package/docs/components/LiveProof.md +53 -0
  66. package/docs/components/LoadingSpinner.md +46 -0
  67. package/docs/components/MultiStepForm.md +48 -0
  68. package/docs/components/PolicyLayout.md +55 -0
  69. package/docs/components/PricingTable.md +49 -0
  70. package/docs/components/Radio.md +59 -0
  71. package/docs/components/SEOMetaTags.md +58 -0
  72. package/docs/components/ScriptInjector.md +50 -0
  73. package/docs/components/Select.md +72 -0
  74. package/docs/components/Skeleton.md +47 -0
  75. package/docs/components/StatsSection.md +48 -0
  76. package/docs/components/StickyBar.md +62 -0
  77. package/docs/components/StructuredData.md +99 -0
  78. package/docs/components/StyleGuide.md +46 -0
  79. package/docs/components/TableOfContents.md +47 -0
  80. package/docs/components/TestimonialCarousel.md +42 -0
  81. package/docs/components/Timeline.md +51 -0
  82. package/docs/components/Toast.md +59 -0
  83. package/docs/components/TrackedLink.md +62 -0
  84. package/docs/components/TrustBadges.md +44 -0
  85. package/docs/components/conversion/MobileCTA.md +363 -0
  86. package/docs/components/forms/ContactForm.md +75 -0
  87. package/docs/components/forms/FormField.md +74 -0
  88. package/docs/components/layout/Footer.md +601 -0
  89. package/docs/components/layout/Header.md +549 -0
  90. package/docs/components/layout/LanguageSelector.md +54 -0
  91. package/docs/components/layout/LanguageSwitcher.md +24 -0
  92. package/docs/components/overview.md +447 -0
  93. package/docs/components/sections/AboutSection.md +48 -0
  94. package/docs/components/sections/CTASection.md +596 -0
  95. package/docs/components/sections/CaseStudySection.md +47 -0
  96. package/docs/components/sections/ContactSection.md +599 -0
  97. package/docs/components/sections/FeatureSection.md +44 -0
  98. package/docs/components/sections/HeroSection.md +404 -0
  99. package/docs/components/sections/LogosSection.md +47 -0
  100. package/docs/components/sections/PersonalTaxesSection.md +23 -0
  101. package/docs/components/sections/RecruitingSection.md +23 -0
  102. package/docs/components/sections/SecurePortalSection.md +23 -0
  103. package/docs/components/sections/ServicePageLayout.md +52 -0
  104. package/docs/components/sections/ServicesSection.md +49 -0
  105. package/docs/components/sections/TestimonialSection.md +44 -0
  106. package/docs/components/sections/WhyChooseUsSection.md +54 -0
  107. package/docs/components/ui/Breadcrumb.md +70 -0
  108. package/docs/components/ui/Button.md +514 -0
  109. package/docs/components/ui/Card.md +501 -0
  110. package/docs/components/ui/Input.md +54 -0
  111. package/docs/components/ui/MobileLinks.md +43 -0
  112. package/docs/components/ui/Modal.md +60 -0
  113. package/docs/components/ui/Tabs.md +62 -0
  114. package/docs/components/ui/Textarea.md +52 -0
  115. package/docs/core-concepts/configuration-driven.md +552 -0
  116. package/docs/core-concepts/overview.md +351 -0
  117. package/docs/features/accessibility/README.md +73 -0
  118. package/docs/features/accessibility/aria-support.md +177 -0
  119. package/docs/features/accessibility/color-contrast.md +155 -0
  120. package/docs/features/accessibility/focus-management.md +187 -0
  121. package/docs/features/accessibility/testing.md +196 -0
  122. package/docs/features/analytics/README.md +51 -0
  123. package/docs/features/analytics/ab-testing.md +171 -0
  124. package/docs/features/analytics/conversion-tracking.md +207 -0
  125. package/docs/features/analytics/custom-events.md +219 -0
  126. package/docs/features/analytics/privacy.md +198 -0
  127. package/docs/features/analytics/setup.md +114 -0
  128. package/docs/features/analytics/tracking-events.md +224 -0
  129. package/docs/features/i18n/README.md +51 -0
  130. package/docs/features/i18n/best-practices.md +273 -0
  131. package/docs/features/i18n/configuration.md +84 -0
  132. package/docs/features/i18n/formatting.md +133 -0
  133. package/docs/features/i18n/locale-detection.md +122 -0
  134. package/docs/features/i18n/routing.md +99 -0
  135. package/docs/features/i18n/rtl-support.md +191 -0
  136. package/docs/features/i18n/translations.md +129 -0
  137. package/docs/features/internationalization.md +595 -0
  138. package/docs/features/performance/README.md +77 -0
  139. package/docs/features/performance/bundle-size.md +134 -0
  140. package/docs/features/performance/caching.md +131 -0
  141. package/docs/features/performance/code-splitting.md +121 -0
  142. package/docs/features/performance/image-optimization.md +110 -0
  143. package/docs/features/performance/lazy-loading.md +92 -0
  144. package/docs/features/performance/monitoring.md +148 -0
  145. package/docs/features/seo/README.md +51 -0
  146. package/docs/features/seo/best-practices.md +184 -0
  147. package/docs/features/seo/canonical-urls.md +182 -0
  148. package/docs/features/seo/meta-tags.md +126 -0
  149. package/docs/features/seo/open-graph.md +166 -0
  150. package/docs/features/seo/robots-txt.md +146 -0
  151. package/docs/features/seo/sitemaps.md +162 -0
  152. package/docs/features/seo/structured-data.md +166 -0
  153. package/docs/getting-started/installation.md +292 -0
  154. package/docs/getting-started/introduction.md +195 -0
  155. package/docs/getting-started/quick-start.md +460 -0
  156. package/docs/guides/analytics-setup.md +616 -0
  157. package/docs/i18n/CONFIGURATION.md +353 -0
  158. package/docs/i18n/EXAMPLES.md +402 -0
  159. package/docs/i18n/MIGRATION.md +260 -0
  160. package/docs/i18n/SEO.md +392 -0
  161. package/docs/i18n/STATIC-GENERATION-FIX.md +71 -0
  162. package/docs/migration/changelog.md +136 -0
  163. package/docs/migration/overview.md +233 -0
  164. package/docs/recipes/adding-animations.md +475 -0
  165. package/docs/recipes/forms-with-validation.md +393 -0
  166. package/package.json +152 -0
@@ -0,0 +1,52 @@
1
+ # CodeBlock
2
+
3
+ Syntax-highlighted code display component.
4
+
5
+ ## Import
6
+
7
+ ```typescript
8
+ import { CodeBlock } from '@zoyth/simple-site-framework';
9
+ ```
10
+
11
+ **Type:** Server Component
12
+
13
+ ## Basic Usage
14
+
15
+ ```typescript
16
+ <CodeBlock
17
+ code={`function hello() {\n console.log('Hello, world!');\n}`}
18
+ language="javascript"
19
+ />
20
+ ```
21
+
22
+ ## Props
23
+
24
+ | Prop | Type | Required | Description |
25
+ |------|------|----------|-------------|
26
+ | `code` | `string` | Yes | Code content |
27
+ | `language` | `string` | Yes | Programming language |
28
+ | `showLineNumbers` | `boolean` | No | Show line numbers |
29
+ | `highlight` | `number[]` | No | Lines to highlight |
30
+ | `className` | `string` | No | Custom classes |
31
+
32
+ ## Examples
33
+
34
+ ```typescript
35
+ // With line numbers
36
+ <CodeBlock
37
+ code={codeString}
38
+ language="typescript"
39
+ showLineNumbers
40
+ />
41
+
42
+ // Highlight specific lines
43
+ <CodeBlock
44
+ code={codeString}
45
+ language="javascript"
46
+ highlight={[3, 4, 5]}
47
+ />
48
+ ```
49
+
50
+ ## See Also
51
+
52
+ - [Documentation](../guides/documentation.md)
@@ -0,0 +1,40 @@
1
+ # ComparisonTable
2
+
3
+ Feature comparison table component.
4
+
5
+ ## Import
6
+
7
+ ```typescript
8
+ import { ComparisonTable } from '@zoyth/simple-site-framework';
9
+ ```
10
+
11
+ **Type:** Server Component
12
+
13
+ ## Basic Usage
14
+
15
+ ```typescript
16
+ <ComparisonTable
17
+ columns={[
18
+ { name: 'Feature', key: 'feature' },
19
+ { name: 'Basic', key: 'basic' },
20
+ { name: 'Pro', key: 'pro' },
21
+ ]}
22
+ rows={[
23
+ { feature: 'Users', basic: '10', pro: 'Unlimited' },
24
+ { feature: 'Storage', basic: '10GB', pro: '1TB' },
25
+ ]}
26
+ />
27
+ ```
28
+
29
+ ## Props
30
+
31
+ | Prop | Type | Required | Description |
32
+ |------|------|----------|-------------|
33
+ | `columns` | `Column[]` | Yes | Table columns |
34
+ | `rows` | `object[]` | Yes | Table rows |
35
+ | `highlightColumn` | `number` | No | Highlighted column index |
36
+ | `className` | `string` | No | Custom classes |
37
+
38
+ ## See Also
39
+
40
+ - [PricingTable](./PricingTable.md)
@@ -0,0 +1,38 @@
1
+ # ComponentDemo
2
+
3
+ Component demonstration wrapper with code preview.
4
+
5
+ ## Import
6
+
7
+ ```typescript
8
+ import { ComponentDemo } from '@zoyth/simple-site-framework';
9
+ ```
10
+
11
+ **Type:** Server Component
12
+
13
+ ## Basic Usage
14
+
15
+ ```typescript
16
+ <ComponentDemo
17
+ title="Button Examples"
18
+ code={`<Button variant="filled">Click Me</Button>`}
19
+ >
20
+ <Button variant="filled">Click Me</Button>
21
+ </ComponentDemo>
22
+ ```
23
+
24
+ ## Props
25
+
26
+ | Prop | Type | Required | Description |
27
+ |------|------|----------|-------------|
28
+ | `title` | `string` | No | Demo title |
29
+ | `code` | `string` | No | Code to display |
30
+ | `children` | `ReactNode` | Yes | Component to demo |
31
+ | `description` | `string` | No | Demo description |
32
+ | `className` | `string` | No | Custom classes |
33
+
34
+ ## See Also
35
+
36
+ - [CodeBlock](./CodeBlock.md)
37
+ - [StyleGuide](./StyleGuide.md)
38
+ - Internal development/documentation tool
@@ -0,0 +1,51 @@
1
+ # CountdownTimer
2
+
3
+ Countdown timer component for time-limited offers.
4
+
5
+ ## Import
6
+
7
+ ```typescript
8
+ import { CountdownTimer } from '@zoyth/simple-site-framework/client';
9
+ ```
10
+
11
+ **Type:** Client Component
12
+
13
+ ## Basic Usage
14
+
15
+ ```typescript
16
+ <CountdownTimer
17
+ targetDate="2024-12-31T23:59:59"
18
+ onComplete={() => console.log('Timer ended')}
19
+ />
20
+ ```
21
+
22
+ ## Props
23
+
24
+ | Prop | Type | Required | Description |
25
+ |------|------|----------|-------------|
26
+ | `targetDate` | `string \| Date` | Yes | Target date/time |
27
+ | `onComplete` | `function` | No | Completion handler |
28
+ | `format` | `'dhms' \| 'hms'` | No | Display format |
29
+ | `className` | `string` | No | Custom classes |
30
+
31
+ ## Examples
32
+
33
+ ```typescript
34
+ // Days, hours, minutes, seconds
35
+ <CountdownTimer
36
+ targetDate="2024-06-01T00:00:00"
37
+ format="dhms"
38
+ />
39
+
40
+ // Hours, minutes, seconds only
41
+ <CountdownTimer
42
+ targetDate={saleEndDate}
43
+ format="hms"
44
+ onComplete={() => setSaleEnded(true)}
45
+ />
46
+ ```
47
+
48
+ ## See Also
49
+
50
+ - [CTASection](./sections/CTASection.md)
51
+ - [AnimatedCounter](./AnimatedCounter.md)
@@ -0,0 +1,56 @@
1
+ # ExitIntentModal
2
+
3
+ Modal that appears when user intends to leave.
4
+
5
+ ## Import
6
+
7
+ ```typescript
8
+ import { ExitIntentModal } from '@zoyth/simple-site-framework/client';
9
+ ```
10
+
11
+ **Type:** Client Component
12
+
13
+ ## Basic Usage
14
+
15
+ ```typescript
16
+ <ExitIntentModal
17
+ title="Wait! Don't Go Yet"
18
+ message="Get 20% off your first purchase"
19
+ cta={{
20
+ text: 'Claim Discount',
21
+ href: '/signup?discount=exit20'
22
+ }}
23
+ />
24
+ ```
25
+
26
+ ## Props
27
+
28
+ | Prop | Type | Required | Description |
29
+ |------|------|----------|-------------|
30
+ | `title` | `string \| LocalizedString` | Yes | Modal title |
31
+ | `message` | `string \| LocalizedString` | Yes | Modal message |
32
+ | `cta` | `CTAConfig` | Yes | Call-to-action |
33
+ | `delay` | `number` | No | Delay before showing (ms) |
34
+ | `cooldown` | `number` | No | Cooldown period (ms) |
35
+ | `className` | `string` | No | Custom classes |
36
+ | `locale` | `string` | No | Current locale |
37
+
38
+ ## Examples
39
+
40
+ ```typescript
41
+ // Newsletter signup
42
+ <ExitIntentModal
43
+ title="Stay Updated"
44
+ message="Subscribe to our newsletter for tips and updates"
45
+ cta={{
46
+ text: 'Subscribe',
47
+ href: '/newsletter'
48
+ }}
49
+ delay={3000}
50
+ />
51
+ ```
52
+
53
+ ## See Also
54
+
55
+ - [Modal](./ui/Modal.md)
56
+ - [MobileCTA](./conversion/MobileCTA.md)
@@ -0,0 +1,66 @@
1
+ # FAQAccordion
2
+
3
+ Frequently asked questions accordion component.
4
+
5
+ ## Import
6
+
7
+ ```typescript
8
+ import { FAQAccordion } from '@zoyth/simple-site-framework';
9
+ ```
10
+
11
+ **Type:** Client Component
12
+
13
+ ## Basic Usage
14
+
15
+ ```typescript
16
+ <FAQAccordion
17
+ faqs={[
18
+ {
19
+ question: 'What is included in the free trial?',
20
+ answer: 'Full access to all features for 14 days.',
21
+ },
22
+ {
23
+ question: 'Can I cancel anytime?',
24
+ answer: 'Yes, cancel anytime with no penalties.',
25
+ },
26
+ ]}
27
+ />
28
+ ```
29
+
30
+ ## Props
31
+
32
+ | Prop | Type | Required | Description |
33
+ |------|------|----------|-------------|
34
+ | `faqs` | `FAQ[]` | Yes | FAQ items |
35
+ | `allowMultiple` | `boolean` | No | Allow multiple open (default: false) |
36
+ | `defaultOpen` | `number[]` | No | Initially open items |
37
+ | `className` | `string` | No | Custom classes |
38
+ | `locale` | `string` | No | Current locale |
39
+
40
+ ### FAQ
41
+
42
+ | Prop | Type | Required | Description |
43
+ |------|------|----------|-------------|
44
+ | `question` | `string \| LocalizedString` | Yes | Question text |
45
+ | `answer` | `string \| LocalizedString` | Yes | Answer text |
46
+
47
+ ## Examples
48
+
49
+ ```typescript
50
+ // Allow multiple open
51
+ <FAQAccordion
52
+ faqs={faqs}
53
+ allowMultiple
54
+ />
55
+
56
+ // Default open first item
57
+ <FAQAccordion
58
+ faqs={faqs}
59
+ defaultOpen={[0]}
60
+ />
61
+ ```
62
+
63
+ ## See Also
64
+
65
+ - [Modal](./ui/Modal.md)
66
+ - [Tabs](./ui/Tabs.md)
@@ -0,0 +1,55 @@
1
+ # FeaturesGrid
2
+
3
+ Grid of features with icons and descriptions.
4
+
5
+ ## Import
6
+
7
+ ```typescript
8
+ import { FeaturesGrid } from '@zoyth/simple-site-framework';
9
+ ```
10
+
11
+ **Type:** Server Component
12
+
13
+ ## Basic Usage
14
+
15
+ ```typescript
16
+ <FeaturesGrid
17
+ heading="Why Choose Us"
18
+ features={[
19
+ {
20
+ title: 'Fast Performance',
21
+ description: 'Lightning-fast load times',
22
+ icon: 'zap',
23
+ },
24
+ {
25
+ title: 'Secure',
26
+ description: 'Enterprise-grade security',
27
+ icon: 'shield',
28
+ },
29
+ ]}
30
+ />
31
+ ```
32
+
33
+ ## Props
34
+
35
+ | Prop | Type | Required | Description |
36
+ |------|------|----------|-------------|
37
+ | `heading` | `string \| LocalizedString` | Yes | Section heading |
38
+ | `description` | `string \| LocalizedString` | No | Section description |
39
+ | `features` | `Feature[]` | Yes | Feature items |
40
+ | `columns` | `number` | No | Grid columns (default: 3) |
41
+ | `className` | `string` | No | Custom classes |
42
+ | `locale` | `string` | No | Current locale |
43
+
44
+ ### Feature
45
+
46
+ | Prop | Type | Required | Description |
47
+ |------|------|----------|-------------|
48
+ | `title` | `string \| LocalizedString` | Yes | Feature title |
49
+ | `description` | `string \| LocalizedString` | Yes | Feature description |
50
+ | `icon` | `string` | No | Icon name |
51
+
52
+ ## See Also
53
+
54
+ - [Icon](./Icon.md)
55
+ - [Card](./ui/Card.md)
@@ -0,0 +1,54 @@
1
+ # FileUpload
2
+
3
+ File upload component with drag-and-drop.
4
+
5
+ ## Import
6
+
7
+ ```typescript
8
+ import { FileUpload } from '@zoyth/simple-site-framework/client';
9
+ ```
10
+
11
+ **Type:** Client Component
12
+
13
+ ## Basic Usage
14
+
15
+ ```typescript
16
+ <FileUpload
17
+ onUpload={(files) => handleFiles(files)}
18
+ accept="image/*"
19
+ maxSize={5242880} // 5MB
20
+ />
21
+ ```
22
+
23
+ ## Props
24
+
25
+ | Prop | Type | Required | Description |
26
+ |------|------|----------|-------------|
27
+ | `onUpload` | `function` | Yes | Upload handler |
28
+ | `accept` | `string` | No | Accepted file types |
29
+ | `maxSize` | `number` | No | Max file size (bytes) |
30
+ | `multiple` | `boolean` | No | Allow multiple files |
31
+ | `disabled` | `boolean` | No | Disable upload |
32
+ | `className` | `string` | No | Custom classes |
33
+
34
+ ## Examples
35
+
36
+ ```typescript
37
+ // Image upload
38
+ <FileUpload
39
+ onUpload={handleImages}
40
+ accept="image/png,image/jpeg"
41
+ maxSize={10485760} // 10MB
42
+ />
43
+
44
+ // Multiple files
45
+ <FileUpload
46
+ onUpload={handleFiles}
47
+ multiple
48
+ accept=".pdf,.doc,.docx"
49
+ />
50
+ ```
51
+
52
+ ## See Also
53
+
54
+ - [FormField](./forms/FormField.md)
@@ -0,0 +1,55 @@
1
+ # I18nMetaTags
2
+
3
+ Internationalization meta tags (hreflang, alternates).
4
+
5
+ ## Import
6
+
7
+ ```typescript
8
+ import { I18nMetaTags } from '@zoyth/simple-site-framework';
9
+ ```
10
+
11
+ **Type:** Server Component
12
+
13
+ ## Basic Usage
14
+
15
+ ```typescript
16
+ <I18nMetaTags
17
+ currentLocale="en"
18
+ pathname="/about"
19
+ baseUrl="https://example.com"
20
+ />
21
+ ```
22
+
23
+ ## Props
24
+
25
+ | Prop | Type | Required | Description |
26
+ |------|------|----------|-------------|
27
+ | `currentLocale` | `string` | Yes | Current locale |
28
+ | `pathname` | `string` | Yes | Current pathname |
29
+ | `baseUrl` | `string` | Yes | Site base URL |
30
+
31
+ ## Generated Tags
32
+
33
+ Automatically generates:
34
+ - Canonical URL
35
+ - hreflang alternate links for all locales
36
+ - x-default alternate link
37
+ - og:locale meta tag
38
+ - og:locale:alternate meta tags
39
+
40
+ ## Examples
41
+
42
+ ```typescript
43
+ // Basic usage
44
+ <I18nMetaTags
45
+ currentLocale={locale}
46
+ pathname="/pricing"
47
+ baseUrl="https://mysite.com"
48
+ />
49
+ ```
50
+
51
+ ## See Also
52
+
53
+ - [SEOMetaTags](./SEOMetaTags.md)
54
+ - [LanguageSelector](./layout/LanguageSelector.md)
55
+ - [Internationalization Guide](../features/internationalization.md)
@@ -0,0 +1,53 @@
1
+ # Icon
2
+
3
+ Icon component with built-in icons.
4
+
5
+ ## Import
6
+
7
+ ```typescript
8
+ import { Icon } from '@zoyth/simple-site-framework';
9
+ ```
10
+
11
+ **Type:** Server Component
12
+
13
+ ## Basic Usage
14
+
15
+ ```typescript
16
+ <Icon name="check" size="md" />
17
+ ```
18
+
19
+ ## Props
20
+
21
+ | Prop | Type | Required | Description |
22
+ |------|------|----------|-------------|
23
+ | `name` | `IconName` | Yes | Icon name |
24
+ | `size` | `'sm' \| 'md' \| 'lg'` | No | Icon size |
25
+ | `className` | `string` | No | Custom classes |
26
+
27
+ ## Available Icons
28
+
29
+ Common icons include: `check`, `x`, `arrow-right`, `arrow-left`, `menu`, `close`, `search`, `user`, `mail`, `phone`, `star`, `heart`, `zap`, `shield`, `code`, `mobile`, `chart`, `clock`, `users`, and more.
30
+
31
+ ## Examples
32
+
33
+ ```typescript
34
+ // Basic icon
35
+ <Icon name="check" />
36
+
37
+ // Large icon
38
+ <Icon name="star" size="lg" />
39
+
40
+ // Custom color
41
+ <Icon name="heart" className="text-red-500" />
42
+
43
+ // In button
44
+ <Button>
45
+ <Icon name="arrow-right" size="sm" className="mr-2" />
46
+ Continue
47
+ </Button>
48
+ ```
49
+
50
+ ## See Also
51
+
52
+ - [FeaturesGrid](./FeaturesGrid.md)
53
+ - [Button](./ui/Button.md)
@@ -0,0 +1,46 @@
1
+ # LazySection
2
+
3
+ Lazy-load sections below the fold for better performance.
4
+
5
+ ## Import
6
+
7
+ ```typescript
8
+ import { LazySection } from '@zoyth/simple-site-framework';
9
+ ```
10
+
11
+ **Type:** Client Component
12
+
13
+ ## Basic Usage
14
+
15
+ ```typescript
16
+ <LazySection>
17
+ <TestimonialSection {...props} />
18
+ </LazySection>
19
+ ```
20
+
21
+ ## Props
22
+
23
+ | Prop | Type | Required | Description |
24
+ |------|------|----------|-------------|
25
+ | `children` | `ReactNode` | Yes | Content to lazy-load |
26
+ | `threshold` | `number` | No | Intersection threshold (default: 0.1) |
27
+ | `rootMargin` | `string` | No | Root margin (default: '50px') |
28
+ | `className` | `string` | No | Custom classes |
29
+
30
+ ## Examples
31
+
32
+ ```typescript
33
+ // Lazy-load testimonials
34
+ <LazySection>
35
+ <TestimonialSection testimonials={testimonials} />
36
+ </LazySection>
37
+
38
+ // Custom threshold
39
+ <LazySection threshold={0.5}>
40
+ <HeavyComponent />
41
+ </LazySection>
42
+ ```
43
+
44
+ ## See Also
45
+
46
+ - [Performance Guide](../guides/performance.md)
@@ -0,0 +1,53 @@
1
+ # LiveProof
2
+
3
+ Social proof notification system showing recent activity.
4
+
5
+ ## Import
6
+
7
+ ```typescript
8
+ import { LiveProof } from '@zoyth/simple-site-framework/client';
9
+ ```
10
+
11
+ **Type:** Client Component
12
+
13
+ ## Basic Usage
14
+
15
+ ```typescript
16
+ <LiveProof
17
+ notifications={[
18
+ {
19
+ message: 'John from New York just signed up',
20
+ timestamp: Date.now() - 60000,
21
+ },
22
+ {
23
+ message: 'Sarah purchased Pro Plan',
24
+ timestamp: Date.now() - 120000,
25
+ },
26
+ ]}
27
+ />
28
+ ```
29
+
30
+ ## Props
31
+
32
+ | Prop | Type | Required | Description |
33
+ |------|------|----------|-------------|
34
+ | `notifications` | `Notification[]` | Yes | Notification items |
35
+ | `interval` | `number` | No | Display interval (ms) |
36
+ | `position` | `'bottom-left' \| 'bottom-right'` | No | Screen position |
37
+ | `className` | `string` | No | Custom classes |
38
+
39
+ ## Examples
40
+
41
+ ```typescript
42
+ // Custom position
43
+ <LiveProof
44
+ notifications={notifications}
45
+ position="bottom-left"
46
+ interval={5000}
47
+ />
48
+ ```
49
+
50
+ ## See Also
51
+
52
+ - [TestimonialSection](./sections/TestimonialSection.md)
53
+ - [MobileCTA](./conversion/MobileCTA.md)
@@ -0,0 +1,46 @@
1
+ # LoadingSpinner
2
+
3
+ Loading spinner component.
4
+
5
+ ## Import
6
+
7
+ ```typescript
8
+ import { LoadingSpinner } from '@zoyth/simple-site-framework';
9
+ ```
10
+
11
+ **Type:** Server Component
12
+
13
+ ## Basic Usage
14
+
15
+ ```typescript
16
+ <LoadingSpinner />
17
+ ```
18
+
19
+ ## Props
20
+
21
+ | Prop | Type | Required | Description |
22
+ |------|------|----------|-------------|
23
+ | `size` | `'sm' \| 'md' \| 'lg'` | No | Spinner size |
24
+ | `color` | `string` | No | Spinner color |
25
+ | `className` | `string` | No | Custom classes |
26
+
27
+ ## Examples
28
+
29
+ ```typescript
30
+ // Large spinner
31
+ <LoadingSpinner size="lg" />
32
+
33
+ // Custom color
34
+ <LoadingSpinner color="primary" />
35
+
36
+ // In button
37
+ <Button disabled>
38
+ <LoadingSpinner size="sm" className="mr-2" />
39
+ Loading...
40
+ </Button>
41
+ ```
42
+
43
+ ## See Also
44
+
45
+ - [Skeleton](./Skeleton.md)
46
+ - [Button](./ui/Button.md)