-
-
- { content.favoriteInfo }
-
+
+
+ { content.favouriteNote }
);
diff --git a/src/OnboardingSPA/steps/SiteGen/Preview/pattern.js b/src/OnboardingSPA/steps/SiteGen/Preview/pattern.js
new file mode 100644
index 000000000..46fd2d7fd
--- /dev/null
+++ b/src/OnboardingSPA/steps/SiteGen/Preview/pattern.js
@@ -0,0 +1,636 @@
+/* eslint-disable jsdoc/newline-after-description */
+const pattern1 = `\n
\n \n\t
\n\t\t\n\t\t
Business Consulting Solutions
\n\t\t\n\t\t\n\t\t
Make your company leader in the industry \n\t\t\n\t\t\n\t\t
\n\t\t\t\n\t\t\t
\n\t\t\t\n\t\t\t\n\t\t\t
\n\t\t\t\n\t\t
\n\t\t\n\t
\n\t\n\t\n\t
\n\t\t\n\t\t
\n\t\t\t\n\t\t\t
\n\t\t\t\n\t\t
\n\t\t\n\t\t\n\t\t
\n\t\t\t\n\t\t\t
\n\t\t\t\n\t\t
\n\t\t\n\t\t\n\t\t
\n\t\t\t\n\t\t\t
\n\t\t\t\n\t\t
\n\t\t\n\t
\n\t\n
\n \n\n\n
\n \n\t
\n\t\t\n\t\t
\n\t\t\t\n\t\t\t
\n\t\t\t\t\n\t\t\t\t
\n\t\t\t\t\n\t\t\t
\n\t\t\t\n\t\t\t\n\t\t\t
\n\t\t\t\t\n\t\t\t\t
\n\t\t\t\t\n\t\t\t
\n\t\t\t\n\t\t\t\n\t\t\t
\n\t\t\t\t\n\t\t\t\t
\n\t\t\t\t\n\t\t\t
\n\t\t\t\n\t\t\t\n\t\t\t
\n\t\t\t\t\n\t\t\t\t
\n\t\t\t\t\n\t\t\t
\n\t\t\t\n\t\t
\n\t\t\n\t
\n\t\n
\n \n\n\n
\n \n
\n \n
Area of Practice \n \n \n \n \n\t\n\t
\n\t\t\n\t\t
\n\t\t\t\n\t\t\t
\n\t\t\t\t\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t\t
01
\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t
Portfolio Management
\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t\t
We will work with you to create a personalised plan to help you achieve your financial goals.
\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t\t\n\t\t\t
\n\t\t\t\n\t\t\t\n\t\t\t
\n\t\t\t\t\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t\t
02
\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t
Performance Reviews
\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t\t
We will work with you to create a personalised plan to help you achieve your financial goals.
\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t\t\n\t\t\t
\n\t\t\t\n\t\t\t\n\t\t\t
\n\t\t\t\t\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t\t
03
\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t
Financial Planning
\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t\t
We will work with you to create a personalised plan to help you achieve your financial goals.
\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t\t\n\t\t\t
\n\t\t\t\n\t\t
\n\t\t\n\t\t\n\t\t
\n\t\t\t\n\t\t\t
\n\t\t\t\t\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t\t
04
\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t
Portfolio Management
\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t\t
We will work with you to create a personalised plan to help you achieve your financial goals.
\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t\t\n\t\t\t
\n\t\t\t\n\t\t\t\n\t\t\t
\n\t\t\t\t\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t\t
05
\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t
Performance Reviews
\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t\t
We will work with you to create a personalised plan to help you achieve your financial goals.
\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t\t\n\t\t\t
\n\t\t\t\n\t\t\t\n\t\t\t
\n\t\t\t\t\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t\t
06
\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t
Financial Planning
\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t\t
We will work with you to create a personalised plan to help you achieve your financial goals.
\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t\t\n\t\t\t
\n\t\t\t\n\t\t
\n\t\t\n\t
\n\t\n
\n \n\n\n
\n\n\n\n
\n\n \n\t
\n\t\t\n\t\t
\n\t\t\t\n\t\t\t
\n\t\t\t\t\n\t\t\t\t
\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t
\n\t\t\t\t\n\t\t\t
\n\t\t\t\n\t\t
\n\t\t\n\t\t\n\t\t
\n\t\t\t\n\t\t\t
Explore Our Unmatched Consulting Solutions \n\t\t\t\n\t\t\t\n\t\t\t
\n\t\t\t\t\n\t\t\t\t
Experience exceptional consulting services at our well-established agency. We offer comprehensive solutions for both established and emerging businesses, tailored to your unique needs.
\n\t\t\t\t\n\t\t\t
\n\t\t\t\n\t\t\t\n\t\t\t
\n\t\t\t\n\t\t
\n\t\t\n\t
\n\t\n\n \n\t
\n\t\t\n\t\t
\n\t\t\t\n\t\t\t
Come and Experience Our Unforgettable Cuisine \n\t\t\t\n\t\t\t\n\t\t\t
\n\t\t\t\t\n\t\t\t\t
Experience exquisite fine dining at our newly opened restaurant. Enjoy a delicious menu of classic and modern dishes, prepared with the freshest ingredients.
\n\t\t\t\t\n\t\t\t
\n\t\t\t\n\t\t\t\n\t\t\t
\n\t\t\t\n\t\t
\n\t\t\n\t
\n\t\n\t
\n\t\t\n\t\t
\n\t\t\t\n\t\t\t
\n\t\t\t\n\t\t\t\n\t\t\t
\n\t\t\t\n\t\t
\n\t\t\n\t
\n\t\n\t\n\n
\n\n \n\n
\n \n\t
\n\t\t\n\t\t
\n\t\t\t\n\t\t\t
\n\t\t\t\t\n\t\t\t\t
2.5k \n\t\t\t\t\n\t\t\t\t\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t
Clients served
\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t\t\n\t\t\t
\n\t\t\t\n\t\t
\n\t\t\n\t\t\n\t\t
\n\t\t\t\n\t\t\t
\n\t\t\t\t\n\t\t\t\t
10k \n\t\t\t\t\n\t\t\t\t\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t
Projects completed
\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t\t\n\t\t\t
\n\t\t\t\n\t\t
\n\t\t\n\t\t\n\t\t
\n\t\t\t\n\t\t\t
\n\t\t\t\t\n\t\t\t\t
1.2k \n\t\t\t\t\n\t\t\t\t\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t
Marketing campaigns
\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t\t\n\t\t\t
\n\t\t\t\n\t\t
\n\t\t\n\t\t\n\t\t
\n\t\t\t\n\t\t\t
\n\t\t\t\t\n\t\t\t\t
15 \n\t\t\t\t\n\t\t\t\t\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t
Full-time consultants
\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t\t\n\t\t\t
\n\t\t\t\n\t\t
\n\t\t\n\t
\n\t\n
\n \n\n\n
\n \n\t
★ ★ ★ ★ ★
\n\t\n\t\n\t
\n\t\t\n\t\t
My experience at the restaurant was great. The food was delicious, the service was excellent, and the atmosphere was cozy and inviting. Highly recommend this restaurant.
\n\t\t\n\t
\n\t\n\t\n\t
\n\t\t\n\t\t
\n\t\t\t\n\t\t\t
\n\t\t\t\n\t\t\t\n\t\t\t
\n\t\t\t\tAlex Martinez \n\t\t\t
\n\t\t\t\n\t\t
\n\t\t\n\t\t\n\t\t
/
\n\t\t\n\t\t\n\t\t
Customer
\n\t\t\n\t
\n\t\n
\n \n\n\n
\n \n\t
\n\t\t
\n\t\t
\n\t\t\t\n\t\t\t
\n\t\t\t\t\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t\t
We\'re meticulous in our approach so you can focus on your business. \n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
✓ Streamlined process
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
✓ Flawless events
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t\t\n\t\t\t
\n\t\t\t\n\t\t
\n\t
\n\t\n
\n \n\n\n
\n \n\t
\n\t\t\n\t\t
\n\t\t\t\n\t\t\t
Frequently Asked Questions \n\t\t\t\n\t\t\n\t\t\n\t\t\n\t\t
\n\t\t\t\n\t\t\t
\n\t\t\t\t\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t\t
Is there a free trial available? \n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
Yes, we offer a free trial period of 14 days. During this period, you will have full access to all of our features and services.
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t\t
How do I change my personal information? \n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
You can update name, email address and other personal information from the "Settings" section.
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t\t
Can I change my plan later? \n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
Yes, you can upgrade or downgrade your plan at any time.
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t\t
How does billing work? \n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
We have a simple billing system which allows you to pay for services on a monthly basis.
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t\t
Can I get an invoice for my purchase? \n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
Yes, you can. Please contact our customer support and provide your purchase number.
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t\t\n\t\t\t
\n\t\t\t\n\t\t
\n\t\t\n\t
\n\t\n
\n \n\n\n
\n\n \n\t
\n\n\t\t\t\t\t\n\t\t\t
\n\t\t\t\t\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t
Discover Our Consulting Services
\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t\t\n\t\t\t
\n\t\t\t\n\t\t\n\t\t\n\t\t
Our Agency\'s Expertise \n\t\t\n\t
\n\t\n\n \n\t
\n\t\t\n\t\t\n\t\t\n\t\t
\n\t\t\t\n\t\t\t
\n\t\t\t\t\n\t\t\t
\n\t\t\t\n\t\t
\n\t\t\n\t\t\n\t\t
\n\t\t\t\n\t\t
\n\t\t\n\t\t\n\t\t\n\t\t\n\t
\n\t\n\n
\n`;
+
+const pattern2 = `
+
+
+
+
+
+
+
+
+
+
+
+
Home
+
+
+
+
About
+
+
+
+
Services
+
+
+
+
Blog
+
+
+
+
Contact
+
+
+
+
+
+
+
+
+
+
+
+
Lorem ipsum dolor sit amet, sitelit.
+
+
+
+
Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
About Us
+
+
+
+
It is a long established fact that a reader will be distracted by the readable content of a page when looking at its layout. The point of using Lorem Ipsum is that it has a more-or-less normal distribution of letters, as opposed to using 'Content here, content here', making it look like readable English. Many desktop publishing packages and web page editors now use Lorem Ipsum as their default model text, and a search for 'lorem ipsum' will uncover many web sites still in their infancy. Various versions have evolved over the years, sometimes by accident, sometimes on purpose (injected humour and the like).
+
+
+
+
+
+
+
+
+
Try Premium for free
+
+
+
+
We provide 15 days trial to all the users willing to try Rara permium services.
+
+
+
+
+
+
+
+
+
+
+
Client’s Logo Section
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Subscribe Newsletter
+
+
+
+
+
+
FOLLow US
+
+
+
+
+
+
+
+
+
+
+
+
+`;
+
+const pattern3 = `
+
+
+
Travelling on a shoestring
+
+
+
+
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
10
+
+
+
+
Years of Experience
+
+
+
+
We love Travelling
+
+
+
+
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Lorem ipsum dolor sit amet, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
+
+
+
+
+
+
+
+
+
+
+
+
+
Travelling is art on the move
+
+
+
+
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
+
+
+
+
+
+
+
+
+
+
Your adventure begins here
+
+
+
+
+
+
+
+
Numbers speak for themselves
+
+
+
+
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua
+
+
+
+
+
+
+
+
+
62
+
+
+
+Countries Visited
+
+
+
+
+
+
134
+
+
+
+Adventure Trips
+
+
+
+
+
+
1500
+
+
+
+Happy Customers
+
+
+
+
+
+
+
+
+
+
+
+
Our experienced travel agents are dedicated to providing top-quality service!
+
+
+
+
+
+
+
+
+
+
CONTACT
+
+
+
+
100 Main Street, Cape Town, 10278
+
+
+
+
0800 1234 1234
+
+
+
+
mail@example.com
+
+
+
+
+
+
+
+
+
+
+
+
+
+ `;
+
+const pattern4 = `
+
+
+
+
+
+
+
+
+
+
+
Home
+
+
+
+
About
+
+
+
+
Team
+
+
+
+
Blog
+
+
+
+
Contact Us
+
+
+
+
+
+
+
+
+
+
+
+
+
WP Support
+
+
+
+
Empowering Your WordPress Journey?
+
+
+
+
Welcome to WordPress Team, your go-to resource for all things WordPress. Our dedicated team of experts is passionate about empowering WordPress enthusiasts like you. Whether you're a beginner or an experienced user, we're here to provide valuable insights, tips, and tutorials to help you make the most out of your WordPress journey.
+
+
+
+
+
+
+
+
+
+
+
+
wordpress
+
+
+
+
WordPress is open source software you can use to create a beautiful website, blog, or app.Beautiful designs, powerful features, and the freedom to build anything you want. WordPress is both free and priceless at the same time.
+
+
+
+
Email us - simple@gmail.com
+
+
+
+
+
+
Quick Link
+
+
+
+
Home
+
+
+
+
About Us
+
+
+
+
Shop
+
+
+
+
Team
+
+
+
+
Blog
+
+
+
+
Contact Us
+
+
+
+
+
+
Products
+
+
+
+
Home
+
+
+
+
About Us
+
+
+
+
Shop
+
+
+
+
Services
+
+
+
+
Blog
+
+
+
+
Contact Us
+
+
+
+
+
+
Subscribe Newsletter
+
+
+
+
Join 1,933,300 other subscribers
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Copyright © 2023 wordpress.org
+
+
+
+
+`;
+
+const homepageData = {
+ homepages: {
+ active: {},
+ data: [
+ {
+ slug: 'hash1',
+ title: 'Version 1',
+ favorite: false,
+ content: pattern1,
+ },
+ {
+ slug: 'hash2',
+ title: 'Version 2',
+ favorite: false,
+ content: pattern2,
+ },
+ {
+ slug: 'hash3',
+ title: 'Version 3',
+ favorite: false,
+ content: pattern3,
+ },
+ {
+ slug: 'hash4',
+ title: 'Version 4',
+ favorite: false,
+ content: pattern4,
+ },
+ ],
+ },
+};
+
+export { homepageData };
diff --git a/src/OnboardingSPA/steps/SiteGen/Preview/regeneratingCard.js b/src/OnboardingSPA/steps/SiteGen/Preview/regeneratingCard.js
new file mode 100644
index 000000000..fc9e952d8
--- /dev/null
+++ b/src/OnboardingSPA/steps/SiteGen/Preview/regeneratingCard.js
@@ -0,0 +1,25 @@
+import { __ } from '@wordpress/i18n';
+
+function RegeneratingSiteCard( { count = 1, isRegenerating } ) {
+ const cards = [];
+ for ( let i = 0; i < count; i++ ) {
+ cards.push(
+
+
+
+ { isRegenerating
+ ? __( 'Regenerating Site', 'wp-module-onboarding' )
+ : __( 'Generating Site', 'wp-module-onboarding' ) }
+
+
+
+
+ );
+ }
+
+ return <>{ cards }>;
+}
+
+export default RegeneratingSiteCard;
diff --git a/src/OnboardingSPA/steps/SiteGen/Preview/stylesheet.scss b/src/OnboardingSPA/steps/SiteGen/Preview/stylesheet.scss
index 27a3ea8c7..95328801a 100644
--- a/src/OnboardingSPA/steps/SiteGen/Preview/stylesheet.scss
+++ b/src/OnboardingSPA/steps/SiteGen/Preview/stylesheet.scss
@@ -1,66 +1,176 @@
-.nfd-onboarding-step {
+.nfd-onboarding-step--site-gen__preview {
+ display: flex;
+ flex-direction: column;
+ align-items: center;
- &--site-gen {
+ &__container {
+ display: flex;
+ justify-content: center;
+ flex-wrap: wrap;
+ max-width: 500px;
+ padding-top: 32px;
+ margin-bottom: 15px;
- &__preview {
+ &__heading {
display: flex;
- flex-direction: column;
- justify-content: space-evenly;
+ flex-direction: row;
+ width: 100%;
+ padding: 0;
+ justify-content: center;
align-items: center;
- &__context {
- text-align: center;
+ &__text {
color: var(--nfd-onboarding-primary);
- display: flex;
- flex-direction: column;
- width: 420px;
- justify-content: center;
- align-items: center;
- margin: 16px 0;
-
- &__heading {
- font-size: 28px;
- }
-
- &__subheading {
- font-size: 18px;
- }
+ font-size: 28px;
+ margin-left: 15px;
+ white-space: normal;
+ line-height: 1;
}
+ }
- &__live_previews {
- display: flex;
- flex-direction: row;
- align-items: center;
- justify-content: center;
- width: 100%;
- margin-top: 30px;
- }
+ &__sub-heading {
+ width: 100%;
+ margin: 10px;
+ padding: 0;
- &__favorite-info {
- display: flex;
- flex-direction: row;
- align-items: center;
- justify-content: center;
- background-color: var(--nfd-onboarding-preview-favorite-background);
- border-radius: 12px;
- margin: 16px 0;
- height: 54px;
- width: 559px;
-
- &__icon {
- background-image: var(--sitegen-favorite);
- height: 20px;
- width: 20px;
- margin-right: 18px;
- }
-
- &__text {
- color: var(--nfd-onboarding-primary);
- font-size: 16px;
- }
+ &__text {
+ text-align: center;
+ color: var(--nfd-onboarding-primary);
+ font-size: 18px;
+ margin: 0;
+ padding: 0;
}
+ }
+ }
+
+ &__options {
+
+ @media (max-width: #{ ($break-xlarge) }) {
+ flex-direction: column;
+ }
+ display: flex;
+ flex-direction: row;
+ text-align: center;
+ margin: 10px 10px 55px 10px;
+ flex-wrap: wrap;
+ max-width: 1440px;
+ }
+
+ &__note {
+ display: flex;
+ flex-direction: row;
+ justify-content: center;
+ align-items: center;
+ background: var(--nfd-onboarding-card-background);
+ color: var(--nfd-onboarding-primary);
+ gap: 18px;
+ padding: 16px;
+ font-size: 16px;
+ line-height: 22px;
+ text-align: center;
+ border-radius: 12px;
+ margin-bottom: 60px;
+ }
+
+ @keyframes heartBeat {
+
+ 0%,
+ 100% {
+ fill: transparent;
+ transform: scale(1);
+ transform-origin: center;
+ }
+ 33%,
+ 66% {
+ fill: var(--nfd-onboarding-heart-icon-fill);
+ transform: scale(1.1);
+ transform-origin: center;
}
+
+ 67% {
+ fill: var(--nfd-onboarding-heart-icon-fill);
+ transform: scale(1.3);
+ transform-origin: center;
+ }
+
+ 87% {
+ fill: var(--nfd-onboarding-heart-icon-fill);
+ transform: scale(1.1);
+ transform-origin: center;
+ }
+ }
+
+ .heart {
+ stroke: var(--nfd-onboarding-heart-icon-stroke);
+ stroke-width: 2px;
+ }
+
+ .heart path {
+ animation: heartBeat 4s infinite;
+ }
+
+}
+
+@keyframes infiniteProgress {
+
+ 0% {
+ width: 0;
+ }
+
+ 100% {
+ width: 100%;
+ }
+}
+
+.regenerating-site-card-wrap {
+ padding: 20px;
+
+ .regenerating-site-card {
+ width: 420px;
+ height: 315px;
+ border-radius: 20px;
+ background-color: var(--nfd-onboarding-regenerating-card-background);
+ text-align: center;
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ justify-content: center;
+ border: 1px solid rgba(var(--nfd-onboarding-primary-rgb), 0.2);
+ margin-bottom: 20px;
+ padding: 60px;
+ box-sizing: border-box;
+
+ &__title {
+ color: var(--nfd-onboarding-primary);
+ }
+
+ &__progress-bar {
+ width: 100%;
+ background: var(--nfd-onboarding-progress-bar-background);
+ border-radius: 4px;
+ height: 8px;
+ overflow: hidden;
+
+ &__fill {
+ background: var(--nfd-onboarding-progress-bar-fill);
+ height: 100%;
+ transition: width 0.3s ease;
+ animation: infiniteProgress 1.5s ease-in-out infinite;
+ }
+ }
+ }
+
+ .regenerating-site-card__version {
+ text-align: left;
+ color: var(--nfd-onboarding-primary);
+ font-size: 18px;
+ display: flex;
+ gap: 8px;
+ }
+
+ &.regenerating-site-card-skeleton {
+ padding: 0;
}
}
diff --git a/src/OnboardingSPA/store/actions.js b/src/OnboardingSPA/store/actions.js
index da6ae43d5..be52c9924 100644
--- a/src/OnboardingSPA/store/actions.js
+++ b/src/OnboardingSPA/store/actions.js
@@ -284,3 +284,24 @@ export function resetNavError() {
type: 'RESET_NAV_ERROR',
};
}
+
+export const setHomepagesData = ( homepagesData ) => {
+ return {
+ type: 'SET_HOMEPAGES_DATA',
+ homepagesData,
+ };
+};
+
+export const setActiveHomepage = ( activeHomepage ) => {
+ return {
+ type: 'SET_ACTIVE_HOMEPAGE',
+ activeHomepage,
+ };
+};
+
+export const toggleFavorite = ( slug ) => {
+ return {
+ type: 'TOGGLE_FAVORITE',
+ slug,
+ };
+};
diff --git a/src/OnboardingSPA/store/reducer.js b/src/OnboardingSPA/store/reducer.js
index e475ad0e2..de6067be4 100644
--- a/src/OnboardingSPA/store/reducer.js
+++ b/src/OnboardingSPA/store/reducer.js
@@ -167,6 +167,32 @@ export function data( state = {}, action ) {
...action.socialData,
},
};
+ case 'SET_HOMEPAGES_DATA':
+ return {
+ ...state,
+ flowData: {
+ ...state.flowData,
+ sitegen: {
+ ...state.flowData.sitegen,
+ homepages: action.homepagesData,
+ },
+ },
+ };
+
+ case 'SET_ACTIVE_HOMEPAGE':
+ return {
+ ...state,
+ flowData: {
+ ...state.flowData,
+ sitegen: {
+ ...state.flowData.sitegen,
+ homepages: {
+ ...state.flowData.sitegen.homepages,
+ active: action.activeHomepage,
+ },
+ },
+ },
+ };
}
return state;
diff --git a/src/OnboardingSPA/store/selectors.js b/src/OnboardingSPA/store/selectors.js
index 1df9bb30e..6b1877429 100644
--- a/src/OnboardingSPA/store/selectors.js
+++ b/src/OnboardingSPA/store/selectors.js
@@ -426,3 +426,35 @@ export function getCurrentUserDetails( state ) {
const currentUserInfo = state.runtime.currentUserDetails;
return currentUserInfo;
}
+
+/**
+ * Gets homepages
+ *
+ * @param {*} state
+ * @return {Object} homepages
+ */
+export const getHomepagesData = ( state ) => {
+ return state.data.flowData.sitegen.homepages;
+};
+
+/**
+ * Gets actove homepage
+ *
+ * @param {*} state
+ * @return {Object} active
+ */
+
+export const getActiveHomepage = ( state ) => {
+ return state.data.flowData.sitegen.homepages.active;
+};
+
+/**
+ * Gets actove homepage
+ *
+ * @param {*} state
+ * @return {Object} data
+ */
+
+export const getAllHomepages = ( state ) => {
+ return state.data.flowData.sitegen.homepages.data;
+};
diff --git a/src/OnboardingSPA/styles/_branding.scss b/src/OnboardingSPA/styles/_branding.scss
index 7cdd7221b..b28787025 100644
--- a/src/OnboardingSPA/styles/_branding.scss
+++ b/src/OnboardingSPA/styles/_branding.scss
@@ -320,6 +320,10 @@ body {
--nfd-onboarding-navigation-back-background: rgba(54, 62, 68, 0.35);
--nfd-onboarding-site-logo-border: var(--nfd-onboarding-primary);
--nfd-onboarding-header-border: rgba(var(--nfd-onboarding-primary-rgb), 0.3);
+ --nfd-onboarding-card-overlay: rgba(0, 0, 0, 0.4);
+ --nfd-onboarding-heart-icon-fill: #ef4a71;
+ --nfd-onboarding-heart-icon-stroke: #9ca2a7;
+ --nfd-onboarding-regenerating-card-background: rgba(53, 58, 64, 0.1);
--nfd-onboarding-preview-favorite-background: #1e2327;
--nfd-onboarding-favorite-fill: #ef4a71;
--nfd-onboarding-button-background: #363e4459;
@@ -342,10 +346,14 @@ body {
--nfd-onboarding-navigation-back-background: rgba(54, 62, 68, 0.35);
--nfd-onboarding-site-logo-border: rgba(156, 162, 167, 1);
--nfd-onboarding-header-border: rgba(var(--nfd-onboarding-primary-rgb), 0.3);
+ --nfd-onboarding-card-overlay: rgba(0, 0, 0, 0.4);
+ --nfd-onboarding-heart-icon-fill: #ef4a71;
+ --nfd-onboarding-heart-icon-stroke: #9ca2a7;
--nfd-onboarding-preview-favorite-background: #1e2327;
--nfd-onboarding-editor-header-background: var(--nfd-onboarding-preview-favorite-background);
--nfd-onboarding-favorite-fill: #ef4a71;
--nfd-onboarding-button-background: #363e4459;
+ --nfd-onboarding-regenerating-card-background: rgba(53, 58, 64, 0.1);
--sitegen-background-low: url(../static/images/sitegen/ai_bg_low.png);
}
}
diff --git a/src/OnboardingSPA/styles/_interface.scss b/src/OnboardingSPA/styles/_interface.scss
index 98b81f65e..13b42dec5 100644
--- a/src/OnboardingSPA/styles/_interface.scss
+++ b/src/OnboardingSPA/styles/_interface.scss
@@ -14,6 +14,10 @@ body {
&.is-fullscreen-mode {
opacity: 1;
transition: opacity ease-in 500ms;
+
+ #wpadminbar {
+ display: none;
+ }
}
&.dashboard_page_nfd-onboarding {
diff --git a/src/OnboardingSPA/styles/app.scss b/src/OnboardingSPA/styles/app.scss
index 91fcbc046..58882e322 100644
--- a/src/OnboardingSPA/styles/app.scss
+++ b/src/OnboardingSPA/styles/app.scss
@@ -76,13 +76,13 @@
@import "../steps/DesignHeaderMenu/stylesheet";
@import "../steps/SiteFeatures/stylesheet";
@import "../steps/TheFork/stylesheet";
+@import "../steps/SiteGen/Preview/stylesheet";
@import "../steps/SiteGen/SiteDetails/stylesheet";
@import "../steps/SiteGen/Experience/stylesheet";
@import "../steps/SiteGen/SiteLogo/stylesheet";
@import "../steps/SiteGen/SocialMedia/stylesheet";
@import "../steps/SiteGen/Welcome/stylesheet";
@import "../steps/SiteGen/Building/stylesheet";
-@import "../steps/SiteGen/Preview/stylesheet";
@import "../steps/SiteGen/Editor/stylesheet";
@import "../steps/SiteGen/Editor/Header/stylesheet";
diff --git a/src/OnboardingSPA/utils/api/siteGen.js b/src/OnboardingSPA/utils/api/siteGen.js
index 5a66f5da0..453f1f248 100644
--- a/src/OnboardingSPA/utils/api/siteGen.js
+++ b/src/OnboardingSPA/utils/api/siteGen.js
@@ -14,7 +14,7 @@ export async function getSiteGenIdentifiers() {
export async function generateSiteGenMeta(
siteInfo,
identifier,
- skipCache = false
+ skipCache = true
) {
return await resolve(
apiFetch( {
@@ -28,3 +28,53 @@ export async function generateSiteGenMeta(
} ).then()
);
}
+
+export async function getHomePagePreviews(
+ siteDescription,
+ regenerate = false
+) {
+ return await resolve(
+ apiFetch( {
+ url: onboardingRestURL( 'sitegen/get-homepages' ),
+ method: 'POST',
+ data: {
+ site_description: siteDescription,
+ regenerate,
+ },
+ } ).then()
+ );
+}
+
+export async function getRegeneratedHomePagePreviews(
+ siteDescription,
+ regenerate = true,
+ slug,
+ colorPalettes,
+ isFavourited
+) {
+ return await resolve(
+ apiFetch( {
+ url: onboardingRestURL( 'sitegen/get-homepages-regenerate' ),
+ method: 'POST',
+ data: {
+ site_description: siteDescription,
+ regenerate,
+ slug,
+ colorPalettes,
+ isFavourited,
+ },
+ } ).then()
+ );
+}
+
+export async function toggleFavoriteHomepage( slug ) {
+ return await resolve(
+ apiFetch( {
+ url: onboardingRestURL( 'sitegen/favourites' ),
+ method: 'POST',
+ data: {
+ slug,
+ },
+ } ).then()
+ );
+}
diff --git a/src/constants.js b/src/constants.js
index d5ceaab2e..5d0831e2e 100644
--- a/src/constants.js
+++ b/src/constants.js
@@ -51,6 +51,7 @@ export const HEADER_END = 'HeaderEnd';
export const FOOTER_START = 'FooterStart';
export const FOOTER_END = 'FooterEnd';
+export const MAX_RETRIES_SITE_GEN = 2;
export const MAX_RETRIES_API_QUEUER = 2;
export const MAX_RETRIES_SETTINGS_INIT = 2;
export const MAX_RETRIES_FLOW_SWITCH = 2;