74
75 try {
76 const response = await fetch('/api/hotels');
77 const hotels = await response.json();
78
102 getOfferDetailsBtn.addEventListener('click', async () => {
103 try {
104 const response = await fetch('/api/offers');
105 const offers = await response.json();
106 const mainOffer = offers[0]; // Get the first offer (Anniversary offer)
114 viewAllOffersBtn.addEventListener('click', async () => {
115 try {
116 const response = await fetch('/api/offers');
117 const offers = await response.json();
118
448 <title>StoryLand: Kids' Story Sharing</title>
449 <meta name="viewport" content="width=device-width, initial-scale=1">
450 <link href="https://fonts.googleapis.com/css2?family=Comic+Neue:wght@400;700&display=swap" rel="stylesheet">
451 <style>
452 body {
209
210const css = `
211@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:wght@400;700&family=Roboto:wght@300;400;700&display=swap');
212
213:root {
12 try {
13 const response = await fetch(
14 `https://api.open-meteo.com/v1/forecast?latitude=${location.latitude}&longitude=${location.longitude}¤t_weather=true&hourly=temperature_2m,relativehumidity_2m,windspeed_10m`,
15 );
16 const data = await response.json();
84
85async function sendFarcasterNotification(payload: any) {
86 return await fetch("https://api.warpcast.com/v1/frame-notifications", {
87 method: "POST",
88 headers: { "Content-Type": "application/json" },
16
17 try {
18 const response = await fetch("https://zenquotes.io/api/random");
19 const data = await response.json();
20 console.log("ZenQuotes API Response:", JSON.stringify(data));
21
22 if (response.ok && data.length > 0) {
34 async function sendMotivation(quote: any) {
35 try {
36 const url = `https://api.twilio.com/2010-04-01/Accounts/${accountSid}/Messages.json`;
37
38 const formData = new URLSearchParams();
52 if (!response.ok) {
53 const errorData = await response.json();
54 throw new Error(`Twilio API error: ${errorData.message}`);
55 }
56
84
85async function sendFarcasterNotification(payload: any) {
86 return await fetch("https://api.warpcast.com/v1/frame-notifications", {
87 method: "POST",
88 headers: { "Content-Type": "application/json" },
8- Interactive elements including counters for guests and date selection
9- Clean, accessible UI with proper semantic HTML
10- Styling with Tailwind CSS for rapid development
11
12## Project Structure
1@import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@400;600;700;800;900&display=swap');
2
3:root {
2
3/* Digital timer font */
4@import url('https://fonts.googleapis.com/css2?family=Orbitron:wght@400;700&display=swap');
5
6.timer-block {