Afantauzzi commited on
Commit
1f3be01
·
verified ·
1 Parent(s): 449e2bc

/* flatpickr v4.6.13,, @license MIT */

Browse files

!function(e,n){"object"==typeof exports&&"undefined"!=typeof module?module.exports=n():"function"==typeof define&&define.amd?define(n):(e="undefined"!=typeof globalThis?globalThis:e||self).flatpickr=n()}(this,(function(){"use strict";var e=function(){return(e=Object.assign||function(e){for(var n,t=1,a=arguments.length;t<a;t++)for(var i in n=arguments[t])Object.prototype.hasOwnProperty.call(n,i)&&(e[i]=n[i]);return e}).apply(this,arguments)};function n(){for(var e=0,n=0,t=arguments.length;n<t;n++)e+=arguments[n].length;var a=Array(e),i=0;for(n=0;n<t;n++)for(var o=arguments[n],r=0,l=o.length;r<l;r++,i++)a[i]=o[r];return a}var t=["onChange","onClose","onDayCreate","onDestroy","onKeyDown","onMonthChange","onOpen","onParseConfig","onReady","onValueUpdate","onYearChange","onPreCalendarPosition"],a={_disable:[],allowInput:!1,allowInvalidPreload:!1,altFormat:"F j, Y",altInput:!1,altInputClass:"form-control input",animate:"object"==typeof window&&-1===window.navigator.userAgent.indexOf("MSIE"),ariaDateFormat:"F j, Y",autoFillDefaultTime:!0,clickOpens:!0,closeOnSelect:!0,conjunction:", ",dateFormat:"Y-m-d",defaultHour:12,defaultMinute:0,defaultSeconds:0,disable:[],disableMobile:!1,enableSeconds:!1,enableTime:!1,errorHandler:function(e){return"undefined"!=typeof console&&console.warn(e)},getWeek:function(e){var n=new Date(e.getTime());n.setHours(0,0,0,0),n.setDate(n.getDate()+3-(n.getDay()+6)%7);var t=new Date(n.getFullYear(),0,4);return 1+Math.round(((n.getTime()-t.getTime())/864e5-3+(t.getDay()+6)%7)/7)},hourIncrement:1,ignoredFocusElements:[],inline:!1,locale:"default",minuteIncrement:5,mode:"single",monthSelectorType:"dropdown",nextArrow:"<svg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' viewBox='0 0 17 17'><g></g><path d='M13.207 8.472l-7.854 7.854-0.707-0.707 7.146-7.146-7.146-7.148 0.707-0.707 7.854 7.854z' /></svg>",noCalendar:!1,now:new Date,onChange:[],onClose:[],onDayCreate:[],onDestroy:[],onKeyDown:[],onMonthChange:[],onOpen:[],onParseConfig:[],onReady:[],onValueUpdate:[],onYearChange:[],onPreCalendarPosition:[],plugins:[],position:"auto",positionElement:void 0,prevArrow:"<svg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' viewBox='0 0 17 17'><g></g><path d='M5.207 8.471l7.146 7.147-0.707 0.707-7.853-7.854 7.854-7.853 0.707 0.707-7.147 7.146z' /></svg>",shorthandCurrentMonth:!1,showMonths:1,static:!1,time_24hr:!1,weekNumbers:!1,wrap:!1},i={weekdays:{shorthand:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],longhand:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},months:{shorthand:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],longhand:["January","February","March","April","May","June","July","August","September","October","November","December"]},daysInMonth:[31,28,31,30,31,30,31,31,30,31,30,31],firstDayOfWeek:0,ordinal:function(e){var n=e%100;if(n>3&&n<21)return"th";switch(n%10){case 1:return"st";case 2:return"nd";case 3:return"rd";default:return"th"}},rangeSeparator:" to ",weekAbbreviation:"Wk",scrollTitle:"Scroll to increment",toggleTitle:"Click to toggle",amPM:["AM","PM"],yearAriaLabel:"Year",monthAriaLabel:"Month",hourAriaLabel:"Hour",minuteAriaLabel:"Minute",time_24hr:!1},o=function(e,n){return void 0===n&&(n=2),("000"+e).slice(-1*n)},r=function(e){return!0===e?1:0};function l(e,n){var t;return function(){var a=this,i=arguments;clearTimeout(t),t=setTimeout((function(){return e.apply(a,i)}),n)}}var c=function(e){return e instanceof Array?e:[e]};function s(e,n,t){if(!0===t)return e.classList.add(n);e.classList.remove(n)}function d(e,n,t){var a=window.document.createElement(e);return n=n||"",t=t||"",a.className=n,void 0!==t&&(a.textContent=t),a}function u(e){for(;e.firstChild;)e.removeChild(e.firstChild)}function f(e,n){return n(e)?e:e.parentNode?f(e.parentNode,n):void 0}function m(e,n){var t=d("div","numInputWrapper"),a=d("input","numInput "+e),i=d("span","arrowUp"),o=d("span","arrowDown");if(-1===navigator.userAgent.indexOf("MSIE 9.0")?a.type="number":(a.type="text",a.pattern="\\d*"),void 0!==n)for(var r in n)a.setAttribute(r,n[r]);return t.appendChild(a),t.appendChild(i),t.appendChild(o),t}function g(e){try{return"function"==typeof e.composedPath?e.composedPath()[0]:e.target}catch(n){return e.target}}var p=function(){},h=function(e,n,t){return t.months[n?"shorthand":"longhand"][e]},v={D:p,F:function(e,n,t){e.setMonth(t.months.longhand.indexOf(n))},G:function(e,n){e.setHours((e.getHours()>=12?12:0)+parseFloat(n))},H:function(e,n){e.setHours(parseFloat(n))},J:function(e,n){e.setDate(parseFloat(n))},K:function(e,n,t){e.setHours(e.getHours()%12+12*r(new RegExp(t.amPM[1],"i").test(n)))},M:function(e,n,t){e.setMonth(t.months.shorthand.indexOf(n))},S:function(e,n){e.setSeconds(parseFloat(n))},U:function(e,n){return new Date(1e3*parseFloat(n))},W:function(e,n,t){var a=parseInt(n),i=new Date(e.getFullYear(),0,2+7*(a-1),0,0,0,0);return i.setDate(i.getDate()-i.getDay()+t.firstDayOfWeek),i},Y:function(e,n){e.setFullYear(parseFloat(n))},Z:function(e,n){return new Date(n)},d:function(e,n){e.setDate(parseFloat(n))},h:function(e,n){e.setHours((e.getHours()>=12?12:0)+parseFloat(n))},i:function(e,n){e.setMinutes(parseFloat(n))},j:function(e,n){e.setDate(parseFloat(n))},l:p,m:function(e,n){e.setMonth(parseFloat(n)-1)},n:function(e,n){e.setMonth(parseFloat(n)-1)},s:function(e,n){e.setSeconds(parseFloat(n))},u:function(e,n){return new Date(parseFloat(n))},w:p,y:function(e,n){e.setFullYear(2e3+parseFloat(n))}},D={D:"",F:"",G:"(\\d\\d|\\d)",H:"(\\d\\d|\\d)",J:"(\\d\\d|\\d)\\w+",K:"",M:"",S:"(\\d\\d|\\d)",U:"(.+)",W:"(\\d\\d|\\d)",Y:"(\\d{4})",Z:"(.+)",d:"(\\d\\d|\\d)",h:"(\\d\\d|\\d)",i:"(\\d\\d|\\d)",j:"(\\d\\d|\\d)",l:"",m:"(\\d\\d|\\d)",n:"(\\d\\d|\\d)",s:"(\\d\\d|\\d)",u:"(.+)",w:"(\\d\\d|\\d)",y:"(\\d{2})"},w={Z:function(e){return e.toISOString()},D:function(e,n,t){return n.weekdays.shorthand[w.w(e,n,t)]},F:function(e,n,t){return h(w.n(e,n,t)-1,!1,n)},G:function(e,n,t){return o(w.h(e,n,t))},H:function(e){return o(e.getHours())},J:function(e,n){return void 0!==n.ordinal?e.getDate()+n.ordinal(e.getDate()):e.getDate()},K:function(e,n){return n.amPM[r(e.getHours()>11)]},M:function(e,n){return h(e.getMonth(),!0,n)},S:function(e){return o(e.getSeconds())},U:function(e){return e.getTime()/1e3},W:function(e,n,t){return t.getWeek(e)},Y:function(e){return o(e.getFullYear(),4)},d:function(e){return o(e.getDate())},h:function(e){return e.getHours()%12?e.getHours()%12:12},i:function(e){return o(e.getMinutes())},j:function(e){return e.getDate()},l:function(e,n){return n.weekdays.longhand[e.getDay()]},m:function(e){return o(e.getMonth()+1)},n:function(e){return e.getMonth()+1},s:function(e){return e.getSeconds()},u:function(e){return e.getTime()},w:function(e){return e.getDay()},y:function(e){return String(e.getFullYear()).substring(2)}},b=function(e){var n=e.config,t=void 0===n?a:n,o=e.l10n,r=void 0===o?i:o,l=e.isMobile,c=void 0!==l&&l;return function(e,n,a){var i=a||r;return void 0===t.formatDate||c?n.split("").map((function(n,a,o){return w[n]&&"\\"!==o[a-1]?w[n](e,i,t):"\\"!==n?n:""})).join(""):t.formatDate(e,n,i)}},C=function(e){var n=e.config,t=void 0===n?a:n,o=e.l10n,r=void 0===o?i:o;return function(e,n,i,o){if(0===e||e){var l,c=o||r,s=e;if(e instanceof Date)l=new Date(e.getTime());else if("string"!=typeof e&&void 0!==e.toFixed)l=new Date(e);else if("string"==typeof e){var d=n||(t||a).dateFormat,u=String(e).trim();if("today"===u)l=new Date,i=!0;else if(t&&t.parseDate)l=t.parseDate(e,d);else if(/Z$/.test(u)||/GMT$/.test(u))l=new Date(e);else{for(var f=void 0,m=[],g=0,p=0,h="";g<d.length;g++){var w=d[g],b="\\"===w,C="\\"===d[g-1]||b;if(D[w]&&!C){h+=D[w];var M=new RegExp(h).exec(e);M&&(f=!0)&&m["Y"!==w?"push":"unshift"]({fn:v[w],val:M[++p]})}else b||(h+=".")}l=t&&t.noCalendar?new Date((new Date).setHours(0,0,0,0)):new Date((new Date).getFullYear(),0,1,0,0,0,0),m.forEach((function(e){var n=e.fn,t=e.val;return l=n(l,t,c)||l})),l=f?l:void 0}}if(l instanceof Date&&!isNaN(l.getTime()))return!0===i&&l.setHours(0,0,0,0),l;t.errorHandler(new Error("Invalid date provided: "+s))}}};function M(e,n,t){return void 0===t&&(t=!0),!1!==t?new Date(e.getTime()).setHours(0,0,0,0)-new Date(n.getTime()).setHours(0,0,0,0):e.getTime()-n.getTime()}var y=function(e,n,t){return 3600*e+60*n+t},x=864e5;function E(e){var n=e.defaultHour,t=e.defaultMinute,a=e.defaultSeconds;if(void 0!==e.minDate){var i=e.minDate.getHours(),o=e.minDate.getMinutes(),r=e.minDate.getSeconds();n<i&&(n=i),n===i&&t<o&&(t=o),n===i&&t===o&&a<r&&(a=e.minDate.getSeconds())}if(void 0!==e.maxDate){var l=e.maxDate.getHours(),c=e.maxDate.getMinutes();(n=Math.min(n,l))===l&&(t=Math.min(c,t)),n===l&&t===c&&(a=e.maxDate.getSeconds())}return{hours:n,minutes:t,seconds:a}}"function"!=typeof Object.assign&&(Object.assign=function(e){for(var n=[],t=1;t<arguments.length;t++)n[t-1]=arguments[t];if(!e)throw TypeError("Cannot convert undefined or null to object");for(var a=function(n){n&&Object.keys(n).forEach((function(t){return e[t]=n[t]}))},i=0,o=n;i<o.length;i++){var r=o[i];a(r)}return e});function k(p,v){var w={config:e(e({},a),I.defaultConfig),l10n:i};function k(){var e;return(null===(e=w.calendarContainer)||void 0===e?void 0:e.getRootNode()).activeElement||document.activeElement}function T(e){return e.bind(w)}function S(){var e=w.config;!1===e.weekNumbers&&1===e.showMonths||!0!==e.noCalendar&&window.requestAnimationFrame((function(){if(void 0!==w.calendarContainer&&(w.calendarContainer.style.visibility="hidden",w.calendarContainer.style.display="block"),void 0!==w.daysContainer){var n=(w.days.offsetWidth+1)*e.showMonths;w.daysContainer.style.width=n+"px",w.calendarContainer.style.width=n+(void 0!==w.weekWrapper?w.weekWrapper.offsetWidth:0)+"px",w.calendarContainer.style.removeProperty("visibility"),w.calendarContainer.style.removeProperty("display")}}))}function _(e){if(0===w.selectedDates.length){var n=void 0===w.config.minDate||M(new Date,w.config.minDate)>=0?new Date:new Date(w.config.minDate.getTime()),t=E(w.config);n.setHours(t.hours,t.minutes,t.seconds,n.getMilliseconds()),w.selectedDates=[n],w.latestSelectedDateObj=n}void 0!==e&&"blur"!==e.type&&func

Files changed (6) hide show
  1. README.md +8 -5
  2. components/footer.js +155 -0
  3. components/navbar.js +228 -0
  4. index.html +212 -19
  5. script.js +67 -0
  6. style.css +77 -18
README.md CHANGED
@@ -1,10 +1,13 @@
1
  ---
2
- title: Eventful Days
3
- emoji: 🐠
4
- colorFrom: blue
5
- colorTo: green
6
  sdk: static
7
  pinned: false
 
 
8
  ---
9
 
10
- Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
 
 
1
  ---
2
+ title: Eventful Days 📅
3
+ colorFrom: pink
4
+ colorTo: purple
5
+ emoji: 🐳
6
  sdk: static
7
  pinned: false
8
+ tags:
9
+ - deepsite-v3
10
  ---
11
 
12
+ # Welcome to your new DeepSite project!
13
+ This project was created with [DeepSite](https://deepsite.hf.co).
components/footer.js ADDED
@@ -0,0 +1,155 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ class CustomFooter extends HTMLElement {
2
+ connectedCallback() {
3
+ this.attachShadow({ mode: 'open' });
4
+ this.shadowRoot.innerHTML = `
5
+ <style>
6
+ :host {
7
+ display: block;
8
+ }
9
+
10
+ footer {
11
+ background: #1e293b;
12
+ color: #cbd5e1;
13
+ padding: 3rem 0 2rem;
14
+ }
15
+
16
+ .container {
17
+ max-width: 1200px;
18
+ margin: 0 auto;
19
+ padding: 0 1rem;
20
+ }
21
+
22
+ .footer-content {
23
+ display: grid;
24
+ grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
25
+ gap: 2rem;
26
+ margin-bottom: 2rem;
27
+ }
28
+
29
+ .footer-column h3 {
30
+ color: white;
31
+ margin-bottom: 1rem;
32
+ font-size: 1.125rem;
33
+ }
34
+
35
+ .footer-column ul {
36
+ list-style: none;
37
+ padding: 0;
38
+ }
39
+
40
+ .footer-column ul li {
41
+ margin-bottom: 0.5rem;
42
+ }
43
+
44
+ .footer-column ul li a {
45
+ color: #94a3b8;
46
+ text-decoration: none;
47
+ transition: color 0.2s;
48
+ }
49
+
50
+ .footer-column ul li a:hover {
51
+ color: #4f46e5;
52
+ }
53
+
54
+ .social-links {
55
+ display: flex;
56
+ gap: 1rem;
57
+ margin-top: 1rem;
58
+ }
59
+
60
+ .social-link {
61
+ display: flex;
62
+ align-items: center;
63
+ justify-content: center;
64
+ width: 40px;
65
+ height: 40px;
66
+ border-radius: 50%;
67
+ background: #334155;
68
+ color: #cbd5e1;
69
+ transition: all 0.3s ease;
70
+ }
71
+
72
+ .social-link:hover {
73
+ background: #4f46e5;
74
+ color: white;
75
+ transform: translateY(-3px);
76
+ }
77
+
78
+ .copyright {
79
+ border-top: 1px solid #334155;
80
+ padding-top: 2rem;
81
+ text-align: center;
82
+ color: #94a3b8;
83
+ font-size: 0.875rem;
84
+ }
85
+
86
+ @media (max-width: 768px) {
87
+ .footer-content {
88
+ grid-template-columns: 1fr;
89
+ }
90
+ }
91
+ </style>
92
+
93
+ <footer>
94
+ <div class="container">
95
+ <div class="footer-content">
96
+ <div class="footer-column">
97
+ <h3>Eventful Days</h3>
98
+ <p>Your personal event manager to keep track of all important moments in life.</p>
99
+ <div class="social-links">
100
+ <a href="#" class="social-link">
101
+ <i data-feather="twitter"></i>
102
+ </a>
103
+ <a href="#" class="social-link">
104
+ <i data-feather="facebook"></i>
105
+ </a>
106
+ <a href="#" class="social-link">
107
+ <i data-feather="instagram"></i>
108
+ </a>
109
+ <a href="#" class="social-link">
110
+ <i data-feather="linkedin"></i>
111
+ </a>
112
+ </div>
113
+ </div>
114
+
115
+ <div class="footer-column">
116
+ <h3>Product</h3>
117
+ <ul>
118
+ <li><a href="#">Features</a></li>
119
+ <li><a href="#">Pricing</a></li>
120
+ <li><a href="#">Integrations</a></li>
121
+ <li><a href="#">Roadmap</a></li>
122
+ </ul>
123
+ </div>
124
+
125
+ <div class="footer-column">
126
+ <h3>Resources</h3>
127
+ <ul>
128
+ <li><a href="#">Blog</a></li>
129
+ <li><a href="#">Help Center</a></li>
130
+ <li><a href="#">Community</a></li>
131
+ <li><a href="#">Events</a></li>
132
+ </ul>
133
+ </div>
134
+
135
+ <div class="footer-column">
136
+ <h3>Company</h3>
137
+ <ul>
138
+ <li><a href="#">About Us</a></li>
139
+ <li><a href="#">Careers</a></li>
140
+ <li><a href="#">Contact</a></li>
141
+ <li><a href="#">Partners</a></li>
142
+ </ul>
143
+ </div>
144
+ </div>
145
+
146
+ <div class="copyright">
147
+ <p>&copy; ${new Date().getFullYear()} Eventful Days. All rights reserved.</p>
148
+ </div>
149
+ </div>
150
+ </footer>
151
+ `;
152
+ }
153
+ }
154
+
155
+ customElements.define('custom-footer', CustomFooter);
components/navbar.js ADDED
@@ -0,0 +1,228 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ class CustomNavbar extends HTMLElement {
2
+ connectedCallback() {
3
+ this.attachShadow({ mode: 'open' });
4
+ this.shadowRoot.innerHTML = `
5
+ <style>
6
+ :host {
7
+ display: block;
8
+ }
9
+
10
+ nav {
11
+ position: fixed;
12
+ top: 0;
13
+ left: 0;
14
+ right: 0;
15
+ z-index: 1000;
16
+ background: rgba(255, 255, 255, 0.95);
17
+ backdrop-filter: blur(10px);
18
+ padding: 1rem 0;
19
+ transition: all 0.3s ease;
20
+ box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
21
+ }
22
+
23
+ nav.scrolled {
24
+ padding: 0.5rem 0;
25
+ box-shadow: 0 5px 20px rgba(0, 0, 0, 0.1);
26
+ }
27
+
28
+ .container {
29
+ max-width: 1200px;
30
+ margin: 0 auto;
31
+ padding: 0 1rem;
32
+ display: flex;
33
+ justify-content: space-between;
34
+ align-items: center;
35
+ }
36
+
37
+ .logo {
38
+ display: flex;
39
+ align-items: center;
40
+ font-weight: 700;
41
+ font-size: 1.5rem;
42
+ color: #4f46e5;
43
+ text-decoration: none;
44
+ }
45
+
46
+ .logo-icon {
47
+ margin-right: 0.5rem;
48
+ color: #818cf8;
49
+ }
50
+
51
+ .nav-links {
52
+ display: flex;
53
+ gap: 2rem;
54
+ list-style: none;
55
+ }
56
+
57
+ .nav-links a {
58
+ color: #4b5563;
59
+ text-decoration: none;
60
+ font-weight: 500;
61
+ transition: color 0.2s;
62
+ position: relative;
63
+ }
64
+
65
+ .nav-links a:hover {
66
+ color: #4f46e5;
67
+ }
68
+
69
+ .nav-links a::after {
70
+ content: '';
71
+ position: absolute;
72
+ bottom: -5px;
73
+ left: 0;
74
+ width: 0;
75
+ height: 2px;
76
+ background: #4f46e5;
77
+ transition: width 0.3s ease;
78
+ }
79
+
80
+ .nav-links a:hover::after {
81
+ width: 100%;
82
+ }
83
+
84
+ .auth-buttons {
85
+ display: flex;
86
+ gap: 1rem;
87
+ }
88
+
89
+ .btn {
90
+ padding: 0.5rem 1.5rem;
91
+ border-radius: 0.5rem;
92
+ font-weight: 500;
93
+ cursor: pointer;
94
+ transition: all 0.3s ease;
95
+ }
96
+
97
+ .btn-outline {
98
+ border: 1px solid #4f46e5;
99
+ color: #4f46e5;
100
+ background: transparent;
101
+ }
102
+
103
+ .btn-outline:hover {
104
+ background: #4f46e5;
105
+ color: white;
106
+ }
107
+
108
+ .btn-primary {
109
+ background: #4f46e5;
110
+ color: white;
111
+ border: 1px solid #4f46e5;
112
+ }
113
+
114
+ .btn-primary:hover {
115
+ background: #4338ca;
116
+ border-color: #4338ca;
117
+ }
118
+
119
+ .mobile-toggle {
120
+ display: none;
121
+ background: none;
122
+ border: none;
123
+ font-size: 1.5rem;
124
+ cursor: pointer;
125
+ color: #4b5563;
126
+ }
127
+
128
+ .mobile-menu {
129
+ display: none;
130
+ position: absolute;
131
+ top: 100%;
132
+ left: 0;
133
+ right: 0;
134
+ background: white;
135
+ padding: 1rem;
136
+ box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1);
137
+ }
138
+
139
+ @media (max-width: 768px) {
140
+ .nav-links, .auth-buttons {
141
+ display: none;
142
+ }
143
+
144
+ .mobile-toggle {
145
+ display: block;
146
+ }
147
+
148
+ .mobile-menu.active {
149
+ display: block;
150
+ }
151
+
152
+ .mobile-nav-links {
153
+ display: flex;
154
+ flex-direction: column;
155
+ gap: 1rem;
156
+ margin-bottom: 1rem;
157
+ }
158
+
159
+ .mobile-auth-buttons {
160
+ display: flex;
161
+ flex-direction: column;
162
+ gap: 0.5rem;
163
+ }
164
+ }
165
+ </style>
166
+
167
+ <nav>
168
+ <div class="container">
169
+ <a href="/" class="logo">
170
+ <span class="logo-icon">📅</span>
171
+ <span>Eventful Days</span>
172
+ </a>
173
+
174
+ <ul class="nav-links">
175
+ <li><a href="/">Home</a></li>
176
+ <li><a href="#features">Features</a></li>
177
+ <li><a href="#events">Events</a></li>
178
+ <li><a href="#">Pricing</a></li>
179
+ </ul>
180
+
181
+ <div class="auth-buttons">
182
+ <button class="btn btn-outline">Log In</button>
183
+ <button class="btn btn-primary">Sign Up</button>
184
+ </div>
185
+
186
+ <button class="mobile-toggle" id="mobile-toggle">
187
+ <i data-feather="menu"></i>
188
+ </button>
189
+ </div>
190
+
191
+ <div class="mobile-menu" id="mobile-menu">
192
+ <ul class="mobile-nav-links">
193
+ <li><a href="/">Home</a></li>
194
+ <li><a href="#features">Features</a></li>
195
+ <li><a href="#events">Events</a></li>
196
+ <li><a href="#">Pricing</a></li>
197
+ </ul>
198
+
199
+ <div class="mobile-auth-buttons">
200
+ <button class="btn btn-outline">Log In</button>
201
+ <button class="btn btn-primary">Sign Up</button>
202
+ </div>
203
+ </div>
204
+ </nav>
205
+ `;
206
+
207
+ // Add event listener for mobile toggle
208
+ setTimeout(() => {
209
+ const toggleButton = this.shadowRoot.getElementById('mobile-toggle');
210
+ const mobileMenu = this.shadowRoot.getElementById('mobile-menu');
211
+
212
+ if (toggleButton && mobileMenu) {
213
+ toggleButton.addEventListener('click', () => {
214
+ mobileMenu.classList.toggle('active');
215
+ const icon = toggleButton.querySelector('i');
216
+ if (mobileMenu.classList.contains('active')) {
217
+ icon.setAttribute('data-feather', 'x');
218
+ } else {
219
+ icon.setAttribute('data-feather', 'menu');
220
+ }
221
+ feather.replace();
222
+ });
223
+ }
224
+ }, 0);
225
+ }
226
+ }
227
+
228
+ customElements.define('custom-navbar', CustomNavbar);
index.html CHANGED
@@ -1,19 +1,212 @@
1
- <!doctype html>
2
- <html>
3
- <head>
4
- <meta charset="utf-8" />
5
- <meta name="viewport" content="width=device-width" />
6
- <title>My static Space</title>
7
- <link rel="stylesheet" href="style.css" />
8
- </head>
9
- <body>
10
- <div class="card">
11
- <h1>Welcome to your static Space!</h1>
12
- <p>You can modify this app directly by editing <i>index.html</i> in the Files and versions tab.</p>
13
- <p>
14
- Also don't forget to check the
15
- <a href="https://huggingface.co/docs/hub/spaces" target="_blank">Spaces documentation</a>.
16
- </p>
17
- </div>
18
- </body>
19
- </html>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>Eventful Days - Your Personal Event Manager</title>
7
+ <link rel="icon" type="image/x-icon" href="/static/favicon.ico">
8
+ <link rel="stylesheet" href="style.css">
9
+ <script src="https://cdn.tailwindcss.com"></script>
10
+ <script src="https://cdn.jsdelivr.net/npm/feather-icons/dist/feather.min.js"></script>
11
+ <script src="https://unpkg.com/feather-icons"></script>
12
+ <script src="https://cdn.jsdelivr.net/npm/vanta@latest/dist/vanta.globe.min.js"></script>
13
+ <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/flatpickr/dist/flatpickr.min.css">
14
+ </head>
15
+ <body class="bg-gray-50 min-h-screen flex flex-col">
16
+ <custom-navbar></custom-navbar>
17
+
18
+ <main class="flex-grow">
19
+ <!-- Hero Section -->
20
+ <section id="hero" class="relative py-20 md:py-32 overflow-hidden">
21
+ <div class="absolute inset-0 z-0" id="globe-background"></div>
22
+ <div class="container mx-auto px-4 relative z-10">
23
+ <div class="max-w-3xl mx-auto text-center">
24
+ <h1 class="text-4xl md:text-6xl font-bold text-white mb-6">
25
+ Plan Your <span class="text-indigo-300">Perfect</span> Days
26
+ </h1>
27
+ <p class="text-xl text-gray-200 mb-10 max-w-2xl mx-auto">
28
+ Eventful Days helps you organize events, set reminders, and never miss important moments again.
29
+ </p>
30
+ <div class="flex flex-col sm:flex-row justify-center gap-4">
31
+ <a href="#features" class="bg-indigo-600 hover:bg-indigo-700 text-white font-semibold py-3 px-8 rounded-lg transition duration-300 transform hover:scale-105">
32
+ Explore Features
33
+ </a>
34
+ <a href="#events" class="bg-white bg-opacity-20 hover:bg-opacity-30 text-white font-semibold py-3 px-8 rounded-lg transition duration-300 backdrop-blur-sm">
35
+ View Events
36
+ </a>
37
+ </div>
38
+ </div>
39
+ </div>
40
+ </section>
41
+
42
+ <!-- Features Section -->
43
+ <section id="features" class="py-20 bg-white">
44
+ <div class="container mx-auto px-4">
45
+ <div class="text-center mb-16">
46
+ <h2 class="text-3xl md:text-4xl font-bold text-gray-900 mb-4">Powerful Features</h2>
47
+ <p class="text-gray-600 max-w-2xl mx-auto">
48
+ Everything you need to manage your events efficiently and stay organized.
49
+ </p>
50
+ </div>
51
+
52
+ <div class="grid grid-cols-1 md:grid-cols-3 gap-10">
53
+ <div class="bg-gray-50 p-8 rounded-xl shadow-sm hover:shadow-md transition-shadow">
54
+ <div class="w-14 h-14 rounded-full bg-indigo-100 flex items-center justify-center mb-6">
55
+ <i data-feather="calendar" class="text-indigo-600"></i>
56
+ </div>
57
+ <h3 class="text-xl font-semibold text-gray-900 mb-3">Smart Calendar</h3>
58
+ <p class="text-gray-600">
59
+ Intuitive calendar interface that makes scheduling and viewing events effortless.
60
+ </p>
61
+ </div>
62
+
63
+ <div class="bg-gray-50 p-8 rounded-xl shadow-sm hover:shadow-md transition-shadow">
64
+ <div class="w-14 h-14 rounded-full bg-indigo-100 flex items-center justify-center mb-6">
65
+ <i data-feather="bell" class="text-indigo-600"></i>
66
+ </div>
67
+ <h3 class="text-xl font-semibold text-gray-900 mb-3">Reminders & Alerts</h3>
68
+ <p class="text-gray-600">
69
+ Never miss an event with customizable notifications and reminder settings.
70
+ </p>
71
+ </div>
72
+
73
+ <div class="bg-gray-50 p-8 rounded-xl shadow-sm hover:shadow-md transition-shadow">
74
+ <div class="w-14 h-14 rounded-full bg-indigo-100 flex items-center justify-center mb-6">
75
+ <i data-feather="share-2" class="text-indigo-600"></i>
76
+ </div>
77
+ <h3 class="text-xl font-semibold text-gray-900 mb-3">Easy Sharing</h3>
78
+ <p class="text-gray-600">
79
+ Share events with friends, family, or colleagues with just a few clicks.
80
+ </p>
81
+ </div>
82
+ </div>
83
+ </div>
84
+ </section>
85
+
86
+ <!-- Events Section -->
87
+ <section id="events" class="py-20 bg-gray-50">
88
+ <div class="container mx-auto px-4">
89
+ <div class="text-center mb-16">
90
+ <h2 class="text-3xl md:text-4xl font-bold text-gray-900 mb-4">Upcoming Events</h2>
91
+ <p class="text-gray-600 max-w-2xl mx-auto">
92
+ Check out what's coming up next in your schedule.
93
+ </p>
94
+ </div>
95
+
96
+ <div class="max-w-4xl mx-auto">
97
+ <div class="bg-white rounded-xl shadow-sm overflow-hidden">
98
+ <div class="p-6 border-b border-gray-200">
99
+ <h3 class="text-xl font-semibold text-gray-900">Your Events</h3>
100
+ </div>
101
+
102
+ <div class="divide-y divide-gray-100">
103
+ <div class="p-6 flex items-start">
104
+ <div class="mr-4 mt-1">
105
+ <div class="w-3 h-3 rounded-full bg-indigo-500"></div>
106
+ </div>
107
+ <div class="flex-grow">
108
+ <h4 class="font-semibold text-gray-900">Team Meeting</h4>
109
+ <p class="text-gray-600 mt-1">Monthly planning session with the development team</p>
110
+ <div class="flex items-center text-sm text-gray-500 mt-2">
111
+ <i data-feather="calendar" class="w-4 h-4 mr-1"></i>
112
+ <span>Tomorrow, 10:00 AM</span>
113
+ </div>
114
+ </div>
115
+ <button class="text-gray-400 hover:text-gray-600">
116
+ <i data-feather="more-vertical" class="w-5 h-5"></i>
117
+ </button>
118
+ </div>
119
+
120
+ <div class="p-6 flex items-start">
121
+ <div class="mr-4 mt-1">
122
+ <div class="w-3 h-3 rounded-full bg-green-500"></div>
123
+ </div>
124
+ <div class="flex-grow">
125
+ <h4 class="font-semibold text-gray-900">Project Deadline</h4>
126
+ <p class="text-gray-600 mt-1">Final submission for the client presentation</p>
127
+ <div class="flex items-center text-sm text-gray-500 mt-2">
128
+ <i data-feather="calendar" class="w-4 h-4 mr-1"></i>
129
+ <span>June 15, 2023</span>
130
+ </div>
131
+ </div>
132
+ <button class="text-gray-400 hover:text-gray-600">
133
+ <i data-feather="more-vertical" class="w-5 h-5"></i>
134
+ </button>
135
+ </div>
136
+
137
+ <div class="p-6 flex items-start">
138
+ <div class="mr-4 mt-1">
139
+ <div class="w-3 h-3 rounded-full bg-yellow-500"></div>
140
+ </div>
141
+ <div class="flex-grow">
142
+ <h4 class="font-semibold text-gray-900">Birthday Party</h4>
143
+ <p class="text-gray-600 mt-1">Sarah's birthday celebration at the downtown venue</p>
144
+ <div class="flex items-center text-sm text-gray-500 mt-2">
145
+ <i data-feather="calendar" class="w-4 h-4 mr-1"></i>
146
+ <span>June 22, 2023 at 7:00 PM</span>
147
+ </div>
148
+ </div>
149
+ <button class="text-gray-400 hover:text-gray-600">
150
+ <i data-feather="more-vertical" class="w-5 h-5"></i>
151
+ </button>
152
+ </div>
153
+ </div>
154
+
155
+ <div class="p-6 bg-gray-50 text-center">
156
+ <button class="text-indigo-600 hover:text-indigo-800 font-medium flex items-center justify-center mx-auto">
157
+ <i data-feather="plus-circle" class="w-5 h-5 mr-1"></i>
158
+ Add New Event
159
+ </button>
160
+ </div>
161
+ </div>
162
+ </div>
163
+ </div>
164
+ </section>
165
+
166
+ <!-- CTA Section -->
167
+ <section class="py-20 bg-indigo-600">
168
+ <div class="container mx-auto px-4">
169
+ <div class="max-w-3xl mx-auto text-center">
170
+ <h2 class="text-3xl md:text-4xl font-bold text-white mb-6">Ready to Get Started?</h2>
171
+ <p class="text-indigo-100 text-xl mb-10">
172
+ Join thousands of users who organize their lives with Eventful Days.
173
+ </p>
174
+ <div class="flex flex-col sm:flex-row justify-center gap-4">
175
+ <a href="#" class="bg-white text-indigo-600 hover:bg-gray-100 font-semibold py-3 px-8 rounded-lg transition duration-300">
176
+ Sign Up Free
177
+ </a>
178
+ <a href="#" class="bg-indigo-700 hover:bg-indigo-800 text-white font-semibold py-3 px-8 rounded-lg transition duration-300">
179
+ Schedule a Demo
180
+ </a>
181
+ </div>
182
+ </div>
183
+ </div>
184
+ </section>
185
+ </main>
186
+
187
+ <custom-footer></custom-footer>
188
+
189
+ <script src="components/navbar.js"></script>
190
+ <script src="components/footer.js"></script>
191
+ <script src="script.js"></script>
192
+ <script>
193
+ feather.replace();
194
+
195
+ // Initialize Vanta.js globe effect
196
+ VANTA.GLOBE({
197
+ el: "#globe-background",
198
+ mouseControls: true,
199
+ touchControls: true,
200
+ gyroControls: false,
201
+ minHeight: 200.00,
202
+ minWidth: 200.00,
203
+ scale: 1.00,
204
+ scaleMobile: 1.00,
205
+ color: 0x334155,
206
+ color2: 0x4f46e5,
207
+ backgroundColor: 0x1e293b
208
+ })
209
+ </script>
210
+ <script src="https://deepsite.hf.co/deepsite-badge.js"></script>
211
+ </body>
212
+ </html>
script.js ADDED
@@ -0,0 +1,67 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ // Shared JavaScript across all pages
2
+ console.log('Eventful Days App loaded');
3
+
4
+ // Smooth scrolling for anchor links
5
+ document.querySelectorAll('a[href^="#"]').forEach(anchor => {
6
+ anchor.addEventListener('click', function (e) {
7
+ e.preventDefault();
8
+
9
+ const target = document.querySelector(this.getAttribute('href'));
10
+ if (target) {
11
+ window.scrollTo({
12
+ top: target.offsetTop - 80,
13
+ behavior: 'smooth'
14
+ });
15
+ }
16
+ });
17
+ });
18
+
19
+ // Navbar scroll effect
20
+ window.addEventListener('scroll', function() {
21
+ const navbar = document.querySelector('custom-navbar');
22
+ if (window.scrollY > 50) {
23
+ navbar.classList.add('scrolled');
24
+ } else {
25
+ navbar.classList.remove('scrolled');
26
+ }
27
+ });
28
+
29
+ // Form validation example
30
+ function validateForm(form) {
31
+ let isValid = true;
32
+
33
+ // Example validation for required fields
34
+ form.querySelectorAll('[required]').forEach(field => {
35
+ if (!field.value.trim()) {
36
+ isValid = false;
37
+ field.classList.add('border-red-500');
38
+ } else {
39
+ field.classList.remove('border-red-500');
40
+ }
41
+ });
42
+
43
+ return isValid;
44
+ }
45
+
46
+ // Toggle mobile menu
47
+ function toggleMobileMenu() {
48
+ const menu = document.getElementById('mobile-menu');
49
+ menu.classList.toggle('hidden');
50
+ }
51
+
52
+ // Initialize tooltips (if using)
53
+ function initTooltips() {
54
+ const tooltips = document.querySelectorAll('[data-tooltip]');
55
+ tooltips.forEach(tooltip => {
56
+ tooltip.addEventListener('mouseenter', function() {
57
+ const tooltipText = this.getAttribute('data-tooltip');
58
+ // Implementation for showing tooltip
59
+ });
60
+ });
61
+ }
62
+
63
+ // Document ready equivalent
64
+ document.addEventListener('DOMContentLoaded', function() {
65
+ console.log('DOM fully loaded');
66
+ initTooltips();
67
+ });
style.css CHANGED
@@ -1,28 +1,87 @@
 
 
 
 
 
 
 
 
 
1
  body {
2
- padding: 2rem;
3
- font-family: -apple-system, BlinkMacSystemFont, "Arial", sans-serif;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4
  }
5
 
6
- h1 {
7
- font-size: 16px;
8
- margin-top: 0;
9
  }
10
 
11
- p {
12
- color: rgb(107, 114, 128);
13
- font-size: 15px;
14
- margin-bottom: 10px;
15
- margin-top: 5px;
 
 
 
 
 
 
16
  }
17
 
18
- .card {
19
- max-width: 620px;
20
- margin: 0 auto;
21
- padding: 16px;
22
- border: 1px solid lightgray;
23
- border-radius: 16px;
24
  }
25
 
26
- .card p:last-child {
27
- margin-bottom: 0;
 
 
 
 
 
 
 
 
28
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* Shared styles across all pages */
2
+ @import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap');
3
+
4
+ :root {
5
+ --primary-color: #4f46e5;
6
+ --secondary-color: #818cf8;
7
+ --accent-color: #c7d2fe;
8
+ }
9
+
10
  body {
11
+ font-family: 'Inter', sans-serif;
12
+ scroll-behavior: smooth;
13
+ }
14
+
15
+ /* Custom scrollbar */
16
+ ::-webkit-scrollbar {
17
+ width: 8px;
18
+ }
19
+
20
+ ::-webkit-scrollbar-track {
21
+ background: #f1f1f1;
22
+ }
23
+
24
+ ::-webkit-scrollbar-thumb {
25
+ background: #c7d2fe;
26
+ border-radius: 4px;
27
  }
28
 
29
+ ::-webkit-scrollbar-thumb:hover {
30
+ background: #818cf8;
 
31
  }
32
 
33
+ /* Animation for feature cards */
34
+ @keyframes float {
35
+ 0% {
36
+ transform: translateY(0px);
37
+ }
38
+ 50% {
39
+ transform: translateY(-10px);
40
+ }
41
+ 100% {
42
+ transform: translateY(0px);
43
+ }
44
  }
45
 
46
+ .floating {
47
+ animation: float 3s ease-in-out infinite;
 
 
 
 
48
  }
49
 
50
+ /* Responsive adjustments */
51
+ @media (max-width: 768px) {
52
+ .hero-content {
53
+ padding-top: 2rem;
54
+ padding-bottom: 2rem;
55
+ }
56
+
57
+ .feature-card {
58
+ margin-bottom: 2rem;
59
+ }
60
  }
61
+
62
+ /* Button hover effects */
63
+ .btn-primary {
64
+ transition: all 0.3s ease;
65
+ }
66
+
67
+ .btn-primary:hover {
68
+ transform: translateY(-2px);
69
+ box-shadow: 0 10px 25px rgba(79, 70, 229, 0.3);
70
+ }
71
+
72
+ /* Section spacing */
73
+ section {
74
+ padding-top: 5rem;
75
+ padding-bottom: 5rem;
76
+ }
77
+
78
+ /* Event item styling */
79
+ .event-item:hover {
80
+ background-color: #f9fafb;
81
+ }
82
+
83
+ /* Footer styling */
84
+ custom-footer {
85
+ display: block;
86
+ margin-top: auto;
87
+ }