Introduce custom media queries and add iconify icons.

This commit is contained in:
Bradley Shellnut 2023-01-13 21:13:59 -08:00
parent 103690fbbc
commit d2ab315978
12 changed files with 161 additions and 121 deletions

View file

@ -1,10 +0,0 @@
module.exports = {
environmentVariables: {
'--xsmall-viewport': '480px',
'--small-viewport': '640px',
'--medium-viewport': '768px',
'--large-viewport': '1024px',
'--xlarge-viewport': '1280px',
'--xxlarge-viewport': '1536px',
}
}

10
environmentVariables.json Normal file
View file

@ -0,0 +1,10 @@
{
"environment-variables": {
"--xsmall-viewport": "480px",
"--small-viewport": "640px",
"--medium-viewport": "768px",
"--large-viewport": "1024px",
"--xlarge-viewport": "1280px",
"--xxlarge-viewport": "1536px"
}
}

View file

@ -17,12 +17,12 @@
"@rgossiaux/svelte-headlessui": "1.0.2",
"@rgossiaux/svelte-heroicons": "^0.1.2",
"@sveltejs/adapter-auto": "^1.0.0",
"@sveltejs/adapter-vercel": "^1.0.1",
"@sveltejs/kit": "^1.0.7",
"@sveltejs/adapter-vercel": "^1.0.2",
"@sveltejs/kit": "^1.0.13",
"@types/cookie": "^0.5.1",
"@types/node": "^18.11.18",
"@typescript-eslint/eslint-plugin": "^5.48.0",
"@typescript-eslint/parser": "^5.48.0",
"@typescript-eslint/eslint-plugin": "^5.48.1",
"@typescript-eslint/parser": "^5.48.1",
"autoprefixer": "^10.4.13",
"eslint": "^8.31.0",
"eslint-config-prettier": "^8.6.0",
@ -40,7 +40,7 @@
"prettier": "^2.8.2",
"prettier-plugin-svelte": "^2.9.0",
"sass": "^1.57.1",
"svelte": "^3.55.0",
"svelte": "^3.55.1",
"svelte-check": "^2.10.3",
"svelte-preprocess": "^4.10.7",
"tslib": "^2.4.1",
@ -57,8 +57,9 @@
"@types/feather-icons": "^4.29.1",
"cookie": "^0.5.0",
"feather-icons": "^4.29.0",
"iconify-icon": "^1.0.2",
"svelte-lazy-loader": "^1.0.0",
"zod": "^3.20.2",
"zod-to-json-schema": "^3.20.1"
"zod-to-json-schema": "^3.20.2"
}
}

View file

@ -9,19 +9,20 @@ specifiers:
'@rgossiaux/svelte-headlessui': 1.0.2
'@rgossiaux/svelte-heroicons': ^0.1.2
'@sveltejs/adapter-auto': ^1.0.0
'@sveltejs/adapter-vercel': ^1.0.1
'@sveltejs/kit': ^1.0.7
'@sveltejs/adapter-vercel': ^1.0.2
'@sveltejs/kit': ^1.0.13
'@types/cookie': ^0.5.1
'@types/feather-icons': ^4.29.1
'@types/node': ^18.11.18
'@typescript-eslint/eslint-plugin': ^5.48.0
'@typescript-eslint/parser': ^5.48.0
'@typescript-eslint/eslint-plugin': ^5.48.1
'@typescript-eslint/parser': ^5.48.1
autoprefixer: ^10.4.13
cookie: ^0.5.0
eslint: ^8.31.0
eslint-config-prettier: ^8.6.0
eslint-plugin-svelte3: ^4.0.0
feather-icons: ^4.29.0
iconify-icon: ^1.0.2
just-clone: ^6.2.0
just-debounce-it: ^3.2.0
postcss: ^8.4.21
@ -35,7 +36,7 @@ specifiers:
prettier: ^2.8.2
prettier-plugin-svelte: ^2.9.0
sass: ^1.57.1
svelte: ^3.55.0
svelte: ^3.55.1
svelte-check: ^2.10.3
svelte-lazy-loader: ^1.0.0
svelte-preprocess: ^4.10.7
@ -44,7 +45,7 @@ specifiers:
vite: ^4.0.4
vitest: ^0.25.3
zod: ^3.20.2
zod-to-json-schema: ^3.20.1
zod-to-json-schema: ^3.20.2
dependencies:
'@fontsource/fira-mono': 4.5.10
@ -54,25 +55,26 @@ dependencies:
'@types/feather-icons': 4.29.1
cookie: 0.5.0
feather-icons: 4.29.0
iconify-icon: 1.0.2
svelte-lazy-loader: 1.0.0
zod: 3.20.2
zod-to-json-schema: 3.20.1_zod@3.20.2
zod-to-json-schema: 3.20.2_zod@3.20.2
devDependencies:
'@playwright/test': 1.29.2
'@rgossiaux/svelte-headlessui': 1.0.2_svelte@3.55.0
'@rgossiaux/svelte-heroicons': 0.1.2_svelte@3.55.0
'@sveltejs/adapter-auto': 1.0.0_@sveltejs+kit@1.0.7
'@sveltejs/adapter-vercel': 1.0.1_@sveltejs+kit@1.0.7
'@sveltejs/kit': 1.0.7_svelte@3.55.0+vite@4.0.4
'@rgossiaux/svelte-headlessui': 1.0.2_svelte@3.55.1
'@rgossiaux/svelte-heroicons': 0.1.2_svelte@3.55.1
'@sveltejs/adapter-auto': 1.0.0_@sveltejs+kit@1.0.13
'@sveltejs/adapter-vercel': 1.0.2_@sveltejs+kit@1.0.13
'@sveltejs/kit': 1.0.13_svelte@3.55.1+vite@4.0.4
'@types/cookie': 0.5.1
'@types/node': 18.11.18
'@typescript-eslint/eslint-plugin': 5.48.0_k73wpmdolxikpyqun3p36akaaq
'@typescript-eslint/parser': 5.48.0_iukboom6ndih5an6iafl45j2fe
'@typescript-eslint/eslint-plugin': 5.48.1_3jon24igvnqaqexgwtxk6nkpse
'@typescript-eslint/parser': 5.48.1_iukboom6ndih5an6iafl45j2fe
autoprefixer: 10.4.13_postcss@8.4.21
eslint: 8.31.0
eslint-config-prettier: 8.6.0_eslint@8.31.0
eslint-plugin-svelte3: 4.0.0_6go7qzsvzihesfwmyvq3tnl5qq
eslint-plugin-svelte3: 4.0.0_btuntbn75dxkba3nofpps2nvzm
just-clone: 6.2.0
just-debounce-it: 3.2.0
postcss: 8.4.21
@ -84,11 +86,11 @@ devDependencies:
postcss-media-minmax: 5.0.0_postcss@8.4.21
postcss-nested: 6.0.0_postcss@8.4.21
prettier: 2.8.2
prettier-plugin-svelte: 2.9.0_74vfyr7qjo56zgjcvkwi6gyjxm
prettier-plugin-svelte: 2.9.0_y74x4qymbshr6ujrzcfe2sydsa
sass: 1.57.1
svelte: 3.55.0
svelte-check: 2.10.3_2ucm3gises2g7s47d5nd3e3tqa
svelte-preprocess: 4.10.7_vsntmwrrlk5avk6zexsfqc76hy
svelte: 3.55.1
svelte-check: 2.10.3_mraflicfyjy3x4taxigiwsr23i
svelte-preprocess: 4.10.7_kmnkm63hwcse26ffcjvrch7uda
tslib: 2.4.1
typescript: 4.9.4
vite: 4.0.4_ovmyjmuuyckt3r3gpaexj2onji
@ -360,6 +362,10 @@ packages:
resolution: {integrity: sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==}
dev: true
/@iconify/types/2.0.0:
resolution: {integrity: sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg==}
dev: false
/@jridgewell/resolve-uri/3.1.0:
resolution: {integrity: sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==}
engines: {node: '>=6.0.0'}
@ -450,20 +456,20 @@ packages:
resolution: {integrity: sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g==}
dev: true
/@rgossiaux/svelte-headlessui/1.0.2_svelte@3.55.0:
/@rgossiaux/svelte-headlessui/1.0.2_svelte@3.55.1:
resolution: {integrity: sha512-sauopYTSivhzXe1kAvgawkhyYJcQlK8Li3p0d2OtcCIVprOzdbard5lbqWB4xHDv83zAobt2mR08oizO2poHLQ==}
peerDependencies:
svelte: ^3.44.0
dependencies:
svelte: 3.55.0
svelte: 3.55.1
dev: true
/@rgossiaux/svelte-heroicons/0.1.2_svelte@3.55.0:
/@rgossiaux/svelte-heroicons/0.1.2_svelte@3.55.1:
resolution: {integrity: sha512-c5Ep1QDvBo9HD/P0AxbXItDbn6x77fldCjjL0aBjNseUntV4fkdHkBde1IaLr8i0kmrhTSovjkIen8W83jUPzg==}
peerDependencies:
svelte: ^3.44.0
dependencies:
svelte: 3.55.0
svelte: 3.55.1
dev: true
/@rollup/pluginutils/4.2.1:
@ -474,21 +480,21 @@ packages:
picomatch: 2.3.1
dev: true
/@sveltejs/adapter-auto/1.0.0_@sveltejs+kit@1.0.7:
/@sveltejs/adapter-auto/1.0.0_@sveltejs+kit@1.0.13:
resolution: {integrity: sha512-yKyPvlLVua1bJ/42FrR3X041mFGdB4GzTZOAEoHUcNBRE5Mhx94+eqHpC3hNvAOiLEDcKfVO0ObyKSu7qldU+w==}
peerDependencies:
'@sveltejs/kit': ^1.0.0
dependencies:
'@sveltejs/kit': 1.0.7_svelte@3.55.0+vite@4.0.4
'@sveltejs/kit': 1.0.13_svelte@3.55.1+vite@4.0.4
import-meta-resolve: 2.2.0
dev: true
/@sveltejs/adapter-vercel/1.0.1_@sveltejs+kit@1.0.7:
resolution: {integrity: sha512-2v06K1dKC8VmQnB8P/dAdBuNSQYvJbhBkCFpiBptkptoYMcSZnT2fYqsmtoUJDn13ACDQttorcFIQkf0BeFMQw==}
/@sveltejs/adapter-vercel/1.0.2_@sveltejs+kit@1.0.13:
resolution: {integrity: sha512-Ms2cTlqpA8Rf6Pl8GuqC6bLoMdA30W688+wV8i6DcHlLO3Z9NBEZET2jF+tEmRF1jrxxAWEDngdQBfs25eOBxw==}
peerDependencies:
'@sveltejs/kit': ^1.0.0
dependencies:
'@sveltejs/kit': 1.0.7_svelte@3.55.0+vite@4.0.4
'@sveltejs/kit': 1.0.13_svelte@3.55.1+vite@4.0.4
'@vercel/nft': 0.22.6
esbuild: 0.16.8
transitivePeerDependencies:
@ -496,8 +502,8 @@ packages:
- supports-color
dev: true
/@sveltejs/kit/1.0.7_svelte@3.55.0+vite@4.0.4:
resolution: {integrity: sha512-u8JS4aXFWlrnu/tjl+EhJ/FvBEjLYDyMaLe7EAU4sW+PfDqnqyHBAPg/IQi5JuBg6l+Z816F4WrTe+zplUTQDg==}
/@sveltejs/kit/1.0.13_svelte@3.55.1+vite@4.0.4:
resolution: {integrity: sha512-AuHqAojgg+tL9lXSQKkB1VjadFDW+vwOoWLq+BU8pAgFvZMlh3rGCyEdPbEgE3V6pwWn/+37AOrA8fILMHWzRQ==}
engines: {node: ^16.14 || >=18}
hasBin: true
requiresBuild: true
@ -505,7 +511,7 @@ packages:
svelte: ^3.54.0
vite: ^4.0.0
dependencies:
'@sveltejs/vite-plugin-svelte': 2.0.2_svelte@3.55.0+vite@4.0.4
'@sveltejs/vite-plugin-svelte': 2.0.2_svelte@3.55.1+vite@4.0.4
'@types/cookie': 0.5.1
cookie: 0.5.0
devalue: 4.2.0
@ -516,15 +522,15 @@ packages:
sade: 1.8.1
set-cookie-parser: 2.5.1
sirv: 2.0.2
svelte: 3.55.0
svelte: 3.55.1
tiny-glob: 0.2.9
undici: 5.14.0
undici: 5.15.0
vite: 4.0.4_ovmyjmuuyckt3r3gpaexj2onji
transitivePeerDependencies:
- supports-color
dev: true
/@sveltejs/vite-plugin-svelte/2.0.2_svelte@3.55.0+vite@4.0.4:
/@sveltejs/vite-plugin-svelte/2.0.2_svelte@3.55.1+vite@4.0.4:
resolution: {integrity: sha512-xCEan0/NNpQuL0l5aS42FjwQ6wwskdxC3pW1OeFtEKNZwRg7Evro9lac9HesGP6TdFsTv2xMes5ASQVKbCacxg==}
engines: {node: ^14.18.0 || >= 16}
peerDependencies:
@ -535,8 +541,8 @@ packages:
deepmerge: 4.2.2
kleur: 4.1.5
magic-string: 0.27.0
svelte: 3.55.0
svelte-hmr: 0.15.1_svelte@3.55.0
svelte: 3.55.1
svelte-hmr: 0.15.1_svelte@3.55.1
vite: 4.0.4_ovmyjmuuyckt3r3gpaexj2onji
vitefu: 0.2.4_vite@4.0.4
transitivePeerDependencies:
@ -583,8 +589,8 @@ packages:
resolution: {integrity: sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw==}
dev: true
/@typescript-eslint/eslint-plugin/5.48.0_k73wpmdolxikpyqun3p36akaaq:
resolution: {integrity: sha512-SVLafp0NXpoJY7ut6VFVUU9I+YeFsDzeQwtK0WZ+xbRN3mtxJ08je+6Oi2N89qDn087COdO0u3blKZNv9VetRQ==}
/@typescript-eslint/eslint-plugin/5.48.1_3jon24igvnqaqexgwtxk6nkpse:
resolution: {integrity: sha512-9nY5K1Rp2ppmpb9s9S2aBiF3xo5uExCehMDmYmmFqqyxgenbHJ3qbarcLt4ITgaD6r/2ypdlcFRdcuVPnks+fQ==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
peerDependencies:
'@typescript-eslint/parser': ^5.0.0
@ -594,10 +600,10 @@ packages:
typescript:
optional: true
dependencies:
'@typescript-eslint/parser': 5.48.0_iukboom6ndih5an6iafl45j2fe
'@typescript-eslint/scope-manager': 5.48.0
'@typescript-eslint/type-utils': 5.48.0_iukboom6ndih5an6iafl45j2fe
'@typescript-eslint/utils': 5.48.0_iukboom6ndih5an6iafl45j2fe
'@typescript-eslint/parser': 5.48.1_iukboom6ndih5an6iafl45j2fe
'@typescript-eslint/scope-manager': 5.48.1
'@typescript-eslint/type-utils': 5.48.1_iukboom6ndih5an6iafl45j2fe
'@typescript-eslint/utils': 5.48.1_iukboom6ndih5an6iafl45j2fe
debug: 4.3.4
eslint: 8.31.0
ignore: 5.2.1
@ -610,8 +616,8 @@ packages:
- supports-color
dev: true
/@typescript-eslint/parser/5.48.0_iukboom6ndih5an6iafl45j2fe:
resolution: {integrity: sha512-1mxNA8qfgxX8kBvRDIHEzrRGrKHQfQlbW6iHyfHYS0Q4X1af+S6mkLNtgCOsGVl8+/LUPrqdHMssAemkrQ01qg==}
/@typescript-eslint/parser/5.48.1_iukboom6ndih5an6iafl45j2fe:
resolution: {integrity: sha512-4yg+FJR/V1M9Xoq56SF9Iygqm+r5LMXvheo6DQ7/yUWynQ4YfCRnsKuRgqH4EQ5Ya76rVwlEpw4Xu+TgWQUcdA==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
peerDependencies:
eslint: ^6.0.0 || ^7.0.0 || ^8.0.0
@ -620,9 +626,9 @@ packages:
typescript:
optional: true
dependencies:
'@typescript-eslint/scope-manager': 5.48.0
'@typescript-eslint/types': 5.48.0
'@typescript-eslint/typescript-estree': 5.48.0_typescript@4.9.4
'@typescript-eslint/scope-manager': 5.48.1
'@typescript-eslint/types': 5.48.1
'@typescript-eslint/typescript-estree': 5.48.1_typescript@4.9.4
debug: 4.3.4
eslint: 8.31.0
typescript: 4.9.4
@ -630,16 +636,16 @@ packages:
- supports-color
dev: true
/@typescript-eslint/scope-manager/5.48.0:
resolution: {integrity: sha512-0AA4LviDtVtZqlyUQnZMVHydDATpD9SAX/RC5qh6cBd3xmyWvmXYF+WT1oOmxkeMnWDlUVTwdODeucUnjz3gow==}
/@typescript-eslint/scope-manager/5.48.1:
resolution: {integrity: sha512-S035ueRrbxRMKvSTv9vJKIWgr86BD8s3RqoRZmsSh/s8HhIs90g6UlK8ZabUSjUZQkhVxt7nmZ63VJ9dcZhtDQ==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
dependencies:
'@typescript-eslint/types': 5.48.0
'@typescript-eslint/visitor-keys': 5.48.0
'@typescript-eslint/types': 5.48.1
'@typescript-eslint/visitor-keys': 5.48.1
dev: true
/@typescript-eslint/type-utils/5.48.0_iukboom6ndih5an6iafl45j2fe:
resolution: {integrity: sha512-vbtPO5sJyFjtHkGlGK4Sthmta0Bbls4Onv0bEqOGm7hP9h8UpRsHJwsrCiWtCUndTRNQO/qe6Ijz9rnT/DB+7g==}
/@typescript-eslint/type-utils/5.48.1_iukboom6ndih5an6iafl45j2fe:
resolution: {integrity: sha512-Hyr8HU8Alcuva1ppmqSYtM/Gp0q4JOp1F+/JH5D1IZm/bUBrV0edoewQZiEc1r6I8L4JL21broddxK8HAcZiqQ==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
peerDependencies:
eslint: '*'
@ -648,8 +654,8 @@ packages:
typescript:
optional: true
dependencies:
'@typescript-eslint/typescript-estree': 5.48.0_typescript@4.9.4
'@typescript-eslint/utils': 5.48.0_iukboom6ndih5an6iafl45j2fe
'@typescript-eslint/typescript-estree': 5.48.1_typescript@4.9.4
'@typescript-eslint/utils': 5.48.1_iukboom6ndih5an6iafl45j2fe
debug: 4.3.4
eslint: 8.31.0
tsutils: 3.21.0_typescript@4.9.4
@ -658,13 +664,13 @@ packages:
- supports-color
dev: true
/@typescript-eslint/types/5.48.0:
resolution: {integrity: sha512-UTe67B0Ypius0fnEE518NB2N8gGutIlTojeTg4nt0GQvikReVkurqxd2LvYa9q9M5MQ6rtpNyWTBxdscw40Xhw==}
/@typescript-eslint/types/5.48.1:
resolution: {integrity: sha512-xHyDLU6MSuEEdIlzrrAerCGS3T7AA/L8Hggd0RCYBi0w3JMvGYxlLlXHeg50JI9Tfg5MrtsfuNxbS/3zF1/ATg==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
dev: true
/@typescript-eslint/typescript-estree/5.48.0_typescript@4.9.4:
resolution: {integrity: sha512-7pjd94vvIjI1zTz6aq/5wwE/YrfIyEPLtGJmRfyNR9NYIW+rOvzzUv3Cmq2hRKpvt6e9vpvPUQ7puzX7VSmsEw==}
/@typescript-eslint/typescript-estree/5.48.1_typescript@4.9.4:
resolution: {integrity: sha512-Hut+Osk5FYr+sgFh8J/FHjqX6HFcDzTlWLrFqGoK5kVUN3VBHF/QzZmAsIXCQ8T/W9nQNBTqalxi1P3LSqWnRA==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
peerDependencies:
typescript: '*'
@ -672,8 +678,8 @@ packages:
typescript:
optional: true
dependencies:
'@typescript-eslint/types': 5.48.0
'@typescript-eslint/visitor-keys': 5.48.0
'@typescript-eslint/types': 5.48.1
'@typescript-eslint/visitor-keys': 5.48.1
debug: 4.3.4
globby: 11.1.0
is-glob: 4.0.3
@ -684,17 +690,17 @@ packages:
- supports-color
dev: true
/@typescript-eslint/utils/5.48.0_iukboom6ndih5an6iafl45j2fe:
resolution: {integrity: sha512-x2jrMcPaMfsHRRIkL+x96++xdzvrdBCnYRd5QiW5Wgo1OB4kDYPbC1XjWP/TNqlfK93K/lUL92erq5zPLgFScQ==}
/@typescript-eslint/utils/5.48.1_iukboom6ndih5an6iafl45j2fe:
resolution: {integrity: sha512-SmQuSrCGUOdmGMwivW14Z0Lj8dxG1mOFZ7soeJ0TQZEJcs3n5Ndgkg0A4bcMFzBELqLJ6GTHnEU+iIoaD6hFGA==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
peerDependencies:
eslint: ^6.0.0 || ^7.0.0 || ^8.0.0
dependencies:
'@types/json-schema': 7.0.11
'@types/semver': 7.3.13
'@typescript-eslint/scope-manager': 5.48.0
'@typescript-eslint/types': 5.48.0
'@typescript-eslint/typescript-estree': 5.48.0_typescript@4.9.4
'@typescript-eslint/scope-manager': 5.48.1
'@typescript-eslint/types': 5.48.1
'@typescript-eslint/typescript-estree': 5.48.1_typescript@4.9.4
eslint: 8.31.0
eslint-scope: 5.1.1
eslint-utils: 3.0.0_eslint@8.31.0
@ -704,11 +710,11 @@ packages:
- typescript
dev: true
/@typescript-eslint/visitor-keys/5.48.0:
resolution: {integrity: sha512-5motVPz5EgxQ0bHjut3chzBkJ3Z3sheYVcSwS5BpHZpLqSptSmELNtGixmgj65+rIfhvtQTz5i9OP2vtzdDH7Q==}
/@typescript-eslint/visitor-keys/5.48.1:
resolution: {integrity: sha512-Ns0XBwmfuX7ZknznfXozgnydyR8F6ev/KEGePP4i74uL3ArsKbEhJ7raeKr1JSa997DBDwol/4a0Y+At82c9dA==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
dependencies:
'@typescript-eslint/types': 5.48.0
'@typescript-eslint/types': 5.48.1
eslint-visitor-keys: 3.3.0
dev: true
@ -1117,14 +1123,14 @@ packages:
eslint: 8.31.0
dev: true
/eslint-plugin-svelte3/4.0.0_6go7qzsvzihesfwmyvq3tnl5qq:
/eslint-plugin-svelte3/4.0.0_btuntbn75dxkba3nofpps2nvzm:
resolution: {integrity: sha512-OIx9lgaNzD02+MDFNLw0GEUbuovNcglg+wnd/UY0fbZmlQSz7GlQiQ1f+yX0XvC07XPcDOnFcichqI3xCwp71g==}
peerDependencies:
eslint: '>=8.0.0'
svelte: ^3.2.0
dependencies:
eslint: 8.31.0
svelte: 3.55.0
svelte: 3.55.1
dev: true
/eslint-scope/5.1.1:
@ -1463,6 +1469,12 @@ packages:
- supports-color
dev: true
/iconify-icon/1.0.2:
resolution: {integrity: sha512-mehAvz2a4eUAlPo76Wul4zzsPNr3hbOHiauMhPrTVIdLOt0AnccnNloh1EeTO3tYeBv7iaJZfdCPHczvi+CkXQ==}
dependencies:
'@iconify/types': 2.0.0
dev: false
/ignore/5.2.1:
resolution: {integrity: sha512-d2qQLzTJ9WxQftPAuEQpSPmKqzxePjzVbpAVv62AQ64NTL+wR4JkrVqR/LqFsFEUsHDAiId52mJteHDFuDkElA==}
engines: {node: '>= 4'}
@ -1990,14 +2002,14 @@ packages:
engines: {node: '>= 0.8.0'}
dev: true
/prettier-plugin-svelte/2.9.0_74vfyr7qjo56zgjcvkwi6gyjxm:
/prettier-plugin-svelte/2.9.0_y74x4qymbshr6ujrzcfe2sydsa:
resolution: {integrity: sha512-3doBi5NO4IVgaNPtwewvrgPpqAcvNv0NwJNflr76PIGgi9nf1oguQV1Hpdm9TI2ALIQVn/9iIwLpBO5UcD2Jiw==}
peerDependencies:
prettier: ^1.16.4 || ^2.0.0
svelte: ^3.2.0
dependencies:
prettier: 2.8.2
svelte: 3.55.0
svelte: 3.55.1
dev: true
/prettier/2.8.2:
@ -2257,7 +2269,7 @@ packages:
engines: {node: '>= 0.4'}
dev: true
/svelte-check/2.10.3_2ucm3gises2g7s47d5nd3e3tqa:
/svelte-check/2.10.3_mraflicfyjy3x4taxigiwsr23i:
resolution: {integrity: sha512-Nt1aWHTOKFReBpmJ1vPug0aGysqPwJh2seM1OvICfM2oeyaA62mOiy5EvkXhltGfhCcIQcq2LoE0l1CwcWPjlw==}
hasBin: true
peerDependencies:
@ -2269,8 +2281,8 @@ packages:
import-fresh: 3.3.0
picocolors: 1.0.0
sade: 1.8.1
svelte: 3.55.0
svelte-preprocess: 4.10.7_vsntmwrrlk5avk6zexsfqc76hy
svelte: 3.55.1
svelte-preprocess: 4.10.7_kmnkm63hwcse26ffcjvrch7uda
typescript: 4.9.4
transitivePeerDependencies:
- '@babel/core'
@ -2285,20 +2297,20 @@ packages:
- sugarss
dev: true
/svelte-hmr/0.15.1_svelte@3.55.0:
/svelte-hmr/0.15.1_svelte@3.55.1:
resolution: {integrity: sha512-BiKB4RZ8YSwRKCNVdNxK/GfY+r4Kjgp9jCLEy0DuqAKfmQtpL38cQK3afdpjw4sqSs4PLi3jIPJIFp259NkZtA==}
engines: {node: ^12.20 || ^14.13.1 || >= 16}
peerDependencies:
svelte: '>=3.19.0'
dependencies:
svelte: 3.55.0
svelte: 3.55.1
dev: true
/svelte-lazy-loader/1.0.0:
resolution: {integrity: sha512-AZD6R60vksyojn21FgXLglmBiBB9K5Dkdu0hdGrLbCaRCYT68IsWkZfRUqKhMx1IfzqWcZQ8X9y/f+Ih0oNQkQ==}
dev: false
/svelte-preprocess/4.10.7_vsntmwrrlk5avk6zexsfqc76hy:
/svelte-preprocess/4.10.7_kmnkm63hwcse26ffcjvrch7uda:
resolution: {integrity: sha512-sNPBnqYD6FnmdBrUmBCaqS00RyCsCpj2BG58A1JBswNF7b0OKviwxqVrOL/CKyJrLSClrSeqQv5BXNg2RUbPOw==}
engines: {node: '>= 9.11.2'}
requiresBuild: true
@ -2348,12 +2360,12 @@ packages:
sass: 1.57.1
sorcery: 0.10.0
strip-indent: 3.0.0
svelte: 3.55.0
svelte: 3.55.1
typescript: 4.9.4
dev: true
/svelte/3.55.0:
resolution: {integrity: sha512-uGu2FVMlOuey4JoKHKrpZFkoYyj0VLjJdz47zX5+gVK5odxHM40RVhar9/iK2YFRVxvfg9FkhfVlR0sjeIrOiA==}
/svelte/3.55.1:
resolution: {integrity: sha512-S+87/P0Ve67HxKkEV23iCdAh/SX1xiSfjF1HOglno/YTbSTW7RniICMCofWGdJJbdjw3S+0PfFb1JtGfTXE0oQ==}
engines: {node: '>= 8'}
dev: true
@ -2451,8 +2463,8 @@ packages:
hasBin: true
dev: true
/undici/5.14.0:
resolution: {integrity: sha512-yJlHYw6yXPPsuOH0x2Ib1Km61vu4hLiRRQoafs+WUgX1vO64vgnxiCEN9dpIrhZyHFsai3F0AEj4P9zy19enEQ==}
/undici/5.15.0:
resolution: {integrity: sha512-wCAZJDyjw9Myv+Ay62LAoB+hZLPW9SmKbQkbHIhMw/acKSlpn7WohdMUc/Vd4j1iSMBO0hWwU8mjB7a5p5bl8g==}
engines: {node: '>=12.18'}
dependencies:
busboy: 1.6.0
@ -2618,8 +2630,8 @@ packages:
engines: {node: '>=10'}
dev: true
/zod-to-json-schema/3.20.1_zod@3.20.2:
resolution: {integrity: sha512-U+zmNJUKqzv92E+LdEYv0g2LxBLks4HAwfC6cue8jXby5PAeSEPGO4xV9Sl4zmLYyFvJkm0FOfOs6orUO+AI1w==}
/zod-to-json-schema/3.20.2_zod@3.20.2:
resolution: {integrity: sha512-qka3UAXmVXD8z5SHkRU89UyHp8JHJW7zc8RQCpt7QloJOn6uijwkjUm8o+M/cF1IysmKc5gxac/QeDikaQMdzQ==}
peerDependencies:
zod: ^3.20.0
dependencies:

View file

@ -6,14 +6,16 @@ const postcssNested = require('postcss-nested');
const postcssEnvFunction = require('postcss-env-function');
const config = {
plugins: [
autoprefixer(),
postcssMediaMinmax,
customMedia,
atImport(),
postcssNested,
postcssEnvFunction(),
]
plugins: [
autoprefixer(),
postcssMediaMinmax,
customMedia,
atImport(),
postcssNested,
postcssEnvFunction({
importFrom: './environmentVariables.json'
})
]
};
module.exports = config;

View file

@ -17,6 +17,7 @@
border-radius: 4px;
margin: 0;
padding: 1rem;
min-width: 20rem;
max-width: 30rem;
background-color: var(--color-btn-primary-active);
}

View file

@ -1,4 +1,4 @@
import { writable } from 'svelte/store';
import { writable, type Writable } from 'svelte/store';
import type { SavedGameType } from '../types';
export const createSearchStore = (data: SavedGameType[]) => {
@ -16,8 +16,10 @@ export const createSearchStore = (data: SavedGameType[]) => {
};
export const searchHandler = (store) => {
console.log(`Store value: ${JSON.stringify(store)}`);
const searchTerm = store.search.toLowerCase() || '';
store.filtered = store.data.filter((item) => {
store.filtered = store.data.filter((item: SavedGameType) => {
return item.searchTerms.toLowerCase().includes(searchTerm);
});
};

View file

@ -4,6 +4,7 @@
import debounce from 'just-debounce-it';
import clone from 'just-clone';
import { Toy } from '@leveluptuts/svelte-toy';
import 'iconify-icon';
// import '../app.postcss';
import Analytics from '$lib/components/analytics.svelte';
import Header from '$lib/components/header/Header.svelte';
@ -42,6 +43,9 @@
if (!item?.searchTerms) {
item.searchTerms = `${item?.name?.toLowerCase()}`;
}
if (!item?.includeInRandom) {
item.includeInRandom = false;
}
}
wishlistStore.addAll(wishlist);
}

View file

@ -0,0 +1,12 @@
export const load: PageServerLoad = async ({ fetch, url }) => {
const searchParams = Object.fromEntries(url?.searchParams);
const q = searchParams?.q;
const limit = parseInt(searchParams?.limit) || 10;
const skip = parseInt(searchParams?.skip) || 0;
return {
q,
limit,
skip
};
};

View file

@ -8,6 +8,10 @@
import RemoveCollectionDialog from '$root/lib/components/dialog/RemoveCollectionDialog.svelte';
import RemoveWishlistDialog from '$root/lib/components/dialog/RemoveWishlistDialog.svelte';
import { createSearchStore, searchHandler } from '$root/lib/stores/search';
import type { PageData } from './$types';
export let data: PageData;
console.log(`Page data: ${JSON.stringify(data)}`)
let gameToRemove: GameType | SavedGameType;
let pageSize = 10;
@ -76,7 +80,7 @@
</svelte:head>
<h1>Your Collection</h1>
<input type="text" id="search" name="search" bind:value={$searchStore.search} />
<input type="text" id="search" name="search" placeholder="Search Your Collection" bind:value={$searchStore.search} />
<div class="games">
<div class="games-list">
@ -109,6 +113,7 @@
<style lang="scss">
h1 {
margin: 1.5rem 0rem;
width: 100%;
}

View file

@ -89,7 +89,7 @@
<div style="display: grid; gap: 1.5rem; place-content: center;">
{#if existsInCollection}
<Button size="md" kind="danger" icon on:click={() => removeFromCollection()}>
Remove from collection <MinusCircleIcon width="24" height="24" />
Remove from collection <iconify-icon icon="line-md:minus-circle" width="24" height="24"></iconify-icon>
</Button>
{:else}
<Button
@ -103,12 +103,12 @@
}
}}
>
Add to collection <PlusCircleIcon width="24" height="24" />
Add to collection <iconify-icon icon="line-md:plus-circle" width="24" height="24"></iconify-icon>
</Button>
{/if}
{#if existsInWishlist}
<Button size="md" kind="danger" icon on:click={() => removeFromWishList()}>
Remove from wishlist <MinusCircleIcon width="24" height="24" />
Remove from wishlist <iconify-icon icon="line-md:minus-circle" width="24" height="24"></iconify-icon>
</Button>
{:else}
<Button
@ -122,7 +122,7 @@
}
}}
>
Add to wishlist <PlusCircleIcon width="24" height="24" />
Add to wishlist n <iconify-icon icon="line-md:plus-circle" width="24" height="24"></iconify-icon>
</Button>
{/if}
</div>
@ -197,7 +197,7 @@
margin: 1rem;
place-items: center;
@media (max-width: 650px) {
@media (max-width: env(--medium-viewport)) {
grid-template-columns: 1fr;
place-items: center;
}
@ -208,11 +208,11 @@
grid-template-columns: 1fr 1fr;
gap: 0.5rem;
place-content: center;
p {
a, p {
margin: 1rem;
}
@media (max-width: 550px) {
@media (max-width: env(--xsmall-viewport)) {
grid-template-columns: 1fr;
}
}

View file

@ -72,7 +72,7 @@
</svelte:head>
<h1>Your Wishlist</h1>
<input type="text" id="search" name="search" bind:value={$searchStore.search} />
<input type="text" id="search" name="search" placeholder="Search Your Wishlist" bind:value={$searchStore.search} />
<div class="games">
<div class="games-list">
@ -105,6 +105,7 @@
<style lang="scss">
h1 {
margin: 1.5rem 0rem;
width: 100%;
}