diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..0a3e7f1 --- /dev/null +++ b/.gitignore @@ -0,0 +1,26 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* +lerna-debug.log* + +node_modules +dist +dist-ssr +quotes +quotes-ssr +*.local + +# Editor directories and files +.vscode/* +!.vscode/extensions.json +.idea +.DS_Store +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? \ No newline at end of file diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..65118d0 --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +# MIT License + +Copyright (c) 2025 Santhosh Veer + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/README.md b/README.md new file mode 100644 index 0000000..f45cd69 --- /dev/null +++ b/README.md @@ -0,0 +1,13 @@ +# Christmas Quotes 🎄 + +A static site for sharing Christmas greeting quotes. + +> Built using: Typescript, Bulma css and Vite + +## Credits + +Christmas Quotes content Taken from random AI Models + +## LICENSE + +MIT diff --git a/package.json b/package.json new file mode 100644 index 0000000..c193554 --- /dev/null +++ b/package.json @@ -0,0 +1,20 @@ +{ + "name": "christmas-quotes", + "version": "1.0.0", + "description": "A static site for sharing Christmas greeting quotes.", + "type": "module", + "main": "index.js", + "scripts": { + "dev": "vite", + "build": "vite build", + "preview": "vite preview" + }, + "keywords": ["Christmas", "quotes", "pagination", "Bulma", "TypeScript", "vite"], + "author": "Santhosh Veer", + "license": "MIT", + "devDependencies": { + "bulma": "^1.0.2", + "typescript": "^5.7.2", + "vite": "^6.0.3" + } +} \ No newline at end of file diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml new file mode 100644 index 0000000..64750c9 --- /dev/null +++ b/pnpm-lock.yaml @@ -0,0 +1,554 @@ +lockfileVersion: '9.0' + +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false + +importers: + + .: + devDependencies: + bulma: + specifier: ^1.0.2 + version: 1.0.2 + typescript: + specifier: ^5.7.2 + version: 5.7.2 + vite: + specifier: ^6.0.3 + version: 6.0.3 + +packages: + + '@esbuild/aix-ppc64@0.24.0': + resolution: {integrity: sha512-WtKdFM7ls47zkKHFVzMz8opM7LkcsIp9amDUBIAWirg70RM71WRSjdILPsY5Uv1D42ZpUfaPILDlfactHgsRkw==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [aix] + + '@esbuild/android-arm64@0.24.0': + resolution: {integrity: sha512-Vsm497xFM7tTIPYK9bNTYJyF/lsP590Qc1WxJdlB6ljCbdZKU9SY8i7+Iin4kyhV/KV5J2rOKsBQbB77Ab7L/w==} + engines: {node: '>=18'} + cpu: [arm64] + os: [android] + + '@esbuild/android-arm@0.24.0': + resolution: {integrity: sha512-arAtTPo76fJ/ICkXWetLCc9EwEHKaeya4vMrReVlEIUCAUncH7M4bhMQ+M9Vf+FFOZJdTNMXNBrWwW+OXWpSew==} + engines: {node: '>=18'} + cpu: [arm] + os: [android] + + '@esbuild/android-x64@0.24.0': + resolution: {integrity: sha512-t8GrvnFkiIY7pa7mMgJd7p8p8qqYIz1NYiAoKc75Zyv73L3DZW++oYMSHPRarcotTKuSs6m3hTOa5CKHaS02TQ==} + engines: {node: '>=18'} + cpu: [x64] + os: [android] + + '@esbuild/darwin-arm64@0.24.0': + resolution: {integrity: sha512-CKyDpRbK1hXwv79soeTJNHb5EiG6ct3efd/FTPdzOWdbZZfGhpbcqIpiD0+vwmpu0wTIL97ZRPZu8vUt46nBSw==} + engines: {node: '>=18'} + cpu: [arm64] + os: [darwin] + + '@esbuild/darwin-x64@0.24.0': + resolution: {integrity: sha512-rgtz6flkVkh58od4PwTRqxbKH9cOjaXCMZgWD905JOzjFKW+7EiUObfd/Kav+A6Gyud6WZk9w+xu6QLytdi2OA==} + engines: {node: '>=18'} + cpu: [x64] + os: [darwin] + + '@esbuild/freebsd-arm64@0.24.0': + resolution: {integrity: sha512-6Mtdq5nHggwfDNLAHkPlyLBpE5L6hwsuXZX8XNmHno9JuL2+bg2BX5tRkwjyfn6sKbxZTq68suOjgWqCicvPXA==} + engines: {node: '>=18'} + cpu: [arm64] + os: [freebsd] + + '@esbuild/freebsd-x64@0.24.0': + resolution: {integrity: sha512-D3H+xh3/zphoX8ck4S2RxKR6gHlHDXXzOf6f/9dbFt/NRBDIE33+cVa49Kil4WUjxMGW0ZIYBYtaGCa2+OsQwQ==} + engines: {node: '>=18'} + cpu: [x64] + os: [freebsd] + + '@esbuild/linux-arm64@0.24.0': + resolution: {integrity: sha512-TDijPXTOeE3eaMkRYpcy3LarIg13dS9wWHRdwYRnzlwlA370rNdZqbcp0WTyyV/k2zSxfko52+C7jU5F9Tfj1g==} + engines: {node: '>=18'} + cpu: [arm64] + os: [linux] + + '@esbuild/linux-arm@0.24.0': + resolution: {integrity: sha512-gJKIi2IjRo5G6Glxb8d3DzYXlxdEj2NlkixPsqePSZMhLudqPhtZ4BUrpIuTjJYXxvF9njql+vRjB2oaC9XpBw==} + engines: {node: '>=18'} + cpu: [arm] + os: [linux] + + '@esbuild/linux-ia32@0.24.0': + resolution: {integrity: sha512-K40ip1LAcA0byL05TbCQ4yJ4swvnbzHscRmUilrmP9Am7//0UjPreh4lpYzvThT2Quw66MhjG//20mrufm40mA==} + engines: {node: '>=18'} + cpu: [ia32] + os: [linux] + + '@esbuild/linux-loong64@0.24.0': + resolution: {integrity: sha512-0mswrYP/9ai+CU0BzBfPMZ8RVm3RGAN/lmOMgW4aFUSOQBjA31UP8Mr6DDhWSuMwj7jaWOT0p0WoZ6jeHhrD7g==} + engines: {node: '>=18'} + cpu: [loong64] + os: [linux] + + '@esbuild/linux-mips64el@0.24.0': + resolution: {integrity: sha512-hIKvXm0/3w/5+RDtCJeXqMZGkI2s4oMUGj3/jM0QzhgIASWrGO5/RlzAzm5nNh/awHE0A19h/CvHQe6FaBNrRA==} + engines: {node: '>=18'} + cpu: [mips64el] + os: [linux] + + '@esbuild/linux-ppc64@0.24.0': + resolution: {integrity: sha512-HcZh5BNq0aC52UoocJxaKORfFODWXZxtBaaZNuN3PUX3MoDsChsZqopzi5UupRhPHSEHotoiptqikjN/B77mYQ==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [linux] + + '@esbuild/linux-riscv64@0.24.0': + resolution: {integrity: sha512-bEh7dMn/h3QxeR2KTy1DUszQjUrIHPZKyO6aN1X4BCnhfYhuQqedHaa5MxSQA/06j3GpiIlFGSsy1c7Gf9padw==} + engines: {node: '>=18'} + cpu: [riscv64] + os: [linux] + + '@esbuild/linux-s390x@0.24.0': + resolution: {integrity: sha512-ZcQ6+qRkw1UcZGPyrCiHHkmBaj9SiCD8Oqd556HldP+QlpUIe2Wgn3ehQGVoPOvZvtHm8HPx+bH20c9pvbkX3g==} + engines: {node: '>=18'} + cpu: [s390x] + os: [linux] + + '@esbuild/linux-x64@0.24.0': + resolution: {integrity: sha512-vbutsFqQ+foy3wSSbmjBXXIJ6PL3scghJoM8zCL142cGaZKAdCZHyf+Bpu/MmX9zT9Q0zFBVKb36Ma5Fzfa8xA==} + engines: {node: '>=18'} + cpu: [x64] + os: [linux] + + '@esbuild/netbsd-x64@0.24.0': + resolution: {integrity: sha512-hjQ0R/ulkO8fCYFsG0FZoH+pWgTTDreqpqY7UnQntnaKv95uP5iW3+dChxnx7C3trQQU40S+OgWhUVwCjVFLvg==} + engines: {node: '>=18'} + cpu: [x64] + os: [netbsd] + + '@esbuild/openbsd-arm64@0.24.0': + resolution: {integrity: sha512-MD9uzzkPQbYehwcN583yx3Tu5M8EIoTD+tUgKF982WYL9Pf5rKy9ltgD0eUgs8pvKnmizxjXZyLt0z6DC3rRXg==} + engines: {node: '>=18'} + cpu: [arm64] + os: [openbsd] + + '@esbuild/openbsd-x64@0.24.0': + resolution: {integrity: sha512-4ir0aY1NGUhIC1hdoCzr1+5b43mw99uNwVzhIq1OY3QcEwPDO3B7WNXBzaKY5Nsf1+N11i1eOfFcq+D/gOS15Q==} + engines: {node: '>=18'} + cpu: [x64] + os: [openbsd] + + '@esbuild/sunos-x64@0.24.0': + resolution: {integrity: sha512-jVzdzsbM5xrotH+W5f1s+JtUy1UWgjU0Cf4wMvffTB8m6wP5/kx0KiaLHlbJO+dMgtxKV8RQ/JvtlFcdZ1zCPA==} + engines: {node: '>=18'} + cpu: [x64] + os: [sunos] + + '@esbuild/win32-arm64@0.24.0': + resolution: {integrity: sha512-iKc8GAslzRpBytO2/aN3d2yb2z8XTVfNV0PjGlCxKo5SgWmNXx82I/Q3aG1tFfS+A2igVCY97TJ8tnYwpUWLCA==} + engines: {node: '>=18'} + cpu: [arm64] + os: [win32] + + '@esbuild/win32-ia32@0.24.0': + resolution: {integrity: sha512-vQW36KZolfIudCcTnaTpmLQ24Ha1RjygBo39/aLkM2kmjkWmZGEJ5Gn9l5/7tzXA42QGIoWbICfg6KLLkIw6yw==} + engines: {node: '>=18'} + cpu: [ia32] + os: [win32] + + '@esbuild/win32-x64@0.24.0': + resolution: {integrity: sha512-7IAFPrjSQIJrGsK6flwg7NFmwBoSTyF3rl7If0hNUFQU4ilTsEPL6GuMuU9BfIWVVGuRnuIidkSMC+c0Otu8IA==} + engines: {node: '>=18'} + cpu: [x64] + os: [win32] + + '@rollup/rollup-android-arm-eabi@4.28.1': + resolution: {integrity: sha512-2aZp8AES04KI2dy3Ss6/MDjXbwBzj+i0GqKtWXgw2/Ma6E4jJvujryO6gJAghIRVz7Vwr9Gtl/8na3nDUKpraQ==} + cpu: [arm] + os: [android] + + '@rollup/rollup-android-arm64@4.28.1': + resolution: {integrity: sha512-EbkK285O+1YMrg57xVA+Dp0tDBRB93/BZKph9XhMjezf6F4TpYjaUSuPt5J0fZXlSag0LmZAsTmdGGqPp4pQFA==} + cpu: [arm64] + os: [android] + + '@rollup/rollup-darwin-arm64@4.28.1': + resolution: {integrity: sha512-prduvrMKU6NzMq6nxzQw445zXgaDBbMQvmKSJaxpaZ5R1QDM8w+eGxo6Y/jhT/cLoCvnZI42oEqf9KQNYz1fqQ==} + cpu: [arm64] + os: [darwin] + + '@rollup/rollup-darwin-x64@4.28.1': + resolution: {integrity: sha512-WsvbOunsUk0wccO/TV4o7IKgloJ942hVFK1CLatwv6TJspcCZb9umQkPdvB7FihmdxgaKR5JyxDjWpCOp4uZlQ==} + cpu: [x64] + os: [darwin] + + '@rollup/rollup-freebsd-arm64@4.28.1': + resolution: {integrity: sha512-HTDPdY1caUcU4qK23FeeGxCdJF64cKkqajU0iBnTVxS8F7H/7BewvYoG+va1KPSL63kQ1PGNyiwKOfReavzvNA==} + cpu: [arm64] + os: [freebsd] + + '@rollup/rollup-freebsd-x64@4.28.1': + resolution: {integrity: sha512-m/uYasxkUevcFTeRSM9TeLyPe2QDuqtjkeoTpP9SW0XxUWfcYrGDMkO/m2tTw+4NMAF9P2fU3Mw4ahNvo7QmsQ==} + cpu: [x64] + os: [freebsd] + + '@rollup/rollup-linux-arm-gnueabihf@4.28.1': + resolution: {integrity: sha512-QAg11ZIt6mcmzpNE6JZBpKfJaKkqTm1A9+y9O+frdZJEuhQxiugM05gnCWiANHj4RmbgeVJpTdmKRmH/a+0QbA==} + cpu: [arm] + os: [linux] + + '@rollup/rollup-linux-arm-musleabihf@4.28.1': + resolution: {integrity: sha512-dRP9PEBfolq1dmMcFqbEPSd9VlRuVWEGSmbxVEfiq2cs2jlZAl0YNxFzAQS2OrQmsLBLAATDMb3Z6MFv5vOcXg==} + cpu: [arm] + os: [linux] + + '@rollup/rollup-linux-arm64-gnu@4.28.1': + resolution: {integrity: sha512-uGr8khxO+CKT4XU8ZUH1TTEUtlktK6Kgtv0+6bIFSeiSlnGJHG1tSFSjm41uQ9sAO/5ULx9mWOz70jYLyv1QkA==} + cpu: [arm64] + os: [linux] + + '@rollup/rollup-linux-arm64-musl@4.28.1': + resolution: {integrity: sha512-QF54q8MYGAqMLrX2t7tNpi01nvq5RI59UBNx+3+37zoKX5KViPo/gk2QLhsuqok05sSCRluj0D00LzCwBikb0A==} + cpu: [arm64] + os: [linux] + + '@rollup/rollup-linux-loongarch64-gnu@4.28.1': + resolution: {integrity: sha512-vPul4uodvWvLhRco2w0GcyZcdyBfpfDRgNKU+p35AWEbJ/HPs1tOUrkSueVbBS0RQHAf/A+nNtDpvw95PeVKOA==} + cpu: [loong64] + os: [linux] + + '@rollup/rollup-linux-powerpc64le-gnu@4.28.1': + resolution: {integrity: sha512-pTnTdBuC2+pt1Rmm2SV7JWRqzhYpEILML4PKODqLz+C7Ou2apEV52h19CR7es+u04KlqplggmN9sqZlekg3R1A==} + cpu: [ppc64] + os: [linux] + + '@rollup/rollup-linux-riscv64-gnu@4.28.1': + resolution: {integrity: sha512-vWXy1Nfg7TPBSuAncfInmAI/WZDd5vOklyLJDdIRKABcZWojNDY0NJwruY2AcnCLnRJKSaBgf/GiJfauu8cQZA==} + cpu: [riscv64] + os: [linux] + + '@rollup/rollup-linux-s390x-gnu@4.28.1': + resolution: {integrity: sha512-/yqC2Y53oZjb0yz8PVuGOQQNOTwxcizudunl/tFs1aLvObTclTwZ0JhXF2XcPT/zuaymemCDSuuUPXJJyqeDOg==} + cpu: [s390x] + os: [linux] + + '@rollup/rollup-linux-x64-gnu@4.28.1': + resolution: {integrity: sha512-fzgeABz7rrAlKYB0y2kSEiURrI0691CSL0+KXwKwhxvj92VULEDQLpBYLHpF49MSiPG4sq5CK3qHMnb9tlCjBw==} + cpu: [x64] + os: [linux] + + '@rollup/rollup-linux-x64-musl@4.28.1': + resolution: {integrity: sha512-xQTDVzSGiMlSshpJCtudbWyRfLaNiVPXt1WgdWTwWz9n0U12cI2ZVtWe/Jgwyv/6wjL7b66uu61Vg0POWVfz4g==} + cpu: [x64] + os: [linux] + + '@rollup/rollup-win32-arm64-msvc@4.28.1': + resolution: {integrity: sha512-wSXmDRVupJstFP7elGMgv+2HqXelQhuNf+IS4V+nUpNVi/GUiBgDmfwD0UGN3pcAnWsgKG3I52wMOBnk1VHr/A==} + cpu: [arm64] + os: [win32] + + '@rollup/rollup-win32-ia32-msvc@4.28.1': + resolution: {integrity: sha512-ZkyTJ/9vkgrE/Rk9vhMXhf8l9D+eAhbAVbsGsXKy2ohmJaWg0LPQLnIxRdRp/bKyr8tXuPlXhIoGlEB5XpJnGA==} + cpu: [ia32] + os: [win32] + + '@rollup/rollup-win32-x64-msvc@4.28.1': + resolution: {integrity: sha512-ZvK2jBafvttJjoIdKm/Q/Bh7IJ1Ose9IBOwpOXcOvW3ikGTQGmKDgxTC6oCAzW6PynbkKP8+um1du81XJHZ0JA==} + cpu: [x64] + os: [win32] + + '@types/estree@1.0.6': + resolution: {integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==} + + bulma@1.0.2: + resolution: {integrity: sha512-D7GnDuF6seb6HkcnRMM9E739QpEY9chDzzeFrHMyEns/EXyDJuQ0XA0KxbBl/B2NTsKSoDomW61jFGFaAxhK5A==} + + esbuild@0.24.0: + resolution: {integrity: sha512-FuLPevChGDshgSicjisSooU0cemp/sGXR841D5LHMB7mTVOmsEHcAxaH3irL53+8YDIeVNQEySh4DaYU/iuPqQ==} + engines: {node: '>=18'} + hasBin: true + + fsevents@2.3.3: + resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] + + nanoid@3.3.8: + resolution: {integrity: sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true + + picocolors@1.1.1: + resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} + + postcss@8.4.49: + resolution: {integrity: sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA==} + engines: {node: ^10 || ^12 || >=14} + + rollup@4.28.1: + resolution: {integrity: sha512-61fXYl/qNVinKmGSTHAZ6Yy8I3YIJC/r2m9feHo6SwVAVcLT5MPwOUFe7EuURA/4m0NR8lXG4BBXuo/IZEsjMg==} + engines: {node: '>=18.0.0', npm: '>=8.0.0'} + hasBin: true + + source-map-js@1.2.1: + resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} + engines: {node: '>=0.10.0'} + + typescript@5.7.2: + resolution: {integrity: sha512-i5t66RHxDvVN40HfDd1PsEThGNnlMCMT3jMUuoh9/0TaqWevNontacunWyN02LA9/fIbEWlcHZcgTKb9QoaLfg==} + engines: {node: '>=14.17'} + hasBin: true + + vite@6.0.3: + resolution: {integrity: sha512-Cmuo5P0ENTN6HxLSo6IHsjCLn/81Vgrp81oaiFFMRa8gGDj5xEjIcEpf2ZymZtZR8oU0P2JX5WuUp/rlXcHkAw==} + engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} + hasBin: true + peerDependencies: + '@types/node': ^18.0.0 || ^20.0.0 || >=22.0.0 + jiti: '>=1.21.0' + less: '*' + lightningcss: ^1.21.0 + sass: '*' + sass-embedded: '*' + stylus: '*' + sugarss: '*' + terser: ^5.16.0 + tsx: ^4.8.1 + yaml: ^2.4.2 + peerDependenciesMeta: + '@types/node': + optional: true + jiti: + optional: true + less: + optional: true + lightningcss: + optional: true + sass: + optional: true + sass-embedded: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + tsx: + optional: true + yaml: + optional: true + +snapshots: + + '@esbuild/aix-ppc64@0.24.0': + optional: true + + '@esbuild/android-arm64@0.24.0': + optional: true + + '@esbuild/android-arm@0.24.0': + optional: true + + '@esbuild/android-x64@0.24.0': + optional: true + + '@esbuild/darwin-arm64@0.24.0': + optional: true + + '@esbuild/darwin-x64@0.24.0': + optional: true + + '@esbuild/freebsd-arm64@0.24.0': + optional: true + + '@esbuild/freebsd-x64@0.24.0': + optional: true + + '@esbuild/linux-arm64@0.24.0': + optional: true + + '@esbuild/linux-arm@0.24.0': + optional: true + + '@esbuild/linux-ia32@0.24.0': + optional: true + + '@esbuild/linux-loong64@0.24.0': + optional: true + + '@esbuild/linux-mips64el@0.24.0': + optional: true + + '@esbuild/linux-ppc64@0.24.0': + optional: true + + '@esbuild/linux-riscv64@0.24.0': + optional: true + + '@esbuild/linux-s390x@0.24.0': + optional: true + + '@esbuild/linux-x64@0.24.0': + optional: true + + '@esbuild/netbsd-x64@0.24.0': + optional: true + + '@esbuild/openbsd-arm64@0.24.0': + optional: true + + '@esbuild/openbsd-x64@0.24.0': + optional: true + + '@esbuild/sunos-x64@0.24.0': + optional: true + + '@esbuild/win32-arm64@0.24.0': + optional: true + + '@esbuild/win32-ia32@0.24.0': + optional: true + + '@esbuild/win32-x64@0.24.0': + optional: true + + '@rollup/rollup-android-arm-eabi@4.28.1': + optional: true + + '@rollup/rollup-android-arm64@4.28.1': + optional: true + + '@rollup/rollup-darwin-arm64@4.28.1': + optional: true + + '@rollup/rollup-darwin-x64@4.28.1': + optional: true + + '@rollup/rollup-freebsd-arm64@4.28.1': + optional: true + + '@rollup/rollup-freebsd-x64@4.28.1': + optional: true + + '@rollup/rollup-linux-arm-gnueabihf@4.28.1': + optional: true + + '@rollup/rollup-linux-arm-musleabihf@4.28.1': + optional: true + + '@rollup/rollup-linux-arm64-gnu@4.28.1': + optional: true + + '@rollup/rollup-linux-arm64-musl@4.28.1': + optional: true + + '@rollup/rollup-linux-loongarch64-gnu@4.28.1': + optional: true + + '@rollup/rollup-linux-powerpc64le-gnu@4.28.1': + optional: true + + '@rollup/rollup-linux-riscv64-gnu@4.28.1': + optional: true + + '@rollup/rollup-linux-s390x-gnu@4.28.1': + optional: true + + '@rollup/rollup-linux-x64-gnu@4.28.1': + optional: true + + '@rollup/rollup-linux-x64-musl@4.28.1': + optional: true + + '@rollup/rollup-win32-arm64-msvc@4.28.1': + optional: true + + '@rollup/rollup-win32-ia32-msvc@4.28.1': + optional: true + + '@rollup/rollup-win32-x64-msvc@4.28.1': + optional: true + + '@types/estree@1.0.6': {} + + bulma@1.0.2: {} + + esbuild@0.24.0: + optionalDependencies: + '@esbuild/aix-ppc64': 0.24.0 + '@esbuild/android-arm': 0.24.0 + '@esbuild/android-arm64': 0.24.0 + '@esbuild/android-x64': 0.24.0 + '@esbuild/darwin-arm64': 0.24.0 + '@esbuild/darwin-x64': 0.24.0 + '@esbuild/freebsd-arm64': 0.24.0 + '@esbuild/freebsd-x64': 0.24.0 + '@esbuild/linux-arm': 0.24.0 + '@esbuild/linux-arm64': 0.24.0 + '@esbuild/linux-ia32': 0.24.0 + '@esbuild/linux-loong64': 0.24.0 + '@esbuild/linux-mips64el': 0.24.0 + '@esbuild/linux-ppc64': 0.24.0 + '@esbuild/linux-riscv64': 0.24.0 + '@esbuild/linux-s390x': 0.24.0 + '@esbuild/linux-x64': 0.24.0 + '@esbuild/netbsd-x64': 0.24.0 + '@esbuild/openbsd-arm64': 0.24.0 + '@esbuild/openbsd-x64': 0.24.0 + '@esbuild/sunos-x64': 0.24.0 + '@esbuild/win32-arm64': 0.24.0 + '@esbuild/win32-ia32': 0.24.0 + '@esbuild/win32-x64': 0.24.0 + + fsevents@2.3.3: + optional: true + + nanoid@3.3.8: {} + + picocolors@1.1.1: {} + + postcss@8.4.49: + dependencies: + nanoid: 3.3.8 + picocolors: 1.1.1 + source-map-js: 1.2.1 + + rollup@4.28.1: + dependencies: + '@types/estree': 1.0.6 + optionalDependencies: + '@rollup/rollup-android-arm-eabi': 4.28.1 + '@rollup/rollup-android-arm64': 4.28.1 + '@rollup/rollup-darwin-arm64': 4.28.1 + '@rollup/rollup-darwin-x64': 4.28.1 + '@rollup/rollup-freebsd-arm64': 4.28.1 + '@rollup/rollup-freebsd-x64': 4.28.1 + '@rollup/rollup-linux-arm-gnueabihf': 4.28.1 + '@rollup/rollup-linux-arm-musleabihf': 4.28.1 + '@rollup/rollup-linux-arm64-gnu': 4.28.1 + '@rollup/rollup-linux-arm64-musl': 4.28.1 + '@rollup/rollup-linux-loongarch64-gnu': 4.28.1 + '@rollup/rollup-linux-powerpc64le-gnu': 4.28.1 + '@rollup/rollup-linux-riscv64-gnu': 4.28.1 + '@rollup/rollup-linux-s390x-gnu': 4.28.1 + '@rollup/rollup-linux-x64-gnu': 4.28.1 + '@rollup/rollup-linux-x64-musl': 4.28.1 + '@rollup/rollup-win32-arm64-msvc': 4.28.1 + '@rollup/rollup-win32-ia32-msvc': 4.28.1 + '@rollup/rollup-win32-x64-msvc': 4.28.1 + fsevents: 2.3.3 + + source-map-js@1.2.1: {} + + typescript@5.7.2: {} + + vite@6.0.3: + dependencies: + esbuild: 0.24.0 + postcss: 8.4.49 + rollup: 4.28.1 + optionalDependencies: + fsevents: 2.3.3 diff --git a/src/app.ts b/src/app.ts new file mode 100644 index 0000000..3c36cec --- /dev/null +++ b/src/app.ts @@ -0,0 +1,134 @@ +import quotes from '.././src/data/quotes.json'; + +interface Quote { + id: number; + quote: string; +} + +let currentPage = 1; +const quotesPerPage = 6; + +function copyToClipboard(text: string, button: HTMLButtonElement) { + navigator.clipboard.writeText(text).then(() => { + button.innerHTML = ``; + setTimeout(() => (button.innerHTML = ``), 1500); + }).catch((err) => { + console.error("Error copying text: ", err); + }); +} + +function renderQuotes(page: number) { + const container = document.getElementById('quotes-container'); + const prevBtn = document.getElementById('prev-btn') as HTMLButtonElement; + const nextBtn = document.getElementById('next-btn') as HTMLButtonElement; + + if (!container) return; + + container.innerHTML = ''; + const startIndex = (page - 1) * quotesPerPage; + const endIndex = startIndex + quotesPerPage; + + const quotesToRender = quotes.slice(startIndex, endIndex); + quotesToRender.forEach((quote: Quote) => { + const card = document.createElement('div'); + card.className = 'column is-half'; + + card.innerHTML = ` +
${quote.quote}
+ +Failed to load quotes
`; + } +} + +document.getElementById('dark-mode-toggle')?.addEventListener('change', toggleDarkMode); diff --git a/src/data/quotes.json b/src/data/quotes.json new file mode 100644 index 0000000..9ddace8 --- /dev/null +++ b/src/data/quotes.json @@ -0,0 +1,102 @@ +[ + { "id": 1, "quote": "Christmas waves a magic wand over this world, and behold, everything is softer and more beautiful." }, + { "id": 2, "quote": "The best way to spread Christmas cheer is singing loud for all to hear." }, + { "id": 3, "quote": "Christmas is not as much about opening our presents as opening our hearts." }, + { "id": 4, "quote": "The true spirit of Christmas lies in your heart." }, + { "id": 5, "quote": "Christmas is a time to give, a time to forgive, a time to love." }, + { "id": 6, "quote": "Christmas is a season not only of rejoicing but of reflection." }, + { "id": 7, "quote": "It’s the most wonderful time of the year!" }, + { "id": 8, "quote": "Christmas is a day of meaning and traditions, a special day spent in the warm circle of family and friends." }, + { "id": 9, "quote": "May your heart be light and your Christmas merry." }, + { "id": 10, "quote": "Gifts of time and love are surely the basic ingredients of a truly merry Christmas." }, + { "id": 11, "quote": "Let’s celebrate the birth of Jesus with love, joy, and peace." }, + { "id": 12, "quote": "Christmas is a season to celebrate the spirit of love and goodwill." }, + { "id": 13, "quote": "At Christmas, all roads lead home." }, + { "id": 14, "quote": "The joy of brightening other lives, bearing each other’s burdens, easing each other’s loads, and supplanting empty hearts and lives with generous gifts becomes for us the magic of Christmas." }, + { "id": 15, "quote": "Blessed is the season which engages the whole world in a conspiracy of love." }, + { "id": 16, "quote": "May the spirit of Christmas fill your home with peace, joy, and love." }, + { "id": 17, "quote": "Christmas isn’t just a day, it’s a frame of mind." }, + { "id": 18, "quote": "The magic of Christmas never ends, and its greatest of all gifts is family and friends." }, + { "id": 19, "quote": "Christmas is a time to be with family, celebrate love, and share memories." }, + { "id": 20, "quote": "May your Christmas sparkle with moments of love, laughter, and goodwill." }, + { "id": 21, "quote": "The Christmas spirit is a season of giving and sharing with all around us." }, + { "id": 22, "quote": "The best Christmas gift is the presence of a happy family all wrapped up with love." }, + { "id": 23, "quote": "To us, Christmas is about a celebration of the birth of Jesus and the giving of love." }, + { "id": 24, "quote": "The Christmas season is a time to reflect on the blessings of the past and give thanks for the hope of the future." }, + { "id": 25, "quote": "Let us keep Christmas in our hearts every day of the year." }, + { "id": 26, "quote": "May the miracle of Christmas fill your heart with warmth and love." }, + { "id": 27, "quote": "Christmas is a season to be thankful for all the blessings we have received." }, + { "id": 28, "quote": "Every time we love, every time we give, it’s Christmas." }, + { "id": 29, "quote": "Christmas is the day that holds all time together." }, + { "id": 30, "quote": "Good friends, good food, good cheer—that’s what Christmas is all about." }, + { "id": 31, "quote": "May the peace and joy of Christmas be with you today and throughout the year." }, + { "id": 32, "quote": "Christmas is the time to celebrate the birth of our Savior and the blessings of life." }, + { "id": 33, "quote": "Christmas is the season of joy, of holiday greetings exchanged, of gift-giving, and of families united." }, + { "id": 34, "quote": "Let the spirit of Christmas bring peace and joy to all the world." }, + { "id": 35, "quote": "May you never be too grown up to search the skies on Christmas Eve." }, + { "id": 36, "quote": "Christmas is the gift of love, the gift of peace, the gift of happiness." }, + { "id": 37, "quote": "At Christmas, we celebrate the love and light that brings us together." }, + { "id": 38, "quote": "Love the giver more than the gift." }, + { "id": 39, "quote": "Christmas is a season to rekindle the magic and joy of the holidays." }, + { "id": 40, "quote": "May the spirit of Christmas bring you love, joy, and happiness." }, + { "id": 41, "quote": "Christmas is the time to create memories, to share laughter, and to be surrounded by those we love." }, + { "id": 42, "quote": "Christmas is a day to celebrate the love and kindness that fill our hearts." }, + { "id": 43, "quote": "May the joys of Christmas bring light and happiness into your life." }, + { "id": 44, "quote": "The Christmas season is filled with memories, traditions, and the love we share with others." }, + { "id": 45, "quote": "Christmas is a time to create new memories and cherish old ones." }, + { "id": 46, "quote": "At Christmas, we are reminded of the magic and beauty of life." }, + { "id": 47, "quote": "May your Christmas be merry and bright with the warmth of family and friends." }, + { "id": 48, "quote": "The joy of Christmas comes from the love we share with those around us." }, + { "id": 49, "quote": "Christmas is a time to celebrate the things that matter most: love, kindness, and togetherness." }, + { "id": 50, "quote": "May the spirit of Christmas bring hope and joy into your heart and home." }, + { "id": 51, "quote": "Christmas is not just a season, it's a feeling of love and joy that lasts throughout the year." }, + { "id": 52, "quote": "The best way to spread Christmas cheer is by giving and sharing with others." }, + { "id": 53, "quote": "Christmas gives us the opportunity to pause and reflect on what truly matters." }, + { "id": 54, "quote": "The magic of Christmas is found in the moments of kindness and joy we share." }, + { "id": 55, "quote": "Christmas is a time to be with the ones we love and make memories that will last forever." }, + { "id": 56, "quote": "Every Christmas brings us a new reason to be grateful and to celebrate life." }, + { "id": 57, "quote": "Let your heart be filled with the joy and warmth of the Christmas season." }, + { "id": 58, "quote": "Christmas is the perfect time to reflect on our blessings and share them with others." }, + { "id": 59, "quote": "May your days be merry and bright, filled with peace, love, and happiness." }, + { "id": 60, "quote": "Christmas is a celebration of love, togetherness, and the spirit of giving." }, + { "id": 61, "quote": "May the beauty of the Christmas season fill your heart with happiness and hope." }, + { "id": 62, "quote": "The greatest gift at Christmas is the love and kindness we show to one another." }, + { "id": 63, "quote": "Christmas is a time for family, for memories, and for embracing the joy of the season." }, + { "id": 64, "quote": "In the end, it’s not the presents, but the presence of loved ones that makes Christmas magical." }, + { "id": 65, "quote": "May the peace and serenity of Christmas stay with you throughout the year." }, + { "id": 66, "quote": "Christmas is a time for making memories, not just for giving gifts." }, + { "id": 67, "quote": "May the Christmas season bring you closer to those you love and to the joy of the world around you." }, + { "id": 68, "quote": "Christmas is a time for self-reflection, gratitude, and spreading kindness." }, + { "id": 69, "quote": "Let the warmth of Christmas fill your heart and brighten your days." }, + { "id": 70, "quote": "Christmas is about making memories that will last long after the holiday season is over." }, + { "id": 71, "quote": "The true gift of Christmas is the love we give and receive from those we hold dear." }, + { "id": 72, "quote": "Christmas is a season of hope, of renewal, and of celebrating all that is good in the world." }, + { "id": 73, "quote": "May your Christmas be wrapped in warmth, love, and peace." }, + { "id": 74, "quote": "The joy of Christmas is in the little things—the laughter, the togetherness, and the moments of peace." }, + { "id": 75, "quote": "This Christmas, may your heart be filled with the love and joy of the season." }, + { "id": 76, "quote": "Christmas is a time to count our blessings and share them with those in need." }, + { "id": 77, "quote": "The Christmas season teaches us that love and kindness are the true gifts of the holiday." }, + { "id": 78, "quote": "Christmas is a time to come together, to celebrate, and to spread joy to the world." }, + { "id": 79, "quote": "Let the spirit of Christmas inspire you to be kinder, more patient, and more loving." }, + { "id": 80, "quote": "The magic of Christmas is in the love we share and the memories we create." }, + { "id": 81, "quote": "Christmas is a time to reflect on all the love and joy that fills our lives." }, + { "id": 82, "quote": "Christmas is the season for celebrating family, friendship, and all the things that bring us joy." }, + { "id": 83, "quote": "May your Christmas be filled with peace, love, and beautiful moments that you’ll cherish forever." }, + { "id": 84, "quote": "Christmas is the time to appreciate the people we love and let them know how much they mean to us." }, + { "id": 85, "quote": "The Christmas season is a reminder of the goodness of life and the beauty in simple moments." }, + { "id": 86, "quote": "Christmas is about giving, not just in material things, but in kindness, love, and attention." }, + { "id": 87, "quote": "The warmth of Christmas is found in the hearts of those we love and care about." }, + { "id": 88, "quote": "This Christmas, may you be surrounded by the love of family, the joy of friends, and the peace of the season." }, + { "id": 89, "quote": "Christmas is about making the world a better place by sharing joy, love, and compassion." }, + { "id": 90, "quote": "Let the spirit of Christmas fill your soul with joy, peace, and love." }, + { "id": 91, "quote": "The Christmas season is a time to forgive, to embrace, and to cherish what truly matters." }, + { "id": 92, "quote": "Christmas is a time to reflect on the past, enjoy the present, and look forward to the future." }, + { "id": 93, "quote": "May the joy and warmth of Christmas fill your heart with lasting happiness." }, + { "id": 94, "quote": "Christmas is a time to unite with loved ones, to celebrate, and to make memories that last forever." }, + { "id": 95, "quote": "The joy of Christmas is in the giving, not just the receiving." }, + { "id": 96, "quote": "Christmas is a time to count our blessings, give thanks, and make the world a better place." }, + { "id": 97, "quote": "May the Christmas season bring you closer to your loved ones and fill your heart with warmth." }, + { "id": 98, "quote": "Christmas is a reminder of the love and joy that surrounds us every day." }, + { "id": 99, "quote": "May the spirit of Christmas bring you peace, joy, and contentment." }, + { "id": 100, "quote": "Christmas is the time for sharing, caring, and creating beautiful moments together." } +] \ No newline at end of file diff --git a/src/index.html b/src/index.html new file mode 100644 index 0000000..1175d95 --- /dev/null +++ b/src/index.html @@ -0,0 +1,38 @@ + + + + + + + + +