dune-react 0.0.11 → 0.0.12

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 (77) hide show
  1. package/dist/components/puck-base/core/fields.d.ts +25 -96
  2. package/dist/components/puck-base/core/fields.js +4 -10
  3. package/dist/components/puck-base/core/icon-catalog.d.ts +14 -0
  4. package/dist/components/puck-base/core/icon-catalog.js +193 -0
  5. package/dist/components/puck-base/fields/action-field.d.ts +23 -1
  6. package/dist/components/puck-base/fields/action-field.js +174 -130
  7. package/dist/components/puck-base/gradient-text.js +1 -1
  8. package/dist/components/puck-base/icon-picker-field.d.ts +8 -0
  9. package/dist/components/puck-base/icon-picker-field.js +153 -0
  10. package/dist/components/puck-base/index.d.ts +1 -1
  11. package/dist/components/puck-block/banner-sections/announcement-banner-1/index.js +1 -1
  12. package/dist/components/puck-block/banner-sections/marquee-1/index.js +6 -4
  13. package/dist/components/puck-block/contact-sections/contact-us-1/index.js +18 -8
  14. package/dist/components/puck-block/contact-sections/contact-us-2/contact-us-2.js +1 -1
  15. package/dist/components/puck-block/contact-sections/contact-us-2/index.js +7 -7
  16. package/dist/components/puck-block/contact-sections/contact-us-3/index.js +2 -2
  17. package/dist/components/puck-block/cta-sections/banner-cta-1/index.js +4 -4
  18. package/dist/components/puck-block/cta-sections/cta-1/index.js +9 -9
  19. package/dist/components/puck-block/cta-sections/gradient-cta-1/index.js +3 -3
  20. package/dist/components/puck-block/cta-sections/newsletter-signup-1/index.js +1 -1
  21. package/dist/components/puck-block/cta-sections/promo-section-1/index.js +5 -5
  22. package/dist/components/puck-block/faq-sections/accordion-1/index.js +7 -3
  23. package/dist/components/puck-block/faq-sections/faq-1/index.js +16 -4
  24. package/dist/components/puck-block/faq-sections/faq-2/index.js +11 -11
  25. package/dist/components/puck-block/feature-sections/bento-1/bento.js +16 -7
  26. package/dist/components/puck-block/feature-sections/bento-1/index.js +19 -6
  27. package/dist/components/puck-block/feature-sections/feature-cards-1/index.js +11 -10
  28. package/dist/components/puck-block/feature-sections/feature-showcase-1/index.js +10 -10
  29. package/dist/components/puck-block/feature-sections/icon-grid-1/index.js +13 -18
  30. package/dist/components/puck-block/feature-sections/product-features-1/index.js +18 -23
  31. package/dist/components/puck-block/footer-sections/footer-1/index.js +17 -22
  32. package/dist/components/puck-block/gallery-sections/gallery-1/index.js +12 -8
  33. package/dist/components/puck-block/gallery-sections/gallery-2/index.js +10 -9
  34. package/dist/components/puck-block/gallery-sections/gallery-3/index.js +17 -14
  35. package/dist/components/puck-block/header-sections/header-1/index.js +56 -40
  36. package/dist/components/puck-block/header-sections/sticky-nav-1/index.js +4 -3
  37. package/dist/components/puck-block/hero-sections/fullscreen-hero-1/index.js +4 -3
  38. package/dist/components/puck-block/hero-sections/gradient-hero-1/index.js +4 -4
  39. package/dist/components/puck-block/hero-sections/grid-hero-1/index.js +8 -8
  40. package/dist/components/puck-block/hero-sections/hero-1/index.js +16 -12
  41. package/dist/components/puck-block/hero-sections/image-hero-1/index.js +2 -2
  42. package/dist/components/puck-block/hero-sections/split-hero-1/index.js +7 -7
  43. package/dist/components/puck-block/hero-sections/video-hero-1/index.js +5 -5
  44. package/dist/components/puck-block/location-sections/location-1/index.js +4 -4
  45. package/dist/components/puck-block/location-sections/location-1/location.js +1 -1
  46. package/dist/components/puck-block/location-sections/location-2/index.js +4 -4
  47. package/dist/components/puck-block/location-sections/location-2/location.js +1 -1
  48. package/dist/components/puck-block/location-sections/location-3/index.js +15 -14
  49. package/dist/components/puck-block/location-sections/location-3/location.d.ts +1 -0
  50. package/dist/components/puck-block/location-sections/location-3/location.js +2 -2
  51. package/dist/components/puck-block/metrics-sections/stats-1/index.js +13 -13
  52. package/dist/components/puck-block/metrics-sections/stats-2/index.js +8 -8
  53. package/dist/components/puck-block/metrics-sections/stats-3/index.js +13 -13
  54. package/dist/components/puck-block/pricing-sections/comparison-1/index.js +2 -2
  55. package/dist/components/puck-block/pricing-sections/pricing-1/index.js +39 -19
  56. package/dist/components/puck-block/pricing-sections/pricing-2/index.js +30 -30
  57. package/dist/components/puck-block/showcase-sections/before-after-1/index.js +12 -12
  58. package/dist/components/puck-block/showcase-sections/case-study-1/index.js +7 -7
  59. package/dist/components/puck-block/showcase-sections/step-by-step-1/index.js +8 -8
  60. package/dist/components/puck-block/team-sections/team-grid-1/index.js +9 -9
  61. package/dist/components/puck-block/team-sections/team-grid-2/index.js +12 -12
  62. package/dist/components/puck-block/team-sections/team-profiles-1/index.js +11 -9
  63. package/dist/components/puck-block/testimonial-sections/customers-1/index.js +18 -7
  64. package/dist/components/puck-block/testimonial-sections/logo-marquee-1/index.js +1 -1
  65. package/dist/components/puck-block/testimonial-sections/logo-wall-1/index.js +7 -7
  66. package/dist/components/puck-block/testimonial-sections/review-section-1/index.js +27 -12
  67. package/dist/components/puck-block/testimonial-sections/testimonials-1/index.js +17 -7
  68. package/dist/components/puck-block/text-sections/articles-1/index.js +11 -6
  69. package/dist/components/puck-block/text-sections/content-section-1/index.js +6 -6
  70. package/dist/components/puck-block/text-sections/rich-text-1/index.js +1 -1
  71. package/dist/components/puck-block/text-sections/rich-text-1/rich-text.js +6 -1
  72. package/dist/components/puck-block/text-sections/tab-section-1/index.js +12 -12
  73. package/dist/components/puck-block/text-sections/timeline-1/index.js +17 -7
  74. package/dist/components/puck-block/text-sections/two-column-1/index.js +10 -10
  75. package/dist/index.js +9 -1
  76. package/dist/node_modules/.pnpm/lucide-react@0.540.0_react@19.2.4/node_modules/lucide-react/dist/esm/DynamicIcon.js +1 -3
  77. package/package.json +2 -1
@@ -1,4 +1,4 @@
1
- import { image1x1Placeholder, image9x16Placeholder, images, buttons, badge } from "../../../puck-base/core/fields.js";
1
+ import { images, buttons, badge } from "../../../puck-base/core/fields.js";
2
2
  import { Hero } from "./hero.js";
3
3
  import { getRandomAdjective } from "../../../puck-base/core/utils.js";
4
4
  import { createStylesDefaults, createStylesField } from "../../../puck-base/core/styles.js";
@@ -39,33 +39,37 @@ const conf = {
39
39
  instructions: "Never select the 'single image 16x9' option. Always include 3 images when selecting the 'three images 1x1, 9:16, 1x1' option."
40
40
  }
41
41
  },
42
- images: { ...images, max: 3 },
42
+ images: { ...images, max: 3, defaultItemProps: { src: "https://images.pexels.com/photos/3888151/pexels-photo-3888151.jpeg?auto=compress&cs=tinysrgb&w=1200", alt: "Modern laptop displaying program code in a clean developer workspace" } },
43
43
  styles: createStylesField()
44
44
  },
45
45
  defaultProps: {
46
46
  displaySize: "default",
47
- heading: "Heading",
48
- description: "Description",
47
+ heading: "Ship products your customers love",
48
+ description: "The all-in-one platform that helps teams design, build, and launch faster — without the chaos.",
49
49
  adjectives: [],
50
50
  badge: {
51
- label: "Badge",
51
+ label: "Now in Beta",
52
52
  url: "",
53
53
  variant: "secondary"
54
54
  },
55
55
  buttons: [
56
56
  {
57
- label: "Secondary CTA",
58
- icon: "ellipsis",
59
- variant: "secondary"
60
- },
61
- {
62
- label: "Primary CTA",
57
+ label: "Start Free Trial",
63
58
  icon: "move-right",
64
59
  variant: "default"
60
+ },
61
+ {
62
+ label: "Watch Demo",
63
+ icon: "play",
64
+ variant: "secondary"
65
65
  }
66
66
  ],
67
67
  imageLayout: "1x1-9x16-1x1",
68
- images: [image1x1Placeholder, image9x16Placeholder, image1x1Placeholder],
68
+ images: [
69
+ { src: "https://images.pexels.com/photos/3888151/pexels-photo-3888151.jpeg?auto=compress&cs=tinysrgb&w=1200", alt: "Modern laptop displaying program code in a clean developer workspace" },
70
+ { src: "https://images.pexels.com/photos/546819/pexels-photo-546819.jpeg?auto=compress&cs=tinysrgb&w=1200", alt: "MacBook Pro showing lines of code with syntax highlighting" },
71
+ { src: "https://images.pexels.com/photos/574071/pexels-photo-574071.jpeg?auto=compress&cs=tinysrgb&w=1200", alt: "Computer monitor displaying colorful code in a dark environment" }
72
+ ],
69
73
  styles: createStylesDefaults()
70
74
  },
71
75
  render: Hero
@@ -37,8 +37,8 @@ const conf = {
37
37
  styles: imageHeroStylesField
38
38
  },
39
39
  defaultProps: {
40
- heading: "Your Story Starts Here",
41
- description: "Create something extraordinary with our platform. Built for dreamers, makers, and innovators.",
40
+ heading: "Build something people want",
41
+ description: "A modern platform for teams who care about speed, quality, and customer experience.",
42
42
  backgroundImage: "https://images.pexels.com/photos/3184291/pexels-photo-3184291.jpeg?auto=compress&cs=tinysrgb&w=1920",
43
43
  buttons: [
44
44
  {
@@ -1,4 +1,4 @@
1
- import { image16x9Placeholder, images, contentFields } from "../../../puck-base/core/fields.js";
1
+ import { images, contentFields } from "../../../puck-base/core/fields.js";
2
2
  import { SplitHero } from "./split-hero.js";
3
3
  import { createStylesDefaults, createStylesField } from "../../../puck-base/core/styles.js";
4
4
  const conf = {
@@ -16,14 +16,14 @@ const conf = {
16
16
  styles: createStylesField()
17
17
  },
18
18
  defaultProps: {
19
- heading: "Launch your next big idea",
20
- description: "A complete platform to build, ship, and scale your product. From idea to launch in record time.",
21
- badge: { label: "New release", url: "", variant: "secondary" },
19
+ heading: "From idea to launch in days, not months",
20
+ description: "Streamline your workflow with intelligent automation, real-time collaboration, and powerful integrations that just work.",
21
+ badge: { label: "New Release", url: "", variant: "secondary" },
22
22
  buttons: [
23
- { label: "Start building", icon: "move-right", variant: "default" },
24
- { label: "See demo", icon: "play", variant: "outline" }
23
+ { label: "Get Started Free", icon: "move-right", variant: "default" },
24
+ { label: "See How It Works", icon: "play", variant: "outline" }
25
25
  ],
26
- images: [image16x9Placeholder],
26
+ images: [{ src: "https://images.pexels.com/photos/4218883/pexels-photo-4218883.jpeg?auto=compress&cs=tinysrgb&w=1200", alt: "Clean developer workspace with computer displaying code" }],
27
27
  imagePosition: "right",
28
28
  styles: createStylesDefaults()
29
29
  },
@@ -1,4 +1,4 @@
1
- import { image16x9Placeholder, image, contentFields } from "../../../puck-base/core/fields.js";
1
+ import { image, contentFields } from "../../../puck-base/core/fields.js";
2
2
  import { VideoHero } from "./video-hero.js";
3
3
  import { createStylesDefaults, createStylesField } from "../../../puck-base/core/styles.js";
4
4
  const conf = {
@@ -13,10 +13,10 @@ const conf = {
13
13
  styles: createStylesField()
14
14
  },
15
15
  defaultProps: {
16
- heading: "See it in action",
17
- description: "Watch how our platform helps teams build faster.",
18
- buttons: [{ label: "Try it free", icon: "move-right", variant: "default" }],
19
- posterImage: image16x9Placeholder,
16
+ heading: "See what's possible",
17
+ description: "Watch how leading teams use our platform to ship 10x faster.",
18
+ buttons: [{ label: "Try It Free", icon: "move-right", variant: "default" }],
19
+ posterImage: { src: "https://images.pexels.com/photos/6985132/pexels-photo-6985132.jpeg?auto=compress&cs=tinysrgb&w=1920", alt: "Dark gradient background for product demo preview" },
20
20
  styles: createStylesDefaults()
21
21
  },
22
22
  render: VideoHero
@@ -70,11 +70,11 @@ const conf = {
70
70
  styles: createStylesField()
71
71
  },
72
72
  defaultProps: {
73
- heading: "Find us in\nLos Angeles",
74
- description: "Located in the heart of Los Angeles, bblopo is easy to reach. Stop by to meet Yanxin and start your fitness journey today.",
73
+ heading: "Our Offices",
74
+ description: "We have offices around the globe. Visit us or get in touch with a local team near you.",
75
75
  contentAlign: "left",
76
76
  contentPosition: "left",
77
- mapEmbedUrl: "https://maps.google.com/maps?q=Los%20Angeles%2C%20California%2C%20United%20States&z=13&t=m&output=embed",
77
+ mapEmbedUrl: "https://maps.google.com/maps?q=San%20Francisco%2C%20California%2C%20United%20States&z=13&t=m&output=embed",
78
78
  mapTitle: "Google Maps",
79
79
  mapFilter: "grayscale(45%) contrast(1.06) brightness(0.98) saturate(0.9)",
80
80
  mapTintMode: "theme",
@@ -82,7 +82,7 @@ const conf = {
82
82
  mapTintOpacity: 0.21,
83
83
  buttons: [
84
84
  {
85
- label: "Call to visit",
85
+ label: "Contact us",
86
86
  variant: "default",
87
87
  size: "default",
88
88
  icon: "none",
@@ -112,7 +112,7 @@ const LocationSection = ({
112
112
  allowFullScreen: true,
113
113
  style: { filter: mapFilter }
114
114
  }
115
- ) : /* @__PURE__ */ jsx("div", { className: "flex h-full w-full items-center justify-center bg-muted text-muted-foreground", children: "地图地址未配置" }),
115
+ ) : /* @__PURE__ */ jsx("div", { className: "flex h-full w-full items-center justify-center bg-muted text-muted-foreground", children: "Map address not configured" }),
116
116
  showMapTint ? /* @__PURE__ */ jsx(
117
117
  "div",
118
118
  {
@@ -82,11 +82,11 @@ const conf = {
82
82
  styles: createStylesField(location2ExtraStyleFields)
83
83
  },
84
84
  defaultProps: {
85
- heading: "Come visit\nus today",
86
- description: "We're in the heart of the city, easy to reach by public transport or car. Drop by any time.",
87
- address: "123 Main Street\nNew York, NY 10001",
85
+ heading: "Our Offices",
86
+ description: "Visit our headquarters in London or reach out to one of our regional offices worldwide.",
87
+ address: "10 Finsbury Square\nLondon, UK EC2A 1AF",
88
88
  contentPosition: "left",
89
- mapEmbedUrl: "https://maps.google.com/maps?q=New%20York%2C%20NY%2C%20United%20States&z=13&t=m&output=embed",
89
+ mapEmbedUrl: "https://maps.google.com/maps?q=London%2C%20United%20Kingdom&z=13&t=m&output=embed",
90
90
  mapTitle: "Google Maps",
91
91
  mapFilter: "grayscale(40%) contrast(1.05) brightness(1.0) saturate(0.85)",
92
92
  mapTintMode: "none",
@@ -66,7 +66,7 @@ const Location2 = ({
66
66
  allowFullScreen: true,
67
67
  style: { filter: mapFilter }
68
68
  }
69
- ) : /* @__PURE__ */ jsx("div", { className: "bg-muted text-muted-foreground flex h-full w-full items-center justify-center text-sm", children: "地图地址未配置" }),
69
+ ) : /* @__PURE__ */ jsx("div", { className: "bg-muted text-muted-foreground flex h-full w-full items-center justify-center text-sm", children: "Map address not configured" }),
70
70
  showMapTint && /* @__PURE__ */ jsx(
71
71
  "div",
72
72
  {
@@ -1,9 +1,9 @@
1
1
  import { Location3 } from "./location.js";
2
2
  import { createStylesDefaults, createStylesField } from "../../../puck-base/core/styles.js";
3
3
  const defaultLocation = {
4
- name: "Downtown",
5
- address: "123 Main Street\nNew York, NY 10001",
6
- phone: "+1 (555) 000-0001",
4
+ name: "San Francisco, CA",
5
+ address: "123 Market Street\nSan Francisco, CA 94105",
6
+ phone: "+1 (415) 555-0100",
7
7
  hours: "Mon–Fri: 9am–6pm\nSat: 10am–4pm",
8
8
  directionsUrl: "https://maps.google.com"
9
9
  };
@@ -43,32 +43,33 @@ const conf = {
43
43
  address: { type: "textarea", contentEditable: true },
44
44
  phone: { type: "text" },
45
45
  hours: { type: "textarea", label: "Business Hours" },
46
- directionsUrl: { type: "text", label: "Directions URL" }
46
+ directionsUrl: { type: "text", label: "Directions URL" },
47
+ directionsLabel: { type: "text", label: "Directions Button Label" }
47
48
  },
48
49
  defaultItemProps: defaultLocation
49
50
  },
50
51
  styles: createStylesField(location3ExtraStyleFields)
51
52
  },
52
53
  defaultProps: {
53
- heading: "Find us\nnear you",
54
- description: "Multiple convenient locations across the city to serve you better.",
54
+ heading: "Our Offices",
55
+ description: "We have teams around the world ready to help you succeed.",
55
56
  mapEmbedUrl: "https://maps.google.com/maps?q=New%20York%2C%20NY%2C%20United%20States&z=11&t=m&output=embed",
56
57
  mapTitle: "Google Maps",
57
58
  mapFilter: "grayscale(35%) contrast(1.05) brightness(1.0)",
58
59
  locations: [
59
60
  defaultLocation,
60
61
  {
61
- name: "Midtown",
62
- address: "456 Park Avenue\nNew York, NY 10022",
63
- phone: "+1 (555) 000-0002",
64
- hours: "Mon–Fri: 8am7pm\nSat–Sun: 10am–5pm",
62
+ name: "London, UK",
63
+ address: "10 Finsbury Square\nLondon, EC2A 1AF",
64
+ phone: "+44 20 7946 0200",
65
+ hours: "Mon–Fri: 9am6pm\nSat: 10am–3pm",
65
66
  directionsUrl: "https://maps.google.com"
66
67
  },
67
68
  {
68
- name: "Brooklyn",
69
- address: "789 Atlantic Ave\nBrooklyn, NY 11217",
70
- phone: "+1 (555) 000-0003",
71
- hours: "Mon–Fri: 9am–6pm\nSat: 11am–4pm",
69
+ name: "Tokyo, Japan",
70
+ address: "1-1-2 Marunouchi\nChiyoda-ku, Tokyo 100-0005",
71
+ phone: "+81 3-1234-5678",
72
+ hours: "Mon–Fri: 9am–6pm",
72
73
  directionsUrl: "https://maps.google.com"
73
74
  }
74
75
  ],
@@ -6,6 +6,7 @@ export interface LocationEntry {
6
6
  phone?: string;
7
7
  hours?: string;
8
8
  directionsUrl?: string;
9
+ directionsLabel?: string;
9
10
  directionsAction?: Action;
10
11
  }
11
12
  export interface Location3Props {
@@ -37,7 +37,7 @@ const Location3 = ({
37
37
  allowFullScreen: true,
38
38
  style: { filter: mapFilter }
39
39
  }
40
- ) : /* @__PURE__ */ jsx("div", { className: "bg-muted text-muted-foreground flex h-full w-full items-center justify-center text-sm", children: "地图地址未配置" }) }),
40
+ ) : /* @__PURE__ */ jsx("div", { className: "bg-muted text-muted-foreground flex h-full w-full items-center justify-center text-sm", children: "Map address not configured" }) }),
41
41
  locations.length > 0 && /* @__PURE__ */ jsx("div", { className: cn("grid grid-cols-1 gap-5", colClass), children: locations.map((loc, i) => /* @__PURE__ */ jsxs(
42
42
  "div",
43
43
  {
@@ -107,7 +107,7 @@ const Location3 = ({
107
107
  (loc.directionsAction || loc.directionsUrl) && /* @__PURE__ */ jsx("div", { className: "mt-auto pt-2", children: /* @__PURE__ */ jsx(
108
108
  CompoundButton,
109
109
  {
110
- label: "Get Directions",
110
+ label: loc.directionsLabel || "Get Directions",
111
111
  action: loc.directionsAction ?? (loc.directionsUrl ? {
112
112
  type: "external",
113
113
  externalUrl: loc.directionsUrl
@@ -67,8 +67,8 @@ const conf = {
67
67
  styles: createStylesField()
68
68
  },
69
69
  defaultProps: {
70
- heading: "The numbers speak for themselves",
71
- description: "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.",
70
+ heading: "Trusted by teams worldwide",
71
+ description: "The numbers behind the platform teams rely on every day.",
72
72
  badge: {
73
73
  label: "Platform",
74
74
  url: "",
@@ -84,32 +84,32 @@ const conf = {
84
84
  ],
85
85
  items: [
86
86
  {
87
- label: "Monthly active users",
88
- value: "500",
87
+ label: "Teams",
88
+ value: "10,000+",
89
89
  percentage: 20.1,
90
90
  direction: "increase",
91
91
  polarity: "positive"
92
92
  },
93
93
  {
94
- label: "Daily active users",
95
- value: "20.1",
94
+ label: "Uptime",
95
+ value: "99.99%",
96
96
  percentage: 2,
97
- direction: "decrease",
98
- polarity: "negative"
97
+ direction: "increase",
98
+ polarity: "positive"
99
99
  },
100
100
  {
101
- label: "Monthly recurring revenue",
102
- value: "$523.520",
101
+ label: "Deployments",
102
+ value: "50M+",
103
103
  percentage: 8,
104
104
  direction: "increase",
105
105
  polarity: "positive"
106
106
  },
107
107
  {
108
- label: "Cost per acquisition",
109
- value: "$5.60",
108
+ label: "Satisfaction",
109
+ value: "4.9/5",
110
110
  percentage: 2,
111
111
  direction: "increase",
112
- polarity: "negative"
112
+ polarity: "positive"
113
113
  }
114
114
  ],
115
115
  layout: "section",
@@ -37,33 +37,33 @@ const conf = {
37
37
  },
38
38
  defaultItemProps: {
39
39
  metric: "100%",
40
- title: "Custom program design",
40
+ title: "Platform metric",
41
41
  variant: "light"
42
42
  }
43
43
  },
44
44
  styles: createStylesField()
45
45
  },
46
46
  defaultProps: {
47
- heading: "Real results from dedicated training",
48
- description: "We focus on measurable progress and sustainable fitness habits. Every client gets customized programs built around their goals and current fitness level.",
47
+ heading: "Built for scale, loved by developers",
48
+ description: "From startups to enterprises, teams ship faster and more reliably with our platform.",
49
49
  buttons: [
50
50
  {
51
- label: "Explore our programs",
51
+ label: "View case studies",
52
52
  variant: "outline",
53
53
  size: "default",
54
54
  icon: "none"
55
55
  },
56
56
  {
57
- label: "Schedule your first session",
57
+ label: "Get started",
58
58
  variant: "default",
59
59
  size: "default",
60
60
  icon: "none"
61
61
  }
62
62
  ],
63
63
  items: [
64
- { metric: "100%", title: "Custom program design", variant: "dark" },
65
- { metric: "1:1", title: "Personalized attention", variant: "light" },
66
- { metric: "LA", title: "Local Los Angeles training", variant: "light" }
64
+ { metric: "99.9%", title: "Platform reliability", variant: "dark" },
65
+ { metric: "2x", title: "Faster deployments", variant: "light" },
66
+ { metric: "150+", title: "Countries served", variant: "light" }
67
67
  ],
68
68
  styles: createStylesDefaults()
69
69
  },
@@ -42,17 +42,17 @@ const conf = {
42
42
  styles: createStylesField()
43
43
  },
44
44
  defaultProps: {
45
- heading: "Real progress from personalized training",
46
- description: "We focus on measurable improvements and sustainable habits that fit your life.",
45
+ heading: "Why teams choose us",
46
+ description: "Ship with confidence using a platform designed for modern development teams.",
47
47
  buttons: [
48
48
  {
49
- label: "Get started",
49
+ label: "Start building",
50
50
  variant: "default",
51
51
  size: "default",
52
52
  icon: "none"
53
53
  },
54
54
  {
55
- label: "Learn more",
55
+ label: "Read the docs",
56
56
  variant: "outline",
57
57
  size: "default",
58
58
  icon: "none"
@@ -60,19 +60,19 @@ const conf = {
60
60
  ],
61
61
  items: [
62
62
  {
63
- metric: "100%",
64
- title: "Customized programs",
65
- description: "Every plan is tailored to your goals, fitness level, and schedule."
63
+ metric: "5,000+",
64
+ title: "Active teams",
65
+ description: "Engineering teams of all sizes trust our platform to ship production software daily."
66
66
  },
67
67
  {
68
- metric: "1-on-1",
69
- title: "Direct coaching",
70
- description: "You work directly with your coach for focused attention and real-time feedback."
68
+ metric: "< 200ms",
69
+ title: "Median response time",
70
+ description: "Edge-optimized infrastructure delivers sub-200ms response times globally."
71
71
  },
72
72
  {
73
- metric: "4 weeks",
74
- title: "Visible results",
75
- description: "Most clients see measurable strength and endurance improvements within the first month."
73
+ metric: "3 min",
74
+ title: "Average setup time",
75
+ description: "Go from sign-up to your first deployment in under three minutes."
76
76
  }
77
77
  ],
78
78
  styles: createStylesDefaults()
@@ -34,8 +34,8 @@ const conf = {
34
34
  styles: createStylesField()
35
35
  },
36
36
  defaultProps: {
37
- heading: "Compare Plans",
38
- description: "Choose the plan that best fits your needs.",
37
+ heading: "Compare plans",
38
+ description: "Find the right plan for your team.",
39
39
  plans: [
40
40
  {
41
41
  name: "Starter",
@@ -35,30 +35,50 @@ const conf = {
35
35
  },
36
36
  defaultProps: {
37
37
  badge: {
38
- label: "Platform",
38
+ label: "Pricing",
39
39
  url: "",
40
40
  variant: "default"
41
41
  },
42
- heading: "Something new!",
43
- description: "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt",
42
+ heading: "Simple, transparent pricing",
43
+ description: "Start free. Upgrade when you're ready. No hidden fees.",
44
44
  buttons: [],
45
- plans: Array.from({ length: 3 }).map((_, index) => ({
46
- name: `Plan ${index + 1}`,
47
- description: "Our goal is to streamline SMB trade, making it easier and faster than ever for everyone and everywhere.",
48
- price: "$40",
49
- cycle: "month",
50
- features: Array.from({ length: 3 }).map((_2, index2) => ({
51
- icon: "check",
52
- name: `Feature ${index2 + 1}`,
53
- description: "We've made it fast and reliable."
54
- })),
55
- button: {
56
- label: "Sign up today",
57
- icon: "arrow-right",
58
- variant: "outline",
59
- size: "default"
45
+ plans: [
46
+ {
47
+ name: "Free",
48
+ description: "For individuals",
49
+ price: "$0",
50
+ cycle: "month",
51
+ features: [
52
+ { icon: "check", name: "1 project", description: "Get started with a single workspace" },
53
+ { icon: "check", name: "Basic analytics", description: "Track page views and key events" },
54
+ { icon: "check", name: "Community support", description: "Get help from our active community" }
55
+ ],
56
+ button: {
57
+ label: "Get Started",
58
+ icon: "arrow-right",
59
+ variant: "outline",
60
+ size: "default"
61
+ }
62
+ },
63
+ {
64
+ name: "Pro",
65
+ description: "For growing teams",
66
+ price: "$29",
67
+ cycle: "month",
68
+ features: [
69
+ { icon: "check", name: "Unlimited projects", description: "No limits on workspaces or environments" },
70
+ { icon: "check", name: "Advanced analytics", description: "Deep insights with custom dashboards" },
71
+ { icon: "check", name: "Priority support", description: "Direct access to our engineering team" },
72
+ { icon: "check", name: "Custom domains", description: "Connect your own domain with auto SSL" }
73
+ ],
74
+ button: {
75
+ label: "Start Free Trial",
76
+ icon: "arrow-right",
77
+ variant: "default",
78
+ size: "default"
79
+ }
60
80
  }
61
- })),
81
+ ],
62
82
  styles: createStylesDefaults()
63
83
  },
64
84
  render: Pricing
@@ -68,72 +68,72 @@ const conf = {
68
68
  styles: createStylesField()
69
69
  },
70
70
  defaultProps: {
71
- heading: "Training plans tailored to you",
72
- description: "Choose the package that fits your goals. Start with one session or commit to a program.",
71
+ heading: "Simple, transparent pricing",
72
+ description: "Start free. Upgrade when you're ready. No hidden fees.",
73
73
  plans: [
74
74
  {
75
75
  badgeLabel: "",
76
- title: "Single Session",
77
- description: "Try a one-on-one training session. Perfect for first-timers or testing your fit.",
78
- price: "$75",
79
- period: "per session",
76
+ title: "Free",
77
+ description: "For individuals getting started.",
78
+ price: "$0",
79
+ period: "per month",
80
80
  button: {
81
- label: "Schedule a session",
81
+ label: "Get Started",
82
82
  variant: "outline",
83
83
  size: "default",
84
84
  icon: "none"
85
85
  },
86
86
  featuresLabel: "What's included:",
87
87
  features: [
88
- { title: "One 60-minute session" },
89
- { title: "Form and technique guidance" },
90
- { title: "Personalized exercise selection" },
91
- { title: "No commitment required" }
88
+ { title: "1 project" },
89
+ { title: "Basic analytics" },
90
+ { title: "Community support" },
91
+ { title: "1 GB storage" }
92
92
  ],
93
93
  isFeatured: false
94
94
  },
95
95
  {
96
96
  badgeLabel: "Most popular",
97
- title: "4-Week Program",
98
- description: "Four weekly sessions designed around your goals. Build momentum and see real progress in a month.",
99
- price: "$260",
97
+ title: "Pro",
98
+ description: "For growing teams that need more power and flexibility.",
99
+ price: "$29",
100
100
  period: "per month",
101
101
  button: {
102
- label: "Start your program",
102
+ label: "Start Free Trial",
103
103
  variant: "default",
104
104
  size: "default",
105
105
  icon: "none"
106
106
  },
107
107
  featuresLabel: "What's included:",
108
108
  features: [
109
- { title: "Four 60-minute sessions" },
110
- { title: "Custom workout plan" },
111
- { title: "Monthly progress check-in" },
112
- { title: "Email support between sessions" },
113
- { title: "Form videos and tips" }
109
+ { title: "Unlimited projects" },
110
+ { title: "Advanced analytics" },
111
+ { title: "Priority support" },
112
+ { title: "Custom domains" },
113
+ { title: "50 GB storage" }
114
114
  ],
115
115
  isFeatured: true
116
116
  },
117
117
  {
118
118
  badgeLabel: "",
119
- title: "8-Week Intensive",
120
- description: "Two sessions per week for eight weeks. Get serious results with consistent training and close coaching.",
121
- price: "$480",
119
+ title: "Enterprise",
120
+ description: "For organizations that need advanced security and dedicated support.",
121
+ price: "$99",
122
122
  period: "per month",
123
123
  button: {
124
- label: "Join the intensive",
124
+ label: "Contact Sales",
125
125
  variant: "outline",
126
126
  size: "default",
127
127
  icon: "none"
128
128
  },
129
129
  featuresLabel: "What's included:",
130
130
  features: [
131
- { title: "Eight 60-minute sessions" },
132
- { title: "Detailed fitness assessment" },
133
- { title: "Progressive training plan" },
134
- { title: "Bi-weekly progress reviews" },
135
- { title: "Priority scheduling" },
136
- { title: "Direct phone and email support" }
131
+ { title: "Everything in Pro" },
132
+ { title: "SSO and SAML" },
133
+ { title: "Dedicated account manager" },
134
+ { title: "99.99% uptime SLA" },
135
+ { title: "Unlimited storage" },
136
+ { title: "Custom integrations" }
137
137
  ],
138
138
  isFeatured: false
139
139
  }