From ffa0a462131fd5efd5811556188beea2388f7b6b Mon Sep 17 00:00:00 2001 From: whitney Date: Tue, 3 Mar 2026 09:47:11 -0800 Subject: [PATCH] Rewrite as bring-your-own-markdown website generator --- build/asset-manifest.json | 17 + build/favicon.ico | Bin 0 -> 3870 bytes build/index.html | 1 + build/logo192.png | Bin 0 -> 5347 bytes build/logo512.png | Bin 0 -> 9664 bytes build/manifest.json | 25 + build/robots.txt | 3 + build/static/css/main.39fd778a.css | 2 + build/static/css/main.39fd778a.css.map | 1 + build/static/js/488.9561f9b8.chunk.js | 2 + build/static/js/488.9561f9b8.chunk.js.map | 1 + build/static/js/main.fd3a90d8.js | 3 + build/static/js/main.fd3a90d8.js.LICENSE.txt | 86 + build/static/js/main.fd3a90d8.js.map | 1 + .../instagram-dark.60be80b890ecf588309c.png | Bin 0 -> 19204 bytes .../instagram-light.2173f1e5eaee4fd6d94f.png | Bin 0 -> 20134 bytes content/_config.json | 13 + content/about/index.md | 11 + content/contact/index.md | 6 + content/gallery/index.md | 21 + content/gallery/landscapes/images.json | 22 + content/gallery/landscapes/index.md | 4 + content/gallery/nature/images.json | 21 + content/gallery/nature/index.md | 4 + content/gallery/portraits/images.json | 22 + content/gallery/portraits/index.md | 4 + content/gallery/textures/images.json | 22 + content/gallery/textures/index.md | 4 + content/images.json | 81 + content/index.md | 17 + package-lock.json | 1380 +++++++++++++++++ package.json | 15 + scripts/build-content.js | 95 ++ src/App.js | 40 +- src/App.test.js | 19 +- src/components/About.css | 46 - src/components/About.js | 34 - src/components/Contact.css | 17 - src/components/Contact.js | 16 - src/components/Footer.css | 6 +- src/components/Footer.js | 16 +- src/components/MarkdownRenderer.css | 23 + src/components/MarkdownRenderer.js | 11 + src/components/Navbar.css | 17 +- src/components/Navbar.js | 32 +- src/data/Images.js | 84 - src/framework/ContentProvider.js | 16 + src/framework/TemplateRegistry.js | 19 + src/generated/content.js | 267 ++++ src/index.js | 1 + src/plugins/index.js | 5 + src/setupTests.js | 23 + src/templates/ContactTemplate.css | 44 + src/templates/ContactTemplate.js | 33 + src/templates/DefaultTemplate.css | 40 + src/templates/DefaultTemplate.js | 22 + .../GalleryTemplate.css} | 7 +- .../Home.js => templates/GalleryTemplate.js} | 24 +- src/templates/HomepageTemplate.css | 91 ++ src/templates/HomepageTemplate.js | 64 + src/templates/MenuTemplate.css | 68 + src/templates/MenuTemplate.js | 83 + src/theme/theme.css | 28 + 63 files changed, 2817 insertions(+), 263 deletions(-) create mode 100644 build/asset-manifest.json create mode 100644 build/favicon.ico create mode 100644 build/index.html create mode 100644 build/logo192.png create mode 100644 build/logo512.png create mode 100644 build/manifest.json create mode 100644 build/robots.txt create mode 100644 build/static/css/main.39fd778a.css create mode 100644 build/static/css/main.39fd778a.css.map create mode 100644 build/static/js/488.9561f9b8.chunk.js create mode 100644 build/static/js/488.9561f9b8.chunk.js.map create mode 100644 build/static/js/main.fd3a90d8.js create mode 100644 build/static/js/main.fd3a90d8.js.LICENSE.txt create mode 100644 build/static/js/main.fd3a90d8.js.map create mode 100644 build/static/media/instagram-dark.60be80b890ecf588309c.png create mode 100644 build/static/media/instagram-light.2173f1e5eaee4fd6d94f.png create mode 100644 content/_config.json create mode 100644 content/about/index.md create mode 100644 content/contact/index.md create mode 100644 content/gallery/index.md create mode 100644 content/gallery/landscapes/images.json create mode 100644 content/gallery/landscapes/index.md create mode 100644 content/gallery/nature/images.json create mode 100644 content/gallery/nature/index.md create mode 100644 content/gallery/portraits/images.json create mode 100644 content/gallery/portraits/index.md create mode 100644 content/gallery/textures/images.json create mode 100644 content/gallery/textures/index.md create mode 100644 content/images.json create mode 100644 content/index.md create mode 100644 scripts/build-content.js delete mode 100644 src/components/About.css delete mode 100644 src/components/About.js delete mode 100644 src/components/Contact.css delete mode 100644 src/components/Contact.js create mode 100644 src/components/MarkdownRenderer.css create mode 100644 src/components/MarkdownRenderer.js delete mode 100644 src/data/Images.js create mode 100644 src/framework/ContentProvider.js create mode 100644 src/framework/TemplateRegistry.js create mode 100644 src/generated/content.js create mode 100644 src/plugins/index.js create mode 100644 src/templates/ContactTemplate.css create mode 100644 src/templates/ContactTemplate.js create mode 100644 src/templates/DefaultTemplate.css create mode 100644 src/templates/DefaultTemplate.js rename src/{components/Home.css => templates/GalleryTemplate.css} (70%) rename src/{components/Home.js => templates/GalleryTemplate.js} (67%) create mode 100644 src/templates/HomepageTemplate.css create mode 100644 src/templates/HomepageTemplate.js create mode 100644 src/templates/MenuTemplate.css create mode 100644 src/templates/MenuTemplate.js create mode 100644 src/theme/theme.css diff --git a/build/asset-manifest.json b/build/asset-manifest.json new file mode 100644 index 0000000..2b8d296 --- /dev/null +++ b/build/asset-manifest.json @@ -0,0 +1,17 @@ +{ + "files": { + "main.css": "/static/css/main.39fd778a.css", + "main.js": "/static/js/main.fd3a90d8.js", + "static/js/488.9561f9b8.chunk.js": "/static/js/488.9561f9b8.chunk.js", + "static/media/instagram-light.png": "/static/media/instagram-light.2173f1e5eaee4fd6d94f.png", + "static/media/instagram-dark.png": "/static/media/instagram-dark.60be80b890ecf588309c.png", + "index.html": "/index.html", + "main.39fd778a.css.map": "/static/css/main.39fd778a.css.map", + "main.fd3a90d8.js.map": "/static/js/main.fd3a90d8.js.map", + "488.9561f9b8.chunk.js.map": "/static/js/488.9561f9b8.chunk.js.map" + }, + "entrypoints": [ + "static/css/main.39fd778a.css", + "static/js/main.fd3a90d8.js" + ] +} \ No newline at end of file diff --git a/build/favicon.ico b/build/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..a11777cc471a4344702741ab1c8a588998b1311a GIT binary patch literal 3870 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 baj7?x%VD!5Cxk2YbYLNVeiXvvpMCWYo=by@ literal 0 HcmV?d00001 diff --git a/build/index.html b/build/index.html new file mode 100644 index 0000000..f95298e --- /dev/null +++ b/build/index.html @@ -0,0 +1 @@ +React App
\ No newline at end of file diff --git a/build/logo192.png b/build/logo192.png new file mode 100644 index 0000000000000000000000000000000000000000..fc44b0a3796c0e0a64c3d858ca038bd4570465d9 GIT binary patch literal 5347 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 b{|{}U^kRn2wo}j7|0ATu<;8xA7zX}7|B6mN literal 0 HcmV?d00001 diff --git a/build/manifest.json b/build/manifest.json new file mode 100644 index 0000000..080d6c7 --- /dev/null +++ b/build/manifest.json @@ -0,0 +1,25 @@ +{ + "short_name": "React App", + "name": "Create React App Sample", + "icons": [ + { + "src": "favicon.ico", + "sizes": "64x64 32x32 24x24 16x16", + "type": "image/x-icon" + }, + { + "src": "logo192.png", + "type": "image/png", + "sizes": "192x192" + }, + { + "src": "logo512.png", + "type": "image/png", + "sizes": "512x512" + } + ], + "start_url": ".", + "display": "standalone", + "theme_color": "#000000", + "background_color": "#ffffff" +} diff --git a/build/robots.txt b/build/robots.txt new file mode 100644 index 0000000..e9e57dc --- /dev/null +++ b/build/robots.txt @@ -0,0 +1,3 @@ +# https://www.robotstxt.org/robotstxt.html +User-agent: * +Disallow: diff --git a/build/static/css/main.39fd778a.css b/build/static/css/main.39fd778a.css new file mode 100644 index 0000000..95aba80 --- /dev/null +++ b/build/static/css/main.39fd778a.css @@ -0,0 +1,2 @@ +:root{--color-bg:#333;--color-bg-surface:#222;--color-bg-nav:#0b0b0b;--color-text:#f5f5f5;--color-text-muted:#999;--color-text-nav:#fff;--color-text-footer:grey;--color-border:#000;--color-accent:#fff;--font-body:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;--font-heading:"Arial",sans-serif;--font-size-base:16px;--line-height-body:1.6;--nav-height:70px;--content-max-width:800px;--content-padding:20px;--space-xs:4px;--space-sm:8px;--space-md:16px;--space-lg:24px;--space-xl:40px;--radius-sm:4px;--radius-md:8px;--radius-lg:10px;--transition-fast:0.2s ease;--transition-base:0.3s ease}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;margin:0}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}.lightbox-overlay{align-items:center;animation:fadeIn .2s ease;background:#000000e0;cursor:zoom-out;display:flex;inset:0;justify-content:center;position:fixed;z-index:1000}.lightbox-overlay.closing{animation:fadeOut .2s ease forwards}.lightbox-image{border-radius:4px;cursor:zoom-out;max-height:90vh;max-width:90vw;object-fit:contain}.lightbox-close{background:none;border:none;color:#fff;cursor:pointer;font-size:1.5rem;line-height:1;opacity:.7;position:absolute;right:1.25rem;top:1rem}.lightbox-close:hover{opacity:1}.gallery{background-color:var(--color-bg);display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));margin:0 auto}.gallery-photo{border-radius:5px;display:block;height:auto;margin:.66%;object-fit:cover;width:32%}@media (max-width:768px){.gallery-photo{width:calc(100% - 10px)}}.markdown-body{color:var(--color-text-muted);font-family:var(--font-body);font-size:var(--font-size-base);line-height:var(--line-height-body);text-align:left}.markdown-body p{margin-bottom:15px}.markdown-body h1,.markdown-body h2,.markdown-body h3{color:var(--color-text);font-family:var(--font-heading);margin-bottom:var(--space-sm)}.markdown-body a{color:var(--color-accent)}.default-container{align-items:center;background-color:var(--color-bg);display:flex;justify-content:center;min-height:100vh;width:100%}.default-content{background-color:var(--color-bg-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:0 4px 6px #0000001a;max-width:var(--content-max-width);padding:var(--content-padding);text-align:center;width:33%}@media (max-width:768px){.default-content{width:90%}}.default-profile-image{border-radius:50%;height:100px;margin-bottom:var(--space-lg);object-fit:cover;width:100px}.default-title{color:var(--color-text);font-family:var(--font-heading);font-size:1.5rem;margin-bottom:var(--space-sm)}.contact-container{align-items:center;background-color:var(--color-bg);display:flex;flex-direction:column;justify-content:center;min-height:100vh}.contact-content{background-color:var(--color-bg-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);max-width:var(--content-max-width);padding:var(--content-padding);text-align:center;width:33%}@media (max-width:768px){.contact-content{width:90%}}.contact-title{font-family:var(--font-heading);font-weight:700;margin-bottom:var(--space-md)}.contact-item,.contact-item a,.contact-title{color:var(--color-text)}.contact-item a{text-decoration:none}.contact-item a:hover{text-decoration:underline}.homepage{background-color:var(--color-bg);min-height:100vh}.homepage-hero{padding:80px 20px 60px;text-align:center}.homepage-hero-title{color:var(--color-text);font-size:3rem;font-weight:300;letter-spacing:.05em;margin:0 0 var(--space-md) 0}.homepage-hero-subtitle{color:var(--color-text-muted);font-size:.9rem;letter-spacing:.15em;margin:0;text-transform:uppercase}.homepage-sections{margin:0 auto;max-width:1100px;padding:0 var(--content-padding) 60px}.homepage-section{align-items:center;background-color:var(--color-bg-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);display:flex;gap:var(--space-xl);margin-bottom:60px;padding:var(--space-xl)}.homepage-section.image-right{flex-direction:row-reverse}.homepage-section-image{flex:0 0 45%}.homepage-section-image img{border-radius:var(--radius-sm);display:block;height:300px;object-fit:cover;width:100%}.homepage-section-text{flex:1 1}.homepage-section-text h2{color:var(--color-text);font-size:1.6rem;font-weight:400;margin:0 0 var(--space-md) 0}.homepage-section-text p{color:var(--color-text-muted);line-height:var(--line-height-body);margin:0 0 var(--space-sm) 0}@media (max-width:700px){.homepage-hero-title{font-size:2rem}.homepage-section,.homepage-section.image-right{flex-direction:column}.homepage-section-image{flex:none;width:100%}}.menu-page{background-color:var(--color-bg);min-height:100vh;padding:60px var(--content-padding) 60px}.menu-header{margin-bottom:var(--space-xl);text-align:center}.menu-header h1{color:var(--color-text);font-size:2.5rem;font-weight:300;margin:0 0 var(--space-md) 0}.menu-description{color:var(--color-text-muted);font-size:1rem;margin:0}.menu-grid{grid-gap:var(--space-lg);display:grid;gap:var(--space-lg);grid-template-columns:repeat(auto-fit,minmax(260px,1fr));margin:0 auto;max-width:900px}.menu-card{background-color:var(--color-bg-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);display:block;padding:var(--space-md);text-decoration:none;transition:transform var(--transition-fast),border-color var(--transition-fast)}.menu-card:hover{border-color:var(--color-accent);transform:translateY(-2px)}.menu-card-image{border-radius:var(--radius-sm);display:block;height:180px;margin-bottom:var(--space-md);object-fit:cover;width:100%}.menu-card-title{color:var(--color-text);font-size:1.3rem;font-weight:400;margin-bottom:var(--space-sm)}.menu-card-desc{color:var(--color-text-muted);font-size:.9rem;line-height:var(--line-height-body)}.navbar{background-color:var(--color-bg-nav);gap:10px;justify-content:space-between;padding:10px 20px}.navbar,.navbar-logo{align-items:center;display:flex}.navbar-logo{gap:15px}.navbar-logo .logo{border-radius:var(--radius-lg);height:50px}.navbar-links{display:flex;flex-direction:row;gap:10px}.navbar-links a{color:var(--color-text-nav);font-family:var(--font-heading);font-size:var(--font-size-base);text-decoration:none;transition:-webkit-text-decoration var(--transition-fast);transition:text-decoration var(--transition-fast);transition:text-decoration var(--transition-fast),-webkit-text-decoration var(--transition-fast)}.navbar-links a:hover{text-decoration:underline}.navbar-title h1{color:var(--color-text-nav);font-family:var(--font-heading);font-size:24px;margin:0}.navbar-icons{align-items:center;display:flex;gap:15px}.navbar-icons .icon{height:30px;transition:transform var(--transition-fast);width:30px}.navbar-icons .icon:hover{transform:scale(1.1)}.footer{background-color:var(--color-bg-nav);color:var(--color-text-nav);justify-content:space-evenly;padding:10px 20px}.footer,.footer-links{align-items:center;display:flex}.footer-links{flex-direction:column}.footer-links a{color:var(--color-text-footer);margin:5px 0;outline:none;text-decoration:none;-webkit-user-select:none;user-select:none}.footer-links a:hover{opacity:.8;text-decoration:none}.footer-title{flex:0 0 auto;text-align:center} +/*# sourceMappingURL=main.39fd778a.css.map*/ \ No newline at end of file diff --git a/build/static/css/main.39fd778a.css.map b/build/static/css/main.39fd778a.css.map new file mode 100644 index 0000000..f31729f --- /dev/null +++ b/build/static/css/main.39fd778a.css.map @@ -0,0 +1 @@ +{"version":3,"file":"static/css/main.39fd778a.css","mappings":"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","sources":["theme/theme.css","index.css","components/Lightbox.css","templates/GalleryTemplate.css","components/MarkdownRenderer.css","templates/DefaultTemplate.css","templates/ContactTemplate.css","templates/HomepageTemplate.css","templates/MenuTemplate.css","components/Navbar.css","components/Footer.css"],"sourcesContent":[":root {\n --color-bg: #333;\n --color-bg-surface: #222;\n --color-bg-nav: #0b0b0b;\n --color-text: #f5f5f5;\n --color-text-muted: #999;\n --color-text-nav: #fff;\n --color-text-footer: #808080;\n --color-border: #000;\n --color-accent: #fff;\n --font-body: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;\n --font-heading: 'Arial', sans-serif;\n --font-size-base: 16px;\n --line-height-body: 1.6;\n --nav-height: 70px;\n --content-max-width: 800px;\n --content-padding: 20px;\n --space-xs: 4px;\n --space-sm: 8px;\n --space-md: 16px;\n --space-lg: 24px;\n --space-xl: 40px;\n --radius-sm: 4px;\n --radius-md: 8px;\n --radius-lg: 10px;\n --transition-fast: 0.2s ease;\n --transition-base: 0.3s ease;\n}\n","body {\n margin: 0;\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen',\n 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue',\n sans-serif;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n\ncode {\n font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New',\n monospace;\n}\n","@keyframes fadeIn {\n from { opacity: 0; }\n to { opacity: 1; }\n}\n\n@keyframes fadeOut {\n from { opacity: 1; }\n to { opacity: 0; }\n}\n\n.lightbox-overlay {\n position: fixed;\n inset: 0;\n background: rgba(0, 0, 0, 0.88);\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 1000;\n cursor: zoom-out;\n animation: fadeIn 0.2s ease;\n}\n\n.lightbox-overlay.closing {\n animation: fadeOut 0.2s ease forwards;\n}\n\n.lightbox-image {\n max-width: 90vw;\n max-height: 90vh;\n object-fit: contain;\n border-radius: 4px;\n cursor: zoom-out;\n}\n\n.lightbox-close {\n position: absolute;\n top: 1rem;\n right: 1.25rem;\n background: none;\n border: none;\n color: #fff;\n font-size: 1.5rem;\n cursor: pointer;\n line-height: 1;\n opacity: 0.7;\n}\n\n.lightbox-close:hover {\n opacity: 1;\n}\n",".gallery {\n display: grid;\n grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));\n margin: 0 auto;\n background-color: var(--color-bg);\n}\n\n.gallery-photo {\n margin: 0.66%;\n border-radius: 5px;\n display: block;\n height: auto;\n width: calc(32%);\n object-fit: cover;\n}\n\n@media (max-width: 768px) {\n .gallery-photo {\n width: calc(100% - 10px);\n }\n}\n",".markdown-body {\n color: var(--color-text-muted);\n font-family: var(--font-body);\n font-size: var(--font-size-base);\n line-height: var(--line-height-body);\n text-align: left;\n}\n\n.markdown-body p {\n margin-bottom: 15px;\n}\n\n.markdown-body h1,\n.markdown-body h2,\n.markdown-body h3 {\n color: var(--color-text);\n font-family: var(--font-heading);\n margin-bottom: var(--space-sm);\n}\n\n.markdown-body a {\n color: var(--color-accent);\n}\n",".default-container {\n display: flex;\n justify-content: center;\n align-items: center;\n width: 100%;\n min-height: 100vh;\n background-color: var(--color-bg);\n}\n\n.default-content {\n width: 33%;\n max-width: var(--content-max-width);\n padding: var(--content-padding);\n background-color: var(--color-bg-surface);\n border: 1px solid var(--color-border);\n box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);\n border-radius: var(--radius-lg);\n text-align: center;\n}\n\n@media (max-width: 768px) {\n .default-content {\n width: 90%;\n }\n}\n\n.default-profile-image {\n width: 100px;\n height: 100px;\n border-radius: 50%;\n margin-bottom: var(--space-lg);\n object-fit: cover;\n}\n\n.default-title {\n font-size: 1.5rem;\n margin-bottom: var(--space-sm);\n color: var(--color-text);\n font-family: var(--font-heading);\n}\n",".contact-container {\n background-color: var(--color-bg);\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n min-height: 100vh;\n}\n\n.contact-content {\n width: 33%;\n max-width: var(--content-max-width);\n padding: var(--content-padding);\n background-color: var(--color-bg-surface);\n border: 1px solid var(--color-border);\n border-radius: var(--radius-lg);\n text-align: center;\n}\n\n@media (max-width: 768px) {\n .contact-content {\n width: 90%;\n }\n}\n\n.contact-title {\n color: var(--color-text);\n font-family: var(--font-heading);\n font-weight: bold;\n margin-bottom: var(--space-md);\n}\n\n.contact-item {\n color: var(--color-text);\n}\n\n.contact-item a {\n color: var(--color-text);\n text-decoration: none;\n}\n\n.contact-item a:hover {\n text-decoration: underline;\n}\n",".homepage {\n background-color: var(--color-bg);\n min-height: 100vh;\n}\n\n.homepage-hero {\n text-align: center;\n padding: 80px 20px 60px;\n}\n\n.homepage-hero-title {\n font-size: 3rem;\n font-weight: 300;\n letter-spacing: 0.05em;\n color: var(--color-text);\n margin: 0 0 var(--space-md) 0;\n}\n\n.homepage-hero-subtitle {\n text-transform: uppercase;\n color: var(--color-text-muted);\n letter-spacing: 0.15em;\n font-size: 0.9rem;\n margin: 0;\n}\n\n.homepage-sections {\n max-width: 1100px;\n margin: 0 auto;\n padding: 0 var(--content-padding) 60px;\n}\n\n.homepage-section {\n display: flex;\n gap: var(--space-xl);\n background-color: var(--color-bg-surface);\n border: 1px solid var(--color-border);\n border-radius: var(--radius-md);\n padding: var(--space-xl);\n margin-bottom: 60px;\n align-items: center;\n}\n\n.homepage-section.image-right {\n flex-direction: row-reverse;\n}\n\n.homepage-section-image {\n flex: 0 0 45%;\n}\n\n.homepage-section-image img {\n width: 100%;\n height: 300px;\n object-fit: cover;\n border-radius: var(--radius-sm);\n display: block;\n}\n\n.homepage-section-text {\n flex: 1;\n}\n\n.homepage-section-text h2 {\n font-size: 1.6rem;\n font-weight: 400;\n color: var(--color-text);\n margin: 0 0 var(--space-md) 0;\n}\n\n.homepage-section-text p {\n color: var(--color-text-muted);\n line-height: var(--line-height-body);\n margin: 0 0 var(--space-sm) 0;\n}\n\n@media (max-width: 700px) {\n .homepage-hero-title {\n font-size: 2rem;\n }\n\n .homepage-section,\n .homepage-section.image-right {\n flex-direction: column;\n }\n\n .homepage-section-image {\n flex: none;\n width: 100%;\n }\n}\n",".menu-page {\n background-color: var(--color-bg);\n min-height: 100vh;\n padding: 60px var(--content-padding) 60px;\n}\n\n.menu-header {\n text-align: center;\n margin-bottom: var(--space-xl);\n}\n\n.menu-header h1 {\n font-size: 2.5rem;\n font-weight: 300;\n color: var(--color-text);\n margin: 0 0 var(--space-md) 0;\n}\n\n.menu-description {\n color: var(--color-text-muted);\n font-size: 1rem;\n margin: 0;\n}\n\n.menu-grid {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));\n max-width: 900px;\n margin: 0 auto;\n gap: var(--space-lg);\n}\n\n.menu-card {\n background-color: var(--color-bg-surface);\n border: 1px solid var(--color-border);\n border-radius: var(--radius-md);\n padding: var(--space-md);\n text-decoration: none;\n display: block;\n transition: transform var(--transition-fast), border-color var(--transition-fast);\n}\n\n.menu-card:hover {\n transform: translateY(-2px);\n border-color: var(--color-accent);\n}\n\n.menu-card-image {\n width: 100%;\n height: 180px;\n object-fit: cover;\n border-radius: var(--radius-sm);\n margin-bottom: var(--space-md);\n display: block;\n}\n\n.menu-card-title {\n color: var(--color-text);\n font-size: 1.3rem;\n font-weight: 400;\n margin-bottom: var(--space-sm);\n}\n\n.menu-card-desc {\n color: var(--color-text-muted);\n font-size: 0.9rem;\n line-height: var(--line-height-body);\n}\n",".navbar {\n display: flex;\n justify-content: space-between;\n align-items: center;\n background-color: var(--color-bg-nav);\n padding: 10px 20px;\n gap: 10px;\n}\n\n.navbar-logo {\n display: flex;\n align-items: center;\n gap: 15px;\n}\n\n.navbar-logo .logo {\n height: 50px;\n border-radius: var(--radius-lg);\n}\n\n.navbar-links {\n display: flex;\n flex-direction: row;\n gap: 10px;\n}\n\n.navbar-links a {\n color: var(--color-text-nav);\n text-decoration: none;\n font-family: var(--font-heading);\n font-size: var(--font-size-base);\n transition: text-decoration var(--transition-fast);\n}\n\n.navbar-links a:hover {\n text-decoration: underline;\n}\n\n.navbar-title h1 {\n color: var(--color-text-nav);\n font-family: var(--font-heading);\n font-size: 24px;\n margin: 0;\n}\n\n.navbar-icons {\n display: flex;\n align-items: center;\n gap: 15px;\n}\n\n.navbar-icons .icon {\n height: 30px;\n width: 30px;\n transition: transform var(--transition-fast);\n}\n\n.navbar-icons .icon:hover {\n transform: scale(1.1);\n}\n",".footer {\n display: flex;\n justify-content: space-evenly;\n align-items: center;\n background-color: var(--color-bg-nav);\n color: var(--color-text-nav);\n padding: 10px 20px;\n}\n\n.footer-links {\n display: flex;\n flex-direction: column;\n align-items: center;\n}\n\n.footer-links a {\n color: var(--color-text-footer);\n text-decoration: none;\n margin: 5px 0;\n user-select: none;\n outline: none;\n}\n\n.footer-links a:hover {\n text-decoration: none;\n opacity: 0.8;\n}\n\n.footer-title {\n text-align: center;\n flex: 0 0 auto;\n}\n"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/build/static/js/488.9561f9b8.chunk.js b/build/static/js/488.9561f9b8.chunk.js new file mode 100644 index 0000000..6f82847 --- /dev/null +++ b/build/static/js/488.9561f9b8.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkportfolio=self.webpackChunkportfolio||[]).push([[488],{488:(e,n,t)=>{t.r(n),t.d(n,{CLSThresholds:()=>P,FCPThresholds:()=>w,FIDThresholds:()=>ne,INPThresholds:()=>_,LCPThresholds:()=>G,TTFBThresholds:()=>Q,onCLS:()=>A,onFCP:()=>I,onFID:()=>te,onINP:()=>z,onLCP:()=>K,onTTFB:()=>V});var r,i,o,a,c,u=-1,s=function(e){addEventListener("pageshow",(function(n){n.persisted&&(u=n.timeStamp,e(n))}),!0)},f=function(){var e=self.performance&&performance.getEntriesByType&&performance.getEntriesByType("navigation")[0];if(e&&e.responseStart>0&&e.responseStart=0?r="back-forward-cache":t&&(document.prerendering||d()>0?r="prerender":document.wasDiscarded?r="restore":t.type&&(r=t.type.replace(/_/g,"-"))),{name:e,value:void 0===n?-1:n,rating:"good",delta:0,entries:[],id:"v4-".concat(Date.now(),"-").concat(Math.floor(8999999999999*Math.random())+1e12),navigationType:r}},p=function(e,n,t){try{if(PerformanceObserver.supportedEntryTypes.includes(e)){var r=new PerformanceObserver((function(e){Promise.resolve().then((function(){n(e.getEntries())}))}));return r.observe(Object.assign({type:e,buffered:!0},t||{})),r}}catch(e){}},v=function(e,n,t,r){var i,o;return function(a){n.value>=0&&(a||r)&&((o=n.value-(i||0))||void 0===i)&&(i=n.value,n.delta=o,n.rating=function(e,n){return e>n[1]?"poor":e>n[0]?"needs-improvement":"good"}(n.value,t),e(n))}},m=function(e){requestAnimationFrame((function(){return requestAnimationFrame((function(){return e()}))}))},h=function(e){document.addEventListener("visibilitychange",(function(){"hidden"===document.visibilityState&&e()}))},g=function(e){var n=!1;return function(){n||(e(),n=!0)}},T=-1,y=function(){return"hidden"!==document.visibilityState||document.prerendering?1/0:0},E=function(e){"hidden"===document.visibilityState&&T>-1&&(T="visibilitychange"===e.type?e.timeStamp:0,b())},C=function(){addEventListener("visibilitychange",E,!0),addEventListener("prerenderingchange",E,!0)},b=function(){removeEventListener("visibilitychange",E,!0),removeEventListener("prerenderingchange",E,!0)},L=function(){return T<0&&(T=y(),C(),s((function(){setTimeout((function(){T=y(),C()}),0)}))),{get firstHiddenTime(){return T}}},S=function(e){document.prerendering?addEventListener("prerenderingchange",(function(){return e()}),!0):e()},w=[1800,3e3],I=function(e,n){n=n||{},S((function(){var t,r=L(),i=l("FCP"),o=p("paint",(function(e){e.forEach((function(e){"first-contentful-paint"===e.name&&(o.disconnect(),e.startTimer.value&&(r.value=i,r.entries=o,t())},c=p("layout-shift",a);c&&(t=v(e,r,P,n.reportAllChanges),h((function(){a(c.takeRecords()),t(!0)})),s((function(){i=0,r=l("CLS",0),t=v(e,r,P,n.reportAllChanges),m((function(){return t()}))})),setTimeout(t,0))})))},F=0,k=1/0,M=0,D=function(e){e.forEach((function(e){e.interactionId&&(k=Math.min(k,e.interactionId),M=Math.max(M,e.interactionId),F=M?(M-k)/7+1:0)}))},B=function(){return r?F:performance.interactionCount||0},R=function(){"interactionCount"in performance||r||(r=p("event",D,{type:"event",buffered:!0,durationThreshold:0}))},x=[],H=new Map,N=0,q=[],O=function(e){if(q.forEach((function(n){return n(e)})),e.interactionId||"first-input"===e.entryType){var n=x[x.length-1],t=H.get(e.interactionId);if(t||x.length<10||e.duration>n.latency){if(t)e.duration>t.latency?(t.entries=[e],t.latency=e.duration):e.duration===t.latency&&e.startTime===t.entries[0].startTime&&t.entries.push(e);else{var r={id:e.interactionId,latency:e.duration,entries:[e]};H.set(r.id,r),x.push(r)}x.sort((function(e,n){return n.latency-e.latency})),x.length>10&&x.splice(10).forEach((function(e){return H.delete(e.id)}))}}},j=function(e){var n=self.requestIdleCallback||self.setTimeout,t=-1;return e=g(e),"hidden"===document.visibilityState?e():(t=n(e),h(e)),t},_=[200,500],z=function(e,n){"PerformanceEventTiming"in self&&"interactionId"in PerformanceEventTiming.prototype&&(n=n||{},S((function(){var t;R();var r,i=l("INP"),o=function(e){j((function(){e.forEach(O);var n=function(){var e=Math.min(x.length-1,Math.floor((B()-N)/50));return x[e]}();n&&n.latency!==i.value&&(i.value=n.latency,i.entries=n.entries,r())}))},a=p("event",o,{durationThreshold:null!==(t=n.durationThreshold)&&void 0!==t?t:40});r=v(e,i,_,n.reportAllChanges),a&&(a.observe({type:"first-input",buffered:!0}),h((function(){o(a.takeRecords()),r(!0)})),s((function(){N=B(),x.length=0,H.clear(),i=l("INP"),r=v(e,i,_,n.reportAllChanges)})))})))},G=[2500,4e3],J={},K=function(e,n){n=n||{},S((function(){var t,r=L(),i=l("LCP"),o=function(e){n.reportAllChanges||(e=e.slice(-1)),e.forEach((function(e){e.startTime=0&&o1e12?new Date:performance.now())-e.timeStamp;"pointerdown"==e.type?function(e,n){var t=function(){Y(e,n),i()},r=function(){i()},i=function(){removeEventListener("pointerup",t,W),removeEventListener("pointercancel",r,W)};addEventListener("pointerup",t,W),addEventListener("pointercancel",r,W)}(n,e):Y(n,e)}},ee=function(e){["mousedown","keydown","touchstart","pointerdown"].forEach((function(n){return e(n,$,W)}))},ne=[100,300],te=function(e,n){n=n||{},S((function(){var t,r=L(),a=l("FID"),u=function(e){e.startTime0&&e.responseStart=0?r=\"back-forward-cache\":t&&(document.prerendering||u()>0?r=\"prerender\":document.wasDiscarded?r=\"restore\":t.type&&(r=t.type.replace(/_/g,\"-\")));return{name:e,value:void 0===n?-1:n,rating:\"good\",delta:0,entries:[],id:\"v4-\".concat(Date.now(),\"-\").concat(Math.floor(8999999999999*Math.random())+1e12),navigationType:r}},s=function(e,n,t){try{if(PerformanceObserver.supportedEntryTypes.includes(e)){var r=new PerformanceObserver((function(e){Promise.resolve().then((function(){n(e.getEntries())}))}));return r.observe(Object.assign({type:e,buffered:!0},t||{})),r}}catch(e){}},d=function(e,n,t,r){var i,o;return function(a){n.value>=0&&(a||r)&&((o=n.value-(i||0))||void 0===i)&&(i=n.value,n.delta=o,n.rating=function(e,n){return e>n[1]?\"poor\":e>n[0]?\"needs-improvement\":\"good\"}(n.value,t),e(n))}},l=function(e){requestAnimationFrame((function(){return requestAnimationFrame((function(){return e()}))}))},p=function(e){document.addEventListener(\"visibilitychange\",(function(){\"hidden\"===document.visibilityState&&e()}))},v=function(e){var n=!1;return function(){n||(e(),n=!0)}},m=-1,h=function(){return\"hidden\"!==document.visibilityState||document.prerendering?1/0:0},g=function(e){\"hidden\"===document.visibilityState&&m>-1&&(m=\"visibilitychange\"===e.type?e.timeStamp:0,T())},y=function(){addEventListener(\"visibilitychange\",g,!0),addEventListener(\"prerenderingchange\",g,!0)},T=function(){removeEventListener(\"visibilitychange\",g,!0),removeEventListener(\"prerenderingchange\",g,!0)},E=function(){return m<0&&(m=h(),y(),a((function(){setTimeout((function(){m=h(),y()}),0)}))),{get firstHiddenTime(){return m}}},C=function(e){document.prerendering?addEventListener(\"prerenderingchange\",(function(){return e()}),!0):e()},b=[1800,3e3],S=function(e,n){n=n||{},C((function(){var t,r=E(),i=f(\"FCP\"),o=s(\"paint\",(function(e){e.forEach((function(e){\"first-contentful-paint\"===e.name&&(o.disconnect(),e.startTimer.value&&(r.value=i,r.entries=o,t())},u=s(\"layout-shift\",c);u&&(t=d(e,r,L,n.reportAllChanges),p((function(){c(u.takeRecords()),t(!0)})),a((function(){i=0,r=f(\"CLS\",0),t=d(e,r,L,n.reportAllChanges),l((function(){return t()}))})),setTimeout(t,0))})))},A=0,I=1/0,P=0,M=function(e){e.forEach((function(e){e.interactionId&&(I=Math.min(I,e.interactionId),P=Math.max(P,e.interactionId),A=P?(P-I)/7+1:0)}))},k=function(){return e?A:performance.interactionCount||0},F=function(){\"interactionCount\"in performance||e||(e=s(\"event\",M,{type:\"event\",buffered:!0,durationThreshold:0}))},D=[],x=new Map,R=0,B=function(){var e=Math.min(D.length-1,Math.floor((k()-R)/50));return D[e]},H=[],q=function(e){if(H.forEach((function(n){return n(e)})),e.interactionId||\"first-input\"===e.entryType){var n=D[D.length-1],t=x.get(e.interactionId);if(t||D.length<10||e.duration>n.latency){if(t)e.duration>t.latency?(t.entries=[e],t.latency=e.duration):e.duration===t.latency&&e.startTime===t.entries[0].startTime&&t.entries.push(e);else{var r={id:e.interactionId,latency:e.duration,entries:[e]};x.set(r.id,r),D.push(r)}D.sort((function(e,n){return n.latency-e.latency})),D.length>10&&D.splice(10).forEach((function(e){return x.delete(e.id)}))}}},O=function(e){var n=self.requestIdleCallback||self.setTimeout,t=-1;return e=v(e),\"hidden\"===document.visibilityState?e():(t=n(e),p(e)),t},N=[200,500],j=function(e,n){\"PerformanceEventTiming\"in self&&\"interactionId\"in PerformanceEventTiming.prototype&&(n=n||{},C((function(){var t;F();var r,i=f(\"INP\"),o=function(e){O((function(){e.forEach(q);var n=B();n&&n.latency!==i.value&&(i.value=n.latency,i.entries=n.entries,r())}))},c=s(\"event\",o,{durationThreshold:null!==(t=n.durationThreshold)&&void 0!==t?t:40});r=d(e,i,N,n.reportAllChanges),c&&(c.observe({type:\"first-input\",buffered:!0}),p((function(){o(c.takeRecords()),r(!0)})),a((function(){R=k(),D.length=0,x.clear(),i=f(\"INP\"),r=d(e,i,N,n.reportAllChanges)})))})))},_=[2500,4e3],z={},G=function(e,n){n=n||{},C((function(){var t,r=E(),i=f(\"LCP\"),o=function(e){n.reportAllChanges||(e=e.slice(-1)),e.forEach((function(e){e.startTime=0&&t1e12?new Date:performance.now())-e.timeStamp;\"pointerdown\"==e.type?function(e,n){var t=function(){W(e,n),i()},r=function(){i()},i=function(){removeEventListener(\"pointerup\",t,U),removeEventListener(\"pointercancel\",r,U)};addEventListener(\"pointerup\",t,U),addEventListener(\"pointercancel\",r,U)}(n,e):W(n,e)}},Z=function(e){[\"mousedown\",\"keydown\",\"touchstart\",\"pointerdown\"].forEach((function(n){return e(n,Y,U)}))},$=[100,300],ee=function(e,r){r=r||{},C((function(){var o,c=E(),u=f(\"FID\"),l=function(e){e.startTime{var e={111:(e,t,n)=>{var u,r;!function(i,a){"use strict";void 0===(r="function"===typeof(u=a)?u.call(t,n,t,e):u)||(e.exports=r)}(window,(function(){"use strict";var e=function(){var e=window.Element.prototype;if(e.matches)return"matches";if(e.matchesSelector)return"matchesSelector";for(var t=["webkit","moz","ms","o"],n=0;n{"use strict";var t=Object.prototype.hasOwnProperty,n=Object.prototype.toString,u=Object.defineProperty,r=Object.getOwnPropertyDescriptor,i=function(e){return"function"===typeof Array.isArray?Array.isArray(e):"[object Array]"===n.call(e)},a=function(e){if(!e||"[object Object]"!==n.call(e))return!1;var u,r=t.call(e,"constructor"),i=e.constructor&&e.constructor.prototype&&t.call(e.constructor.prototype,"isPrototypeOf");if(e.constructor&&!r&&!i)return!1;for(u in e);return"undefined"===typeof u||t.call(e,u)},o=function(e,t){u&&"__proto__"===t.name?u(e,t.name,{enumerable:!0,configurable:!0,value:t.newValue,writable:!0}):e[t.name]=t.newValue},l=function(e,n){if("__proto__"===n){if(!t.call(e,n))return;if(r)return r(e,n).value}return e[n]};e.exports=function e(){var t,n,u,r,s,c,f=arguments[0],d=1,p=arguments.length,D=!1;for("boolean"===typeof f&&(D=f,f=arguments[1]||{},d=2),(null==f||"object"!==typeof f&&"function"!==typeof f)&&(f={});d{var u,r;!function(i){u=[n(111)],r=function(e){return function(e,t){"use strict";var n={extend:function(e,t){for(var n in t)e[n]=t[n];return e},modulo:function(e,t){return(e%t+t)%t}},u=Array.prototype.slice;n.makeArray=function(e){return Array.isArray(e)?e:null===e||void 0===e?[]:"object"==typeof e&&"number"==typeof e.length?u.call(e):[e]},n.removeFrom=function(e,t){var n=e.indexOf(t);-1!=n&&e.splice(n,1)},n.getParent=function(e,n){for(;e.parentNode&&e!=document.body;)if(e=e.parentNode,t(e,n))return e},n.getQueryElement=function(e){return"string"==typeof e?document.querySelector(e):e},n.handleEvent=function(e){var t="on"+e.type;this[t]&&this[t](e)},n.filterFindElements=function(e,u){e=n.makeArray(e);var r=[];return e.forEach((function(e){if(e instanceof HTMLElement)if(u){t(e,u)&&r.push(e);for(var n=e.querySelectorAll(u),i=0;i{var u,r;window,void 0===(r="function"===typeof(u=function(){"use strict";function e(e){var t=parseFloat(e);return-1==e.indexOf("%")&&!isNaN(t)&&t}function t(){}var n="undefined"==typeof console?t:function(e){console.error(e)},u=["paddingLeft","paddingRight","paddingTop","paddingBottom","marginLeft","marginRight","marginTop","marginBottom","borderLeftWidth","borderRightWidth","borderTopWidth","borderBottomWidth"],r=u.length;function i(){for(var e={width:0,height:0,innerWidth:0,innerHeight:0,outerWidth:0,outerHeight:0},t=0;t
`/`` and will default to "').concat(Oe,'"')),null)}function Ie(e,t){let n,u,r,i,a;if(Ye(o=e)&&"form"===o.tagName.toLowerCase()){let a=e.getAttribute("action");u=a?J(a,t):null,n=e.getAttribute("method")||xe,r=Te(e.getAttribute("enctype"))||Oe,i=new FormData(e)}else if(function(e){return Ye(e)&&"button"===e.tagName.toLowerCase()}(e)||function(e){return Ye(e)&&"input"===e.tagName.toLowerCase()}(e)&&("submit"===e.type||"image"===e.type)){let a=e.form;if(null==a)throw new Error('Cannot submit a