@kubuild/components 0.7.0 → 0.8.1
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/blocks/index.cjs +601 -12
- package/dist/blocks/index.cjs.map +1 -1
- package/dist/blocks/index.d.ts +2 -1
- package/dist/blocks/index.d.ts.map +1 -1
- package/dist/blocks/index.js +3 -1
- package/dist/blocks/sales.d.ts +7 -0
- package/dist/blocks/sales.d.ts.map +1 -0
- package/dist/canonical-props.d.ts +8 -0
- package/dist/canonical-props.d.ts.map +1 -0
- package/dist/{chunk-3HU2KE2B.js → chunk-CJN5OHHX.js} +596 -9
- package/dist/chunk-CJN5OHHX.js.map +1 -0
- package/dist/{chunk-JTQ35OQQ.js → chunk-DIZKTXJI.js} +601 -13
- package/dist/chunk-DIZKTXJI.js.map +1 -0
- package/dist/definitions/constants.d.ts.map +1 -1
- package/dist/definitions/conversion/accordion.d.ts +8 -0
- package/dist/definitions/conversion/accordion.d.ts.map +1 -0
- package/dist/definitions/conversion/carousel.d.ts +7 -0
- package/dist/definitions/conversion/carousel.d.ts.map +1 -0
- package/dist/definitions/conversion/countdown.d.ts +19 -0
- package/dist/definitions/conversion/countdown.d.ts.map +1 -0
- package/dist/definitions/conversion/divider.d.ts +9 -0
- package/dist/definitions/conversion/divider.d.ts.map +1 -0
- package/dist/definitions/conversion/index.d.ts +7 -0
- package/dist/definitions/conversion/index.d.ts.map +1 -0
- package/dist/definitions/conversion/rating.d.ts +7 -0
- package/dist/definitions/conversion/rating.d.ts.map +1 -0
- package/dist/definitions/conversion/tabs.d.ts +9 -0
- package/dist/definitions/conversion/tabs.d.ts.map +1 -0
- package/dist/definitions/form/button.d.ts.map +1 -1
- package/dist/definitions/index.cjs +746 -147
- package/dist/definitions/index.cjs.map +1 -1
- package/dist/definitions/index.d.ts +1 -0
- package/dist/definitions/index.d.ts.map +1 -1
- package/dist/definitions/index.js +27 -1
- package/dist/definitions/types.d.ts +4 -1
- package/dist/definitions/types.d.ts.map +1 -1
- package/dist/definitions/typography/badge.d.ts.map +1 -1
- package/dist/definitions/typography/blockquote.d.ts.map +1 -1
- package/dist/definitions/typography/heading.d.ts.map +1 -1
- package/dist/definitions/typography/link.d.ts.map +1 -1
- package/dist/definitions/typography/paragraph.d.ts.map +1 -1
- package/dist/definitions/typography/text.d.ts.map +1 -1
- package/dist/index.cjs +1417 -227
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +32 -2
- package/dist/index.js.map +1 -1
- package/dist/registry.d.ts +12 -0
- package/dist/registry.d.ts.map +1 -1
- package/package.json +3 -3
- package/dist/chunk-3HU2KE2B.js.map +0 -1
- package/dist/chunk-JTQ35OQQ.js.map +0 -1
package/dist/blocks/index.cjs
CHANGED
|
@@ -22,6 +22,7 @@ var blocks_exports = {};
|
|
|
22
22
|
__export(blocks_exports, {
|
|
23
23
|
FORM_STARTER_BLOCKS: () => FORM_STARTER_BLOCKS,
|
|
24
24
|
LAYOUT_STARTER_BLOCKS: () => LAYOUT_STARTER_BLOCKS,
|
|
25
|
+
SALES_STARTER_BLOCKS: () => SALES_STARTER_BLOCKS,
|
|
25
26
|
STARTER_BLOCKS: () => STARTER_BLOCKS,
|
|
26
27
|
UI_STARTER_BLOCKS: () => UI_STARTER_BLOCKS,
|
|
27
28
|
defaultGenId: () => defaultGenId
|
|
@@ -616,7 +617,7 @@ var UI_STARTER_BLOCKS = [
|
|
|
616
617
|
id: gen("paragraph"),
|
|
617
618
|
type: "paragraph",
|
|
618
619
|
props: {
|
|
619
|
-
|
|
620
|
+
text: "A visual builder designed for maximum craft, responsiveness, and performance."
|
|
620
621
|
},
|
|
621
622
|
styles: {
|
|
622
623
|
base: {
|
|
@@ -674,7 +675,7 @@ var UI_STARTER_BLOCKS = [
|
|
|
674
675
|
{
|
|
675
676
|
id: gen("badge"),
|
|
676
677
|
type: "badge",
|
|
677
|
-
props: {
|
|
678
|
+
props: { text: "PRO FEATURE", variant: "primary" },
|
|
678
679
|
styles: { base: { marginBottom: "12px", display: "inline-block" } }
|
|
679
680
|
},
|
|
680
681
|
{
|
|
@@ -689,7 +690,7 @@ var UI_STARTER_BLOCKS = [
|
|
|
689
690
|
id: gen("paragraph"),
|
|
690
691
|
type: "paragraph",
|
|
691
692
|
props: {
|
|
692
|
-
|
|
693
|
+
text: "Engineered for sub-millisecond render updates and zero runtime overhead."
|
|
693
694
|
},
|
|
694
695
|
styles: { base: { fontSize: "14px", color: "#64748b", lineHeight: "1.5" } }
|
|
695
696
|
}
|
|
@@ -753,7 +754,7 @@ var UI_STARTER_BLOCKS = [
|
|
|
753
754
|
{
|
|
754
755
|
id: gen("paragraph"),
|
|
755
756
|
type: "paragraph",
|
|
756
|
-
props: {
|
|
757
|
+
props: { text: "High dynamic range gradients crafted for modern presentations." },
|
|
757
758
|
styles: { base: { fontSize: "13px", color: "#64748b", lineHeight: "1.4" } }
|
|
758
759
|
}
|
|
759
760
|
]
|
|
@@ -787,7 +788,7 @@ var UI_STARTER_BLOCKS = [
|
|
|
787
788
|
{
|
|
788
789
|
id: gen("badge"),
|
|
789
790
|
type: "badge",
|
|
790
|
-
props: {
|
|
791
|
+
props: { text: "MOST POPULAR", variant: "primary" },
|
|
791
792
|
styles: { base: { marginBottom: "12px", display: "inline-block" } }
|
|
792
793
|
},
|
|
793
794
|
{
|
|
@@ -807,7 +808,7 @@ var UI_STARTER_BLOCKS = [
|
|
|
807
808
|
{
|
|
808
809
|
id: gen("paragraph"),
|
|
809
810
|
type: "paragraph",
|
|
810
|
-
props: {
|
|
811
|
+
props: { text: "Includes unlimited pages, custom domains, and team collaboration." },
|
|
811
812
|
styles: { base: { fontSize: "14px", color: "#64748b", marginBottom: "24px" } }
|
|
812
813
|
},
|
|
813
814
|
{
|
|
@@ -864,7 +865,7 @@ var UI_STARTER_BLOCKS = [
|
|
|
864
865
|
{
|
|
865
866
|
id: gen("paragraph"),
|
|
866
867
|
type: "paragraph",
|
|
867
|
-
props: {
|
|
868
|
+
props: { text: "Start building with zero installation and instant live preview." },
|
|
868
869
|
styles: {
|
|
869
870
|
base: { fontSize: "16px", color: "#94a3b8", marginBottom: "24px", maxWidth: "600px", margin: "0 auto 24px auto" }
|
|
870
871
|
}
|
|
@@ -947,7 +948,7 @@ var FORM_STARTER_BLOCKS = [
|
|
|
947
948
|
id: gen("paragraph"),
|
|
948
949
|
type: "paragraph",
|
|
949
950
|
props: {
|
|
950
|
-
|
|
951
|
+
text: "Have questions or need assistance? Fill out the form below and we will get back to you shortly."
|
|
951
952
|
},
|
|
952
953
|
styles: {
|
|
953
954
|
base: {
|
|
@@ -1205,7 +1206,7 @@ var FORM_STARTER_BLOCKS = [
|
|
|
1205
1206
|
id: gen("paragraph"),
|
|
1206
1207
|
type: "paragraph",
|
|
1207
1208
|
props: {
|
|
1208
|
-
|
|
1209
|
+
text: "Subscribe to our newsletter for weekly curated insights, updates, and best practices."
|
|
1209
1210
|
},
|
|
1210
1211
|
styles: {
|
|
1211
1212
|
base: {
|
|
@@ -1383,7 +1384,7 @@ var FORM_STARTER_BLOCKS = [
|
|
|
1383
1384
|
{
|
|
1384
1385
|
id: gen("badge"),
|
|
1385
1386
|
type: "badge",
|
|
1386
|
-
props: {
|
|
1387
|
+
props: { text: "FREE CONSULTATION", variant: "primary" },
|
|
1387
1388
|
styles: { base: { marginBottom: "12px", display: "inline-block" } }
|
|
1388
1389
|
},
|
|
1389
1390
|
{
|
|
@@ -1403,7 +1404,7 @@ var FORM_STARTER_BLOCKS = [
|
|
|
1403
1404
|
id: gen("paragraph"),
|
|
1404
1405
|
type: "paragraph",
|
|
1405
1406
|
props: {
|
|
1406
|
-
|
|
1407
|
+
text: "Share your project details with our solutions team. We will analyze your needs and provide a personalized roadmap."
|
|
1407
1408
|
},
|
|
1408
1409
|
styles: {
|
|
1409
1410
|
base: {
|
|
@@ -1644,16 +1645,604 @@ var FORM_STARTER_BLOCKS = [
|
|
|
1644
1645
|
}
|
|
1645
1646
|
];
|
|
1646
1647
|
|
|
1648
|
+
// src/blocks/sales.ts
|
|
1649
|
+
var SALES_CATEGORY = "sales";
|
|
1650
|
+
var SALES_CATEGORY_LABEL = "Sales & Conversion";
|
|
1651
|
+
function sectionShell(gen, children, sectionStyles = {}, maxWidth = "960px") {
|
|
1652
|
+
return {
|
|
1653
|
+
id: gen("section"),
|
|
1654
|
+
type: "section",
|
|
1655
|
+
styles: {
|
|
1656
|
+
...sectionStyles,
|
|
1657
|
+
base: {
|
|
1658
|
+
paddingTop: "64px",
|
|
1659
|
+
paddingBottom: "64px",
|
|
1660
|
+
paddingLeft: "24px",
|
|
1661
|
+
paddingRight: "24px",
|
|
1662
|
+
width: "100%",
|
|
1663
|
+
...sectionStyles.base ?? {}
|
|
1664
|
+
},
|
|
1665
|
+
mobile: {
|
|
1666
|
+
paddingTop: "40px",
|
|
1667
|
+
paddingBottom: "40px",
|
|
1668
|
+
paddingLeft: "16px",
|
|
1669
|
+
paddingRight: "16px",
|
|
1670
|
+
...sectionStyles.mobile ?? {}
|
|
1671
|
+
}
|
|
1672
|
+
},
|
|
1673
|
+
children: [
|
|
1674
|
+
{
|
|
1675
|
+
id: gen("container"),
|
|
1676
|
+
type: "container",
|
|
1677
|
+
props: { tag: "div" },
|
|
1678
|
+
styles: {
|
|
1679
|
+
base: {
|
|
1680
|
+
maxWidth,
|
|
1681
|
+
margin: "0 auto",
|
|
1682
|
+
width: "100%",
|
|
1683
|
+
display: "flex",
|
|
1684
|
+
flexDirection: "column",
|
|
1685
|
+
gap: "24px"
|
|
1686
|
+
}
|
|
1687
|
+
},
|
|
1688
|
+
children
|
|
1689
|
+
}
|
|
1690
|
+
]
|
|
1691
|
+
};
|
|
1692
|
+
}
|
|
1693
|
+
function sectionHeading(gen, text, subtitle, color = "#0f172a") {
|
|
1694
|
+
const nodes = [
|
|
1695
|
+
{
|
|
1696
|
+
id: gen("heading"),
|
|
1697
|
+
type: "heading",
|
|
1698
|
+
props: { text, level: 2 },
|
|
1699
|
+
styles: {
|
|
1700
|
+
base: { fontSize: "32px", fontWeight: "800", color, textAlign: "center", margin: "0" },
|
|
1701
|
+
mobile: { fontSize: "26px" }
|
|
1702
|
+
}
|
|
1703
|
+
}
|
|
1704
|
+
];
|
|
1705
|
+
if (subtitle) {
|
|
1706
|
+
nodes.push({
|
|
1707
|
+
id: gen("paragraph"),
|
|
1708
|
+
type: "paragraph",
|
|
1709
|
+
props: { text: subtitle },
|
|
1710
|
+
styles: { base: { fontSize: "16px", color: "#64748b", textAlign: "center", margin: "0" } }
|
|
1711
|
+
});
|
|
1712
|
+
}
|
|
1713
|
+
return nodes;
|
|
1714
|
+
}
|
|
1715
|
+
function faqItem(gen, question, answer) {
|
|
1716
|
+
return {
|
|
1717
|
+
id: gen("accordion-item"),
|
|
1718
|
+
type: "accordion-item",
|
|
1719
|
+
props: { title: question },
|
|
1720
|
+
styles: { base: { borderBottom: "1px solid #e2e8f0" } },
|
|
1721
|
+
children: [
|
|
1722
|
+
{
|
|
1723
|
+
id: gen("paragraph"),
|
|
1724
|
+
type: "paragraph",
|
|
1725
|
+
props: { text: answer },
|
|
1726
|
+
styles: { base: { fontSize: "15px", color: "#475569", margin: "0", lineHeight: "1.6" } }
|
|
1727
|
+
}
|
|
1728
|
+
]
|
|
1729
|
+
};
|
|
1730
|
+
}
|
|
1731
|
+
function testimonialSlide(gen, quote, name, role, rating) {
|
|
1732
|
+
return {
|
|
1733
|
+
id: gen("flex"),
|
|
1734
|
+
type: "flex",
|
|
1735
|
+
styles: {
|
|
1736
|
+
base: {
|
|
1737
|
+
display: "flex",
|
|
1738
|
+
flexDirection: "column",
|
|
1739
|
+
alignItems: "center",
|
|
1740
|
+
gap: "16px",
|
|
1741
|
+
padding: "32px 48px",
|
|
1742
|
+
textAlign: "center"
|
|
1743
|
+
},
|
|
1744
|
+
mobile: { padding: "24px 40px" }
|
|
1745
|
+
},
|
|
1746
|
+
children: [
|
|
1747
|
+
{
|
|
1748
|
+
id: gen("rating"),
|
|
1749
|
+
type: "rating",
|
|
1750
|
+
props: { value: rating, max: 5, size: 20, color: "#f59e0b" }
|
|
1751
|
+
},
|
|
1752
|
+
{
|
|
1753
|
+
id: gen("blockquote"),
|
|
1754
|
+
type: "blockquote",
|
|
1755
|
+
props: { text: quote },
|
|
1756
|
+
styles: {
|
|
1757
|
+
base: {
|
|
1758
|
+
fontSize: "18px",
|
|
1759
|
+
color: "#0f172a",
|
|
1760
|
+
fontStyle: "italic",
|
|
1761
|
+
margin: "0",
|
|
1762
|
+
lineHeight: "1.6"
|
|
1763
|
+
}
|
|
1764
|
+
}
|
|
1765
|
+
},
|
|
1766
|
+
{
|
|
1767
|
+
id: gen("text"),
|
|
1768
|
+
type: "text",
|
|
1769
|
+
props: { text: `${name} \u2014 ${role}` },
|
|
1770
|
+
styles: { base: { fontSize: "14px", fontWeight: "600", color: "#64748b" } }
|
|
1771
|
+
}
|
|
1772
|
+
]
|
|
1773
|
+
};
|
|
1774
|
+
}
|
|
1775
|
+
function badgeItem(gen, iconName, label) {
|
|
1776
|
+
return {
|
|
1777
|
+
id: gen("flex"),
|
|
1778
|
+
type: "flex",
|
|
1779
|
+
styles: {
|
|
1780
|
+
base: {
|
|
1781
|
+
display: "flex",
|
|
1782
|
+
flexDirection: "column",
|
|
1783
|
+
alignItems: "center",
|
|
1784
|
+
gap: "8px",
|
|
1785
|
+
padding: "16px",
|
|
1786
|
+
textAlign: "center"
|
|
1787
|
+
}
|
|
1788
|
+
},
|
|
1789
|
+
children: [
|
|
1790
|
+
{
|
|
1791
|
+
id: gen("icon"),
|
|
1792
|
+
type: "icon",
|
|
1793
|
+
props: { name: iconName, size: 28, color: "#16a34a", ariaLabel: label }
|
|
1794
|
+
},
|
|
1795
|
+
{
|
|
1796
|
+
id: gen("text"),
|
|
1797
|
+
type: "text",
|
|
1798
|
+
props: { text: label },
|
|
1799
|
+
styles: { base: { fontSize: "14px", fontWeight: "600", color: "#334155" } }
|
|
1800
|
+
}
|
|
1801
|
+
]
|
|
1802
|
+
};
|
|
1803
|
+
}
|
|
1804
|
+
function planCard(gen, name, price, features, highlighted) {
|
|
1805
|
+
return {
|
|
1806
|
+
id: gen("container"),
|
|
1807
|
+
type: "container",
|
|
1808
|
+
props: { tag: "div" },
|
|
1809
|
+
styles: {
|
|
1810
|
+
base: {
|
|
1811
|
+
display: "flex",
|
|
1812
|
+
flexDirection: "column",
|
|
1813
|
+
gap: "12px",
|
|
1814
|
+
padding: "28px 24px",
|
|
1815
|
+
backgroundColor: "#ffffff",
|
|
1816
|
+
borderRadius: "16px",
|
|
1817
|
+
border: highlighted ? "2px solid #2563eb" : "1px solid #e2e8f0"
|
|
1818
|
+
}
|
|
1819
|
+
},
|
|
1820
|
+
children: [
|
|
1821
|
+
{
|
|
1822
|
+
id: gen("heading"),
|
|
1823
|
+
type: "heading",
|
|
1824
|
+
props: { text: name, level: 3 },
|
|
1825
|
+
styles: { base: { fontSize: "20px", fontWeight: "700", color: "#0f172a", margin: "0" } }
|
|
1826
|
+
},
|
|
1827
|
+
{
|
|
1828
|
+
id: gen("heading"),
|
|
1829
|
+
type: "heading",
|
|
1830
|
+
props: { text: price, level: 4 },
|
|
1831
|
+
styles: { base: { fontSize: "32px", fontWeight: "800", color: "#2563eb", margin: "0" } }
|
|
1832
|
+
},
|
|
1833
|
+
{
|
|
1834
|
+
id: gen("list"),
|
|
1835
|
+
type: "list",
|
|
1836
|
+
props: { tag: "ul", listStyleType: "disc" },
|
|
1837
|
+
styles: { base: { fontSize: "14px", color: "#475569", paddingLeft: "20px", margin: "0" } },
|
|
1838
|
+
children: features.map((feature) => ({
|
|
1839
|
+
id: gen("list-item"),
|
|
1840
|
+
type: "list-item",
|
|
1841
|
+
props: { text: feature }
|
|
1842
|
+
}))
|
|
1843
|
+
},
|
|
1844
|
+
{
|
|
1845
|
+
id: gen("button"),
|
|
1846
|
+
type: "button",
|
|
1847
|
+
props: {
|
|
1848
|
+
label: `Choose ${name}`,
|
|
1849
|
+
href: "#checkout",
|
|
1850
|
+
variant: highlighted ? "primary" : "secondary"
|
|
1851
|
+
},
|
|
1852
|
+
styles: {
|
|
1853
|
+
base: {
|
|
1854
|
+
width: "100%",
|
|
1855
|
+
padding: "12px",
|
|
1856
|
+
borderRadius: "8px",
|
|
1857
|
+
fontWeight: "600",
|
|
1858
|
+
marginTop: "8px"
|
|
1859
|
+
}
|
|
1860
|
+
}
|
|
1861
|
+
}
|
|
1862
|
+
]
|
|
1863
|
+
};
|
|
1864
|
+
}
|
|
1865
|
+
function planColumns(gen, plans) {
|
|
1866
|
+
return {
|
|
1867
|
+
id: gen("columns"),
|
|
1868
|
+
type: "columns",
|
|
1869
|
+
props: { columns: plans.length, gap: "16px" },
|
|
1870
|
+
styles: {
|
|
1871
|
+
base: {
|
|
1872
|
+
display: "grid",
|
|
1873
|
+
gridTemplateColumns: `repeat(${plans.length}, minmax(0, 1fr))`,
|
|
1874
|
+
gap: "16px"
|
|
1875
|
+
},
|
|
1876
|
+
mobile: { gridTemplateColumns: "repeat(1, minmax(0, 1fr))" }
|
|
1877
|
+
},
|
|
1878
|
+
children: plans.map(
|
|
1879
|
+
([name, price, features, highlighted]) => planCard(gen, name, price, features, highlighted)
|
|
1880
|
+
)
|
|
1881
|
+
};
|
|
1882
|
+
}
|
|
1883
|
+
var SALES_STARTER_BLOCKS = [
|
|
1884
|
+
{
|
|
1885
|
+
id: "sales-faq",
|
|
1886
|
+
name: "FAQ",
|
|
1887
|
+
category: SALES_CATEGORY,
|
|
1888
|
+
categoryLabel: SALES_CATEGORY_LABEL,
|
|
1889
|
+
description: "Frequently asked questions accordion with FAQPage structured data for SEO",
|
|
1890
|
+
icon: "chevron-down",
|
|
1891
|
+
createNodeTree: (gen = defaultGenId) => sectionShell(
|
|
1892
|
+
gen,
|
|
1893
|
+
[
|
|
1894
|
+
...sectionHeading(
|
|
1895
|
+
gen,
|
|
1896
|
+
"Frequently Asked Questions",
|
|
1897
|
+
"Everything you need to know before you buy."
|
|
1898
|
+
),
|
|
1899
|
+
{
|
|
1900
|
+
id: gen("accordion"),
|
|
1901
|
+
type: "accordion",
|
|
1902
|
+
props: { allowMultiple: false, defaultOpenIndex: 0, icon: "chevron", faqSchema: true },
|
|
1903
|
+
styles: {
|
|
1904
|
+
base: {
|
|
1905
|
+
display: "flex",
|
|
1906
|
+
flexDirection: "column",
|
|
1907
|
+
width: "100%",
|
|
1908
|
+
borderTop: "1px solid #e2e8f0"
|
|
1909
|
+
}
|
|
1910
|
+
},
|
|
1911
|
+
children: [
|
|
1912
|
+
faqItem(
|
|
1913
|
+
gen,
|
|
1914
|
+
"What exactly do I get?",
|
|
1915
|
+
"Instant access to the full program, all bonuses, and every future update."
|
|
1916
|
+
),
|
|
1917
|
+
faqItem(
|
|
1918
|
+
gen,
|
|
1919
|
+
"How long do I have access?",
|
|
1920
|
+
"Lifetime access \u2014 learn at your own pace, on any device."
|
|
1921
|
+
),
|
|
1922
|
+
faqItem(
|
|
1923
|
+
gen,
|
|
1924
|
+
"Is there a money-back guarantee?",
|
|
1925
|
+
"Yes. If you are not satisfied within 30 days, we refund you in full."
|
|
1926
|
+
),
|
|
1927
|
+
faqItem(
|
|
1928
|
+
gen,
|
|
1929
|
+
"How do I pay?",
|
|
1930
|
+
"We accept cards, bank transfer, and e-wallets through a secure checkout."
|
|
1931
|
+
)
|
|
1932
|
+
]
|
|
1933
|
+
}
|
|
1934
|
+
],
|
|
1935
|
+
{},
|
|
1936
|
+
"760px"
|
|
1937
|
+
)
|
|
1938
|
+
},
|
|
1939
|
+
{
|
|
1940
|
+
id: "sales-testimonials",
|
|
1941
|
+
name: "Testimonials Carousel",
|
|
1942
|
+
category: SALES_CATEGORY,
|
|
1943
|
+
categoryLabel: SALES_CATEGORY_LABEL,
|
|
1944
|
+
description: "Customer testimonial slider with star ratings",
|
|
1945
|
+
icon: "star",
|
|
1946
|
+
createNodeTree: (gen = defaultGenId) => sectionShell(
|
|
1947
|
+
gen,
|
|
1948
|
+
[
|
|
1949
|
+
...sectionHeading(gen, "What Our Customers Say"),
|
|
1950
|
+
{
|
|
1951
|
+
id: gen("carousel"),
|
|
1952
|
+
type: "carousel",
|
|
1953
|
+
props: {
|
|
1954
|
+
autoplay: true,
|
|
1955
|
+
interval: 6e3,
|
|
1956
|
+
loop: true,
|
|
1957
|
+
showDots: true,
|
|
1958
|
+
showArrows: true,
|
|
1959
|
+
ariaLabel: "Testimonials"
|
|
1960
|
+
},
|
|
1961
|
+
styles: {
|
|
1962
|
+
base: {
|
|
1963
|
+
position: "relative",
|
|
1964
|
+
width: "100%",
|
|
1965
|
+
overflow: "hidden",
|
|
1966
|
+
backgroundColor: "#f8fafc",
|
|
1967
|
+
borderRadius: "16px"
|
|
1968
|
+
}
|
|
1969
|
+
},
|
|
1970
|
+
children: [
|
|
1971
|
+
testimonialSlide(
|
|
1972
|
+
gen,
|
|
1973
|
+
"This completely changed how I run my business. Worth every cent.",
|
|
1974
|
+
"Sarah K.",
|
|
1975
|
+
"Founder",
|
|
1976
|
+
5
|
|
1977
|
+
),
|
|
1978
|
+
testimonialSlide(
|
|
1979
|
+
gen,
|
|
1980
|
+
"Clear, practical, and easy to follow. I saw results in the first week.",
|
|
1981
|
+
"Budi S.",
|
|
1982
|
+
"Marketing Lead",
|
|
1983
|
+
4.5
|
|
1984
|
+
),
|
|
1985
|
+
testimonialSlide(
|
|
1986
|
+
gen,
|
|
1987
|
+
"The support team is amazing and the material is top-notch.",
|
|
1988
|
+
"Aisha R.",
|
|
1989
|
+
"Freelancer",
|
|
1990
|
+
5
|
|
1991
|
+
)
|
|
1992
|
+
]
|
|
1993
|
+
}
|
|
1994
|
+
],
|
|
1995
|
+
{ base: { backgroundColor: "#ffffff" } },
|
|
1996
|
+
"760px"
|
|
1997
|
+
)
|
|
1998
|
+
},
|
|
1999
|
+
{
|
|
2000
|
+
id: "sales-countdown-banner",
|
|
2001
|
+
name: "Countdown Banner",
|
|
2002
|
+
category: SALES_CATEGORY,
|
|
2003
|
+
categoryLabel: SALES_CATEGORY_LABEL,
|
|
2004
|
+
description: "Limited-time offer banner with an evergreen countdown timer and CTA",
|
|
2005
|
+
icon: "clock",
|
|
2006
|
+
createNodeTree: (gen = defaultGenId) => sectionShell(
|
|
2007
|
+
gen,
|
|
2008
|
+
[
|
|
2009
|
+
...sectionHeading(gen, "Special Launch Price Ends Soon", void 0, "#ffffff"),
|
|
2010
|
+
{
|
|
2011
|
+
id: gen("countdown"),
|
|
2012
|
+
type: "countdown",
|
|
2013
|
+
props: {
|
|
2014
|
+
mode: "evergreen",
|
|
2015
|
+
durationMinutes: 30,
|
|
2016
|
+
format: "d h m s",
|
|
2017
|
+
labelDays: "Days",
|
|
2018
|
+
labelHours: "Hours",
|
|
2019
|
+
labelMinutes: "Minutes",
|
|
2020
|
+
labelSeconds: "Seconds",
|
|
2021
|
+
expireBehavior: "text",
|
|
2022
|
+
expiredText: "The special price has ended.",
|
|
2023
|
+
storage: "session",
|
|
2024
|
+
ariaLabel: "Offer ends in"
|
|
2025
|
+
},
|
|
2026
|
+
styles: {
|
|
2027
|
+
base: {
|
|
2028
|
+
display: "flex",
|
|
2029
|
+
alignItems: "center",
|
|
2030
|
+
justifyContent: "center",
|
|
2031
|
+
gap: "16px",
|
|
2032
|
+
fontSize: "36px",
|
|
2033
|
+
fontWeight: "800",
|
|
2034
|
+
color: "#ffffff",
|
|
2035
|
+
fontVariantNumeric: "tabular-nums"
|
|
2036
|
+
},
|
|
2037
|
+
mobile: { fontSize: "28px", gap: "8px" }
|
|
2038
|
+
}
|
|
2039
|
+
},
|
|
2040
|
+
{
|
|
2041
|
+
id: gen("button"),
|
|
2042
|
+
type: "button",
|
|
2043
|
+
props: { label: "Claim the Offer", href: "#checkout" },
|
|
2044
|
+
styles: {
|
|
2045
|
+
base: {
|
|
2046
|
+
alignSelf: "center",
|
|
2047
|
+
backgroundColor: "#f59e0b",
|
|
2048
|
+
color: "#0f172a",
|
|
2049
|
+
padding: "14px 32px",
|
|
2050
|
+
borderRadius: "9999px",
|
|
2051
|
+
fontSize: "16px",
|
|
2052
|
+
fontWeight: "700"
|
|
2053
|
+
}
|
|
2054
|
+
}
|
|
2055
|
+
}
|
|
2056
|
+
],
|
|
2057
|
+
{ base: { backgroundColor: "#0f172a" } }
|
|
2058
|
+
)
|
|
2059
|
+
},
|
|
2060
|
+
{
|
|
2061
|
+
id: "sales-guarantee",
|
|
2062
|
+
name: "Money-Back Guarantee",
|
|
2063
|
+
category: SALES_CATEGORY,
|
|
2064
|
+
categoryLabel: SALES_CATEGORY_LABEL,
|
|
2065
|
+
description: "Risk-reversal guarantee section with shield icon",
|
|
2066
|
+
icon: "badge",
|
|
2067
|
+
createNodeTree: (gen = defaultGenId) => sectionShell(
|
|
2068
|
+
gen,
|
|
2069
|
+
[
|
|
2070
|
+
{
|
|
2071
|
+
id: gen("flex"),
|
|
2072
|
+
type: "flex",
|
|
2073
|
+
styles: {
|
|
2074
|
+
base: {
|
|
2075
|
+
display: "flex",
|
|
2076
|
+
flexDirection: "row",
|
|
2077
|
+
alignItems: "center",
|
|
2078
|
+
gap: "24px",
|
|
2079
|
+
padding: "32px",
|
|
2080
|
+
backgroundColor: "#f0fdf4",
|
|
2081
|
+
border: "2px dashed #16a34a",
|
|
2082
|
+
borderRadius: "16px"
|
|
2083
|
+
},
|
|
2084
|
+
mobile: { flexDirection: "column", textAlign: "center", padding: "24px" }
|
|
2085
|
+
},
|
|
2086
|
+
children: [
|
|
2087
|
+
{
|
|
2088
|
+
id: gen("icon"),
|
|
2089
|
+
type: "icon",
|
|
2090
|
+
props: { name: "shield-check", size: 64, color: "#16a34a", ariaLabel: "Guarantee" }
|
|
2091
|
+
},
|
|
2092
|
+
{
|
|
2093
|
+
id: gen("flex"),
|
|
2094
|
+
type: "flex",
|
|
2095
|
+
styles: { base: { display: "flex", flexDirection: "column", gap: "8px" } },
|
|
2096
|
+
children: [
|
|
2097
|
+
{
|
|
2098
|
+
id: gen("heading"),
|
|
2099
|
+
type: "heading",
|
|
2100
|
+
props: { text: "30-Day Money-Back Guarantee", level: 3 },
|
|
2101
|
+
styles: {
|
|
2102
|
+
base: { fontSize: "22px", fontWeight: "800", color: "#14532d", margin: "0" }
|
|
2103
|
+
}
|
|
2104
|
+
},
|
|
2105
|
+
{
|
|
2106
|
+
id: gen("paragraph"),
|
|
2107
|
+
type: "paragraph",
|
|
2108
|
+
props: {
|
|
2109
|
+
text: "Try it risk-free. If it is not right for you, email us within 30 days and we will refund every cent \u2014 no questions asked."
|
|
2110
|
+
},
|
|
2111
|
+
styles: {
|
|
2112
|
+
base: { fontSize: "15px", color: "#166534", margin: "0", lineHeight: "1.6" }
|
|
2113
|
+
}
|
|
2114
|
+
}
|
|
2115
|
+
]
|
|
2116
|
+
}
|
|
2117
|
+
]
|
|
2118
|
+
}
|
|
2119
|
+
],
|
|
2120
|
+
{},
|
|
2121
|
+
"760px"
|
|
2122
|
+
)
|
|
2123
|
+
},
|
|
2124
|
+
{
|
|
2125
|
+
id: "sales-trust-badges",
|
|
2126
|
+
name: "Trust Badges",
|
|
2127
|
+
category: SALES_CATEGORY,
|
|
2128
|
+
categoryLabel: SALES_CATEGORY_LABEL,
|
|
2129
|
+
description: "Row of trust signals: secure payment, guarantee, support, and delivery",
|
|
2130
|
+
icon: "grid",
|
|
2131
|
+
createNodeTree: (gen = defaultGenId) => sectionShell(
|
|
2132
|
+
gen,
|
|
2133
|
+
[
|
|
2134
|
+
{
|
|
2135
|
+
id: gen("grid"),
|
|
2136
|
+
type: "grid",
|
|
2137
|
+
styles: {
|
|
2138
|
+
base: {
|
|
2139
|
+
display: "grid",
|
|
2140
|
+
gridTemplateColumns: "repeat(4, minmax(0, 1fr))",
|
|
2141
|
+
gap: "16px"
|
|
2142
|
+
},
|
|
2143
|
+
mobile: { gridTemplateColumns: "repeat(2, minmax(0, 1fr))" }
|
|
2144
|
+
},
|
|
2145
|
+
children: [
|
|
2146
|
+
badgeItem(gen, "lock", "Secure Payment"),
|
|
2147
|
+
badgeItem(gen, "shield-check", "Money-Back Guarantee"),
|
|
2148
|
+
badgeItem(gen, "headphones", "24/7 Support"),
|
|
2149
|
+
badgeItem(gen, "zap", "Instant Access")
|
|
2150
|
+
]
|
|
2151
|
+
},
|
|
2152
|
+
{
|
|
2153
|
+
id: gen("divider"),
|
|
2154
|
+
type: "divider",
|
|
2155
|
+
props: { lineStyle: "solid", thickness: 1, color: "#e2e8f0", label: "" }
|
|
2156
|
+
},
|
|
2157
|
+
{
|
|
2158
|
+
id: gen("paragraph"),
|
|
2159
|
+
type: "paragraph",
|
|
2160
|
+
props: { text: "Trusted by 10,000+ customers." },
|
|
2161
|
+
styles: {
|
|
2162
|
+
base: { fontSize: "14px", color: "#64748b", textAlign: "center", margin: "0" }
|
|
2163
|
+
}
|
|
2164
|
+
}
|
|
2165
|
+
],
|
|
2166
|
+
{ base: { paddingTop: "32px", paddingBottom: "32px" } }
|
|
2167
|
+
)
|
|
2168
|
+
},
|
|
2169
|
+
{
|
|
2170
|
+
id: "sales-plan-comparison",
|
|
2171
|
+
name: "Plan Comparison",
|
|
2172
|
+
category: SALES_CATEGORY,
|
|
2173
|
+
categoryLabel: SALES_CATEGORY_LABEL,
|
|
2174
|
+
description: "Monthly/yearly tabs comparing pricing plans side by side",
|
|
2175
|
+
icon: "columns",
|
|
2176
|
+
createNodeTree: (gen = defaultGenId) => sectionShell(gen, [
|
|
2177
|
+
...sectionHeading(gen, "Choose Your Plan", "Switch between monthly and yearly billing."),
|
|
2178
|
+
{
|
|
2179
|
+
id: gen("tabs"),
|
|
2180
|
+
type: "tabs",
|
|
2181
|
+
props: { activeIndex: 0, ariaLabel: "Billing period" },
|
|
2182
|
+
styles: { base: { display: "flex", flexDirection: "column", width: "100%" } },
|
|
2183
|
+
children: [
|
|
2184
|
+
{
|
|
2185
|
+
id: gen("tab-panel"),
|
|
2186
|
+
type: "tab-panel",
|
|
2187
|
+
props: { label: "Monthly" },
|
|
2188
|
+
styles: { base: { paddingTop: "24px" } },
|
|
2189
|
+
children: [
|
|
2190
|
+
planColumns(gen, [
|
|
2191
|
+
["Basic", "$19 / mo", ["1 project", "Email support", "Core features"], false],
|
|
2192
|
+
[
|
|
2193
|
+
"Pro",
|
|
2194
|
+
"$49 / mo",
|
|
2195
|
+
["Unlimited projects", "Priority support", "All features"],
|
|
2196
|
+
true
|
|
2197
|
+
]
|
|
2198
|
+
])
|
|
2199
|
+
]
|
|
2200
|
+
},
|
|
2201
|
+
{
|
|
2202
|
+
id: gen("tab-panel"),
|
|
2203
|
+
type: "tab-panel",
|
|
2204
|
+
props: { label: "Yearly" },
|
|
2205
|
+
styles: { base: { paddingTop: "24px" } },
|
|
2206
|
+
children: [
|
|
2207
|
+
planColumns(gen, [
|
|
2208
|
+
[
|
|
2209
|
+
"Basic",
|
|
2210
|
+
"$190 / yr",
|
|
2211
|
+
["1 project", "Email support", "Core features", "2 months free"],
|
|
2212
|
+
false
|
|
2213
|
+
],
|
|
2214
|
+
[
|
|
2215
|
+
"Pro",
|
|
2216
|
+
"$490 / yr",
|
|
2217
|
+
["Unlimited projects", "Priority support", "All features", "2 months free"],
|
|
2218
|
+
true
|
|
2219
|
+
]
|
|
2220
|
+
])
|
|
2221
|
+
]
|
|
2222
|
+
}
|
|
2223
|
+
]
|
|
2224
|
+
},
|
|
2225
|
+
{
|
|
2226
|
+
id: gen("spacer"),
|
|
2227
|
+
type: "spacer",
|
|
2228
|
+
styles: { base: { width: "100%", height: "16px" }, mobile: { height: "8px" } }
|
|
2229
|
+
}
|
|
2230
|
+
])
|
|
2231
|
+
}
|
|
2232
|
+
];
|
|
2233
|
+
|
|
1647
2234
|
// src/blocks/index.ts
|
|
1648
2235
|
var STARTER_BLOCKS = [
|
|
1649
2236
|
...LAYOUT_STARTER_BLOCKS,
|
|
1650
2237
|
...UI_STARTER_BLOCKS,
|
|
1651
|
-
...FORM_STARTER_BLOCKS
|
|
2238
|
+
...FORM_STARTER_BLOCKS,
|
|
2239
|
+
...SALES_STARTER_BLOCKS
|
|
1652
2240
|
];
|
|
1653
2241
|
// Annotate the CommonJS export names for ESM import in node:
|
|
1654
2242
|
0 && (module.exports = {
|
|
1655
2243
|
FORM_STARTER_BLOCKS,
|
|
1656
2244
|
LAYOUT_STARTER_BLOCKS,
|
|
2245
|
+
SALES_STARTER_BLOCKS,
|
|
1657
2246
|
STARTER_BLOCKS,
|
|
1658
2247
|
UI_STARTER_BLOCKS,
|
|
1659
2248
|
defaultGenId
|