From 5e17b47b92e16d21e9e01933d23e1a0726140efb Mon Sep 17 00:00:00 2001 From: Frank Elsinga Date: Tue, 14 Nov 2023 23:17:50 +0100 Subject: [PATCH 01/12] intial migration push --- webclient/package.json | 3 + webclient/pnpm-lock.yaml | 291 +++++++++++++++++++++++++ webclient/postcss.config.js | 6 + webclient/src/assets/main.scss | 3 + webclient/src/components/AppFooter.vue | 4 +- webclient/tailwind.config.js | 8 + 6 files changed, 313 insertions(+), 2 deletions(-) create mode 100644 webclient/postcss.config.js create mode 100644 webclient/tailwind.config.js diff --git a/webclient/package.json b/webclient/package.json index d5c48e60e..5ac3874e0 100644 --- a/webclient/package.json +++ b/webclient/package.json @@ -33,14 +33,17 @@ "@vue/eslint-config-typescript": "12.0.0", "@vue/tsconfig": "0.4.0", "@yankeeinlondon/link-builder": "1.2.1", + "autoprefixer": "^10.4.16", "cypress": "13.5.0", "eslint": "8.53.0", "eslint-plugin-vue": "9.18.1", "isomorphic-fetch": "3.0.0", "npm-run-all": "4.1.5", + "postcss": "^8.4.31", "prettier": "3.1.0", "sass": "1.69.5", "stylelint-scss": "5.3.1", + "tailwindcss": "^3.3.5", "typescript": "5.2.2", "vite": "4.5.0", "vite-plugin-md": "0.21.5", diff --git a/webclient/pnpm-lock.yaml b/webclient/pnpm-lock.yaml index f88eaa31d..e7d9fd6e0 100644 --- a/webclient/pnpm-lock.yaml +++ b/webclient/pnpm-lock.yaml @@ -55,6 +55,9 @@ devDependencies: '@yankeeinlondon/link-builder': specifier: 1.2.1 version: 1.2.1(@vitejs/plugin-vue@4.4.1)(sass@1.69.5)(vite@4.5.0) + autoprefixer: + specifier: ^10.4.16 + version: 10.4.16(postcss@8.4.31) cypress: specifier: 13.5.0 version: 13.5.0 @@ -70,6 +73,9 @@ devDependencies: npm-run-all: specifier: 4.1.5 version: 4.1.5 + postcss: + specifier: ^8.4.31 + version: 8.4.31 prettier: specifier: 3.1.0 version: 3.1.0 @@ -79,6 +85,9 @@ devDependencies: stylelint-scss: specifier: 5.3.1 version: 5.3.1(stylelint@15.11.0) + tailwindcss: + specifier: ^3.3.5 + version: 3.3.5 typescript: specifier: 5.2.2 version: 5.2.2 @@ -105,6 +114,11 @@ packages: engines: {node: '>=0.10.0'} dev: true + /@alloc/quick-lru@5.2.0: + resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==} + engines: {node: '>=10'} + dev: true + /@babel/code-frame@7.22.13: resolution: {integrity: sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==} engines: {node: '>=6.9.0'} @@ -566,9 +580,35 @@ packages: - supports-color dev: true + /@jridgewell/gen-mapping@0.3.3: + resolution: {integrity: sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==} + engines: {node: '>=6.0.0'} + dependencies: + '@jridgewell/set-array': 1.1.2 + '@jridgewell/sourcemap-codec': 1.4.15 + '@jridgewell/trace-mapping': 0.3.20 + dev: true + + /@jridgewell/resolve-uri@3.1.1: + resolution: {integrity: sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==} + engines: {node: '>=6.0.0'} + dev: true + + /@jridgewell/set-array@1.1.2: + resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==} + engines: {node: '>=6.0.0'} + dev: true + /@jridgewell/sourcemap-codec@1.4.15: resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} + /@jridgewell/trace-mapping@0.3.20: + resolution: {integrity: sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q==} + dependencies: + '@jridgewell/resolve-uri': 3.1.1 + '@jridgewell/sourcemap-codec': 1.4.15 + dev: true + /@jsdevtools/ez-spawn@3.0.4: resolution: {integrity: sha512-f5DRIOZf7wxogefH03RjMPMdBF7ADTWUMoOs9kaJo06EfwF+aFhMZMDZxHg/Xe12hptN9xoZjGso2fdjapBRIA==} engines: {node: '>=10'} @@ -1333,6 +1373,10 @@ packages: color-convert: 2.0.1 dev: true + /any-promise@1.3.0: + resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} + dev: true + /anymatch@3.1.3: resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} engines: {node: '>= 8'} @@ -1345,6 +1389,10 @@ packages: resolution: {integrity: sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ==} dev: true + /arg@5.0.2: + resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==} + dev: true + /argparse@2.0.1: resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} dev: true @@ -1422,6 +1470,22 @@ packages: engines: {node: '>= 4.0.0'} dev: true + /autoprefixer@10.4.16(postcss@8.4.31): + resolution: {integrity: sha512-7vd3UC6xKp0HLfua5IjZlcXvGAGy7cBAXTg2lyQ/8WpNhd6SiZ8Be+xm3FyBSYJx5GKcpRCzBh7RH4/0dnY+uQ==} + engines: {node: ^10 || ^12 || >=14} + hasBin: true + peerDependencies: + postcss: ^8.1.0 + dependencies: + browserslist: 4.22.1 + caniuse-lite: 1.0.30001562 + fraction.js: 4.3.7 + normalize-range: 0.1.2 + picocolors: 1.0.0 + postcss: 8.4.31 + postcss-value-parser: 4.2.0 + dev: true + /available-typed-arrays@1.0.5: resolution: {integrity: sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==} engines: {node: '>= 0.4'} @@ -1548,6 +1612,17 @@ packages: - terser dev: true + /browserslist@4.22.1: + resolution: {integrity: sha512-FEVc202+2iuClEhZhrWy6ZiAcRLvNMyYcxZ8raemul1DYVOVdFsbqckWLdsixQZCpJlwe77Z3UTalE7jsjnKfQ==} + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + hasBin: true + dependencies: + caniuse-lite: 1.0.30001562 + electron-to-chromium: 1.4.583 + node-releases: 2.0.13 + update-browserslist-db: 1.0.13(browserslist@4.22.1) + dev: true + /buffer-crc32@0.2.13: resolution: {integrity: sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==} dev: true @@ -1624,6 +1699,11 @@ packages: engines: {node: '>=12.20'} dev: true + /camelcase-css@2.0.1: + resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==} + engines: {node: '>= 6'} + dev: true + /camelcase-keys@7.0.2: resolution: {integrity: sha512-Rjs1H+A9R+Ig+4E/9oyB66UC5Mj9Xq3N//vcLf2WzgdTi/3gUu3Z9KoqmlrEG4VuuLK8wJHofxzdQXz/knhiYg==} engines: {node: '>=12'} @@ -1639,6 +1719,10 @@ packages: engines: {node: '>=10'} dev: true + /caniuse-lite@1.0.30001562: + resolution: {integrity: sha512-kfte3Hym//51EdX4239i+Rmp20EsLIYGdPkERegTgU19hQWCRhsRFGKHTliUlsry53tv17K7n077Kqa0WJU4ng==} + dev: true + /caseless@0.12.0: resolution: {integrity: sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==} dev: true @@ -1769,6 +1853,11 @@ packages: delayed-stream: 1.0.0 dev: true + /commander@4.1.1: + resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} + engines: {node: '>= 6'} + dev: true + /commander@6.2.1: resolution: {integrity: sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==} engines: {node: '>= 6'} @@ -2024,6 +2113,10 @@ packages: engines: {node: '>=0.4.0'} dev: true + /didyoumean@1.2.2: + resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==} + dev: true + /dir-glob@3.0.1: resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} engines: {node: '>=8'} @@ -2031,6 +2124,10 @@ packages: path-type: 4.0.0 dev: true + /dlv@1.1.3: + resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==} + dev: true + /doctrine@3.0.0: resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} engines: {node: '>=6.0.0'} @@ -2049,6 +2146,10 @@ packages: safer-buffer: 2.1.2 dev: true + /electron-to-chromium@1.4.583: + resolution: {integrity: sha512-93y1gcONABZ7uqYe/JWDVQP/Pj/sQSunF0HVAPdlg/pfBnOyBMLlQUxWvkqcljJg1+W6cjvPuYD+r1Th9Tn8mA==} + dev: true + /emoji-regex@8.0.0: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} dev: true @@ -2171,6 +2272,11 @@ packages: '@esbuild/win32-x64': 0.18.20 dev: true + /escalade@3.1.1: + resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} + engines: {node: '>=6'} + dev: true + /escape-string-regexp@1.0.5: resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} engines: {node: '>=0.8.0'} @@ -2552,6 +2658,10 @@ packages: resolution: {integrity: sha512-by7U5W8dkIzcvDofUcO42yl9JbnHTEDBrzu3pt5fKT+Z4Oy85I21K80EYJYdjQGC2qum4Vo55Ag57iiIK4FYuA==} dev: true + /fraction.js@4.3.7: + resolution: {integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==} + dev: true + /fs-extra@9.1.0: resolution: {integrity: sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==} engines: {node: '>=10'} @@ -2663,6 +2773,17 @@ packages: is-glob: 4.0.3 dev: true + /glob@7.1.6: + resolution: {integrity: sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==} + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 3.1.2 + once: 1.4.0 + path-is-absolute: 1.0.1 + dev: true + /glob@7.2.3: resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} dependencies: @@ -3206,6 +3327,11 @@ packages: resolution: {integrity: sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==} dev: true + /jiti@1.21.0: + resolution: {integrity: sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==} + hasBin: true + dev: true + /js-tokens@4.0.0: resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} dev: true @@ -3336,6 +3462,11 @@ packages: type-check: 0.4.0 dev: true + /lilconfig@2.1.0: + resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==} + engines: {node: '>=10'} + dev: true + /lines-and-columns@1.2.4: resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} dev: true @@ -3622,6 +3753,14 @@ packages: resolution: {integrity: sha512-TvmkNhkv8yct0SVBSy+o8wYzXjE4Zz3PCesbfs8HiCXXdcTuocApFv11UWlNFWKYsP2okqrhb7JNlSm9InBhIw==} dev: false + /mz@2.7.0: + resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} + dependencies: + any-promise: 1.3.0 + object-assign: 4.1.1 + thenify-all: 1.6.0 + dev: true + /nanoid@3.3.6: resolution: {integrity: sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} @@ -3667,6 +3806,10 @@ packages: whatwg-url: 5.0.0 dev: true + /node-releases@2.0.13: + resolution: {integrity: sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==} + dev: true + /normalize-package-data@2.5.0: resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==} dependencies: @@ -3691,6 +3834,11 @@ packages: engines: {node: '>=0.10.0'} dev: true + /normalize-range@0.1.2: + resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==} + engines: {node: '>=0.10.0'} + dev: true + /npm-run-all@4.1.5: resolution: {integrity: sha512-Oo82gJDAVcaMdi3nuoKFavkIHBRVqQ1qvMb+9LHk/cF4P6B2m8aP04hGf7oL6wZ9BuGwX1onlLhpuoofSyoQDQ==} engines: {node: '>= 4'} @@ -3727,6 +3875,16 @@ packages: boolbase: 1.0.0 dev: true + /object-assign@4.1.1: + resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} + engines: {node: '>=0.10.0'} + dev: true + + /object-hash@3.0.0: + resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==} + engines: {node: '>= 6'} + dev: true + /object-inspect@1.13.1: resolution: {integrity: sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==} dev: true @@ -3949,6 +4107,11 @@ packages: vue-demi: 0.14.6(vue@3.3.8) dev: false + /pirates@4.0.6: + resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==} + engines: {node: '>= 6'} + dev: true + /pkg-types@1.0.3: resolution: {integrity: sha512-nN7pYi0AQqJnoLPC9eHFQ8AcyaixBUOwvqc5TDnIKCMEE6I0y8P7OKA7fPexsXGCGxQDl/cmrLAp26LhcwxZ4A==} dependencies: @@ -3957,10 +4120,59 @@ packages: pathe: 1.1.1 dev: true + /postcss-import@15.1.0(postcss@8.4.31): + resolution: {integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==} + engines: {node: '>=14.0.0'} + peerDependencies: + postcss: ^8.0.0 + dependencies: + postcss: 8.4.31 + postcss-value-parser: 4.2.0 + read-cache: 1.0.0 + resolve: 1.22.8 + dev: true + + /postcss-js@4.0.1(postcss@8.4.31): + resolution: {integrity: sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==} + engines: {node: ^12 || ^14 || >= 16} + peerDependencies: + postcss: ^8.4.21 + dependencies: + camelcase-css: 2.0.1 + postcss: 8.4.31 + dev: true + + /postcss-load-config@4.0.1(postcss@8.4.31): + resolution: {integrity: sha512-vEJIc8RdiBRu3oRAI0ymerOn+7rPuMvRXslTvZUKZonDHFIczxztIyJ1urxM1x9JXEikvpWWTUUqal5j/8QgvA==} + engines: {node: '>= 14'} + peerDependencies: + postcss: '>=8.0.9' + ts-node: '>=9.0.0' + peerDependenciesMeta: + postcss: + optional: true + ts-node: + optional: true + dependencies: + lilconfig: 2.1.0 + postcss: 8.4.31 + yaml: 2.3.3 + dev: true + /postcss-media-query-parser@0.2.3: resolution: {integrity: sha512-3sOlxmbKcSHMjlUXQZKQ06jOswE7oVkXPxmZdoB1r5l0q6gTFTQSHxNxOrCccElbW7dxNytifNEo8qidX2Vsig==} dev: true + /postcss-nested@6.0.1(postcss@8.4.31): + resolution: {integrity: sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==} + engines: {node: '>=12.0'} + peerDependencies: + postcss: ^8.2.14 + dependencies: + postcss: 8.4.31 + postcss-selector-parser: 6.0.13 + dev: true + /postcss-resolve-nested-selector@0.1.1: resolution: {integrity: sha512-HvExULSwLqHLgUy1rl3ANIqCsvMS0WHss2UOsXhXnQaZ9VCc2oBvIpXrl00IUFT5ZDITME0o6oiXeiHr2SAIfw==} dev: true @@ -4082,6 +4294,12 @@ packages: resolution: {integrity: sha512-RKJ22hX8mHe3Y6wH/N3wCM6BWtjaxIyyUIkpHOvfFnxdI4yD4tBXEBKSbriGujF6jnSVkJrffuo6vxACiSSxIw==} dev: false + /read-cache@1.0.0: + resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==} + dependencies: + pify: 2.3.0 + dev: true + /read-pkg-up@8.0.0: resolution: {integrity: sha512-snVCqPczksT0HS2EC+SxUndvSzn6LRCwpfSvLrIfR5BKDQQZMaI6jPRC9dYvYFDRAuFEAnkwww8kBBNE/3VvzQ==} engines: {node: '>=12'} @@ -4623,6 +4841,20 @@ packages: - typescript dev: true + /sucrase@3.34.0: + resolution: {integrity: sha512-70/LQEZ07TEcxiU2dz51FKaE6hCTWC6vr7FOk3Gr0U60C3shtAN+H+BFr9XlYe5xqf3RA8nrc+VIwzCfnxuXJw==} + engines: {node: '>=8'} + hasBin: true + dependencies: + '@jridgewell/gen-mapping': 0.3.3 + commander: 4.1.1 + glob: 7.1.6 + lines-and-columns: 1.2.4 + mz: 2.7.0 + pirates: 4.0.6 + ts-interface-checker: 0.1.13 + dev: true + /supercluster@8.0.1: resolution: {integrity: sha512-IiOea5kJ9iqzD2t7QJq/cREyLHTtSmUT6gQsweojg9WH2sYJqZK9SswTu6jrscO6D1G5v5vYZ9ru/eq85lXeZQ==} dependencies: @@ -4690,10 +4922,54 @@ packages: strip-ansi: 6.0.1 dev: true + /tailwindcss@3.3.5: + resolution: {integrity: sha512-5SEZU4J7pxZgSkv7FP1zY8i2TIAOooNZ1e/OGtxIEv6GltpoiXUqWvLy89+a10qYTB1N5Ifkuw9lqQkN9sscvA==} + engines: {node: '>=14.0.0'} + hasBin: true + dependencies: + '@alloc/quick-lru': 5.2.0 + arg: 5.0.2 + chokidar: 3.5.3 + didyoumean: 1.2.2 + dlv: 1.1.3 + fast-glob: 3.3.1 + glob-parent: 6.0.2 + is-glob: 4.0.3 + jiti: 1.21.0 + lilconfig: 2.1.0 + micromatch: 4.0.5 + normalize-path: 3.0.0 + object-hash: 3.0.0 + picocolors: 1.0.0 + postcss: 8.4.31 + postcss-import: 15.1.0(postcss@8.4.31) + postcss-js: 4.0.1(postcss@8.4.31) + postcss-load-config: 4.0.1(postcss@8.4.31) + postcss-nested: 6.0.1(postcss@8.4.31) + postcss-selector-parser: 6.0.13 + resolve: 1.22.8 + sucrase: 3.34.0 + transitivePeerDependencies: + - ts-node + dev: true + /text-table@0.2.0: resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} dev: true + /thenify-all@1.6.0: + resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} + engines: {node: '>=0.8'} + dependencies: + thenify: 3.3.1 + dev: true + + /thenify@3.3.1: + resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} + dependencies: + any-promise: 1.3.0 + dev: true + /throttleit@1.0.0: resolution: {integrity: sha512-rkTVqu6IjfQ/6+uNuuc3sZek4CEYxTJom3IktzgdSxcZqdARuebbA/f4QmAxMQIxqq9ZLEUkSYqvuk1I6VKq4g==} dev: true @@ -4771,6 +5047,10 @@ packages: typescript: 5.2.2 dev: true + /ts-interface-checker@0.1.13: + resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} + dev: true + /tslib@2.6.2: resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} dev: true @@ -4920,6 +5200,17 @@ packages: engines: {node: '>=8'} dev: true + /update-browserslist-db@1.0.13(browserslist@4.22.1): + resolution: {integrity: sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==} + hasBin: true + peerDependencies: + browserslist: '>= 4.21.0' + dependencies: + browserslist: 4.22.1 + escalade: 3.1.1 + picocolors: 1.0.0 + dev: true + /uri-js@4.4.1: resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} dependencies: diff --git a/webclient/postcss.config.js b/webclient/postcss.config.js new file mode 100644 index 000000000..2aa7205d4 --- /dev/null +++ b/webclient/postcss.config.js @@ -0,0 +1,6 @@ +export default { + plugins: { + tailwindcss: {}, + autoprefixer: {}, + }, +}; diff --git a/webclient/src/assets/main.scss b/webclient/src/assets/main.scss index 18e488cfb..e45648e00 100644 --- a/webclient/src/assets/main.scss +++ b/webclient/src/assets/main.scss @@ -1,4 +1,7 @@ @import "@/assets/variables.scss"; +@tailwind base; +@tailwind components; +@tailwind utilities; /* === General === */ html { diff --git a/webclient/src/components/AppFooter.vue b/webclient/src/components/AppFooter.vue index ea4b4f688..fb49ea56a 100644 --- a/webclient/src/components/AppFooter.vue +++ b/webclient/src/components/AppFooter.vue @@ -62,7 +62,7 @@ const { t } = useI18n({ useScope: "local" });
{{ t("official_roomfinder") }}
- +
@@ -94,7 +94,7 @@ const { t } = useI18n({ useScope: "local" });
{{ t("official_roomfinder") }}
- +
diff --git a/webclient/tailwind.config.js b/webclient/tailwind.config.js new file mode 100644 index 000000000..45ce1122b --- /dev/null +++ b/webclient/tailwind.config.js @@ -0,0 +1,8 @@ +/** @type {import('tailwindcss').Config} */ +export default { + content: ["./index.html", "./src/**/*.{vue,js,ts,jsx,tsx}"], + theme: { + extend: {}, + }, + plugins: [], +}; From 640d3614d4d5e7410321cec5a19ae9a6691a5c87 Mon Sep 17 00:00:00 2001 From: Frank Elsinga Date: Tue, 14 Nov 2023 23:24:24 +0100 Subject: [PATCH 02/12] migrated `img-responsive` --- webclient/src/components/DetailsImageSlideshowModal.vue | 2 +- webclient/src/components/DetailsInfoSection.vue | 3 +-- webclient/src/components/DetailsRoomfinderMap.vue | 4 ++-- webclient/src/pages/view/[id].vue | 6 +++++- 4 files changed, 9 insertions(+), 6 deletions(-) diff --git a/webclient/src/components/DetailsImageSlideshowModal.vue b/webclient/src/components/DetailsImageSlideshowModal.vue index e20eb5c9c..873fbb139 100644 --- a/webclient/src/components/DetailsImageSlideshowModal.vue +++ b/webclient/src/components/DetailsImageSlideshowModal.vue @@ -66,7 +66,7 @@ const appURL = import.meta.env.VITE_APP_URL; :src="`${appURL}/cdn/lg/${img.name}`" :srcset="`${appURL}/cdn/sm/${img.name} 1024w,${appURL}/cdn/md/${img.name} 1920w,${appURL}/cdn/lg/${img.name} 3860w`" sizes="100vw" - class="img-responsive rounded" + class="block h-auto max-w-full bg-zinc-100 rounded" /> {{ img.license.url }} img.license.text diff --git a/webclient/src/components/DetailsInfoSection.vue b/webclient/src/components/DetailsInfoSection.vue index b26b8f203..54a1db0cb 100644 --- a/webclient/src/components/DetailsInfoSection.vue +++ b/webclient/src/components/DetailsInfoSection.vue @@ -29,8 +29,7 @@ const appURL = import.meta.env.VITE_APP_URL;
diff --git a/webclient/src/components/DetailsRoomfinderMap.vue b/webclient/src/components/DetailsRoomfinderMap.vue index 5545f828f..48d008531 100644 --- a/webclient/src/components/DetailsRoomfinderMap.vue +++ b/webclient/src/components/DetailsRoomfinderMap.vue @@ -86,7 +86,7 @@ function delayedLoadRoomfinderModalMap() { { @click="state.showImageSlideshow(state.image.shown_image_id || 0)" v-if="state.image.shown_image" > - + From 3ff36c832abcd1057a76d049b827e2b2f8dd4694 Mon Sep 17 00:00:00 2001 From: Frank Elsinga Date: Tue, 14 Nov 2023 23:54:41 +0100 Subject: [PATCH 03/12] removed custom css for the `DetailsInfoSection` --- .../src/components/DetailsInfoSection.vue | 24 ++++--------------- 1 file changed, 4 insertions(+), 20 deletions(-) diff --git a/webclient/src/components/DetailsInfoSection.vue b/webclient/src/components/DetailsInfoSection.vue index 54a1db0cb..7e8df8d6a 100644 --- a/webclient/src/components/DetailsInfoSection.vue +++ b/webclient/src/components/DetailsInfoSection.vue @@ -11,7 +11,7 @@ const appURL = import.meta.env.VITE_APP_URL; - - de: image_alt: Header-Bild, zeigt das Gebäude From 50f10ee6250489d585eb815a704baf8dc9990616 Mon Sep 17 00:00:00 2001 From: Frank Elsinga Date: Wed, 15 Nov 2023 00:34:41 +0100 Subject: [PATCH 04/12] fixed padding --- webclient/src/components/AppFooter.vue | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/webclient/src/components/AppFooter.vue b/webclient/src/components/AppFooter.vue index fb49ea56a..e53c12482 100644 --- a/webclient/src/components/AppFooter.vue +++ b/webclient/src/components/AppFooter.vue @@ -62,7 +62,7 @@ const { t } = useI18n({ useScope: "local" });
{{ t("official_roomfinder") }}
- +
@@ -91,10 +91,10 @@ const { t } = useI18n({ useScope: "local" });
-
+
{{ t("official_roomfinder") }}
- +
From 8763b3a62e93627d8471ffe50b8bf594e6a37ab3 Mon Sep 17 00:00:00 2001 From: Frank Elsinga Date: Wed, 15 Nov 2023 00:36:20 +0100 Subject: [PATCH 05/12] fixed the theme of tailwind and spectre not being alighed --- webclient/build.sh | 3 ++- webclient/index.html | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/webclient/build.sh b/webclient/build.sh index 0c4b0b097..9fb983d6a 100755 --- a/webclient/build.sh +++ b/webclient/build.sh @@ -7,8 +7,9 @@ rm -fr ../dist for THEME in light dark do - # make sure we are really only building the right theme and language + # make sure we are really only building the right theme sed -i "s/\$theme: .*/\$theme: \"${THEME}\";/" src/assets/variables.scss + sed -i "s/>THEME - + - From 6070412c9d4f111651d450c062610a4df69afe3a Mon Sep 17 00:00:00 2001 From: Frank Elsinga Date: Wed, 15 Nov 2023 00:53:41 +0100 Subject: [PATCH 07/12] migrated the about page --- webclient/src/assets/variables.scss | 2 -- 1 file changed, 2 deletions(-) diff --git a/webclient/src/assets/variables.scss b/webclient/src/assets/variables.scss index 632fdfd2c..7ecbb44d7 100644 --- a/webclient/src/assets/variables.scss +++ b/webclient/src/assets/variables.scss @@ -51,7 +51,6 @@ $container-loading-bg: #fbfbfb; $roomfinder-selected-bg: #f2f2f2; $search-border: #f0f0f0; $search-border-hover: #dadee4; -$code-bg: #fcf2f2; /* === Dark mode === */ @if $theme == "dark" { @@ -92,5 +91,4 @@ $code-bg: #fcf2f2; $roomfinder-selected-bg: #282c35; $search-border: #353535; $search-border-hover: #444; - $code-bg: #201e1e; } From 7a70af6c8b41125374bb11dbc653eb27cede8322 Mon Sep 17 00:00:00 2001 From: Frank Elsinga Date: Sat, 18 Nov 2023 21:17:06 +0100 Subject: [PATCH 08/12] made the e2e script more robust --- webclient/cypress/e2e/frontpage.cy.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/webclient/cypress/e2e/frontpage.cy.ts b/webclient/cypress/e2e/frontpage.cy.ts index c18c784d4..e2cdfcdfa 100644 --- a/webclient/cypress/e2e/frontpage.cy.ts +++ b/webclient/cypress/e2e/frontpage.cy.ts @@ -1,10 +1,10 @@ describe("Check if navigating from the frontpage works as expected", () => { - it("navigating to the mi", () => { + it("navigating to the mri", () => { cy.intercept("GET", "/api/get/root?lang=de", { fixture: "get/root.de.json" }); cy.visit("http://localhost:3000/"); cy.intercept("GET", "/api/get/mi?lang=de", { fixture: "get/mi.de.json" }); - cy.contains("Informatik").click(); - cy.url().should("include", "/building/mi"); + cy.contains("MRI").click(); + cy.url().should("include", "/site/mri"); }); it("navigating to an initally hidden entry", () => { cy.intercept("GET", "/api/get/root?lang=de", { fixture: "get/root.de.json" }); From 0ab4d878869749e22677c7725efff078b829d815 Mon Sep 17 00:00:00 2001 From: Frank Elsinga Date: Sat, 18 Nov 2023 21:26:29 +0100 Subject: [PATCH 09/12] documented the theme variable --- webclient/README.md | 8 +++----- webclient/build.sh | 2 +- webclient/index.html | 2 +- 3 files changed, 5 insertions(+), 7 deletions(-) diff --git a/webclient/README.md b/webclient/README.md index 5269b6bb7..94f397b3e 100644 --- a/webclient/README.md +++ b/webclient/README.md @@ -77,17 +77,15 @@ Each of those files are similar but differ in some aspects. If you serve the release build with a webserver (such as Nginx) you need to select the correct files based on the request URL and headers. ```plain --.html - ↑ ↑ - │ └── The page language. Either "de" or "en" at the moment. - │ It should be selected based on the "lang" Cookie or else the "Accept-Language" header. +.html + ↑ └── The page theme. Either "light" or "dark" at the moment. It should be selected based on the "theme" Cookie ("light" by default). ``` The language-selector is working in development and this differentialtion is only happening in the build. For the theme we can not do so for some reason (If you know of a better way, hit us up). -To test a different theme, you can change `$theme` [here](./src/assets/variables.scss). Values are `light` and `dark`. +To test a different theme, you can change `$theme` [here](./src/assets/variables.scss) and `theme='...'` [here](./index.html). Values are `light` and `dark`. ## Architecture diff --git a/webclient/build.sh b/webclient/build.sh index 9fb983d6a..26b64aa24 100755 --- a/webclient/build.sh +++ b/webclient/build.sh @@ -9,7 +9,7 @@ for THEME in light dark do # make sure we are really only building the right theme sed -i "s/\$theme: .*/\$theme: \"${THEME}\";/" src/assets/variables.scss - sed -i "s/>THEME - +