diff --git a/shared/data/products.json b/shared/data/products.json
index 5640a0c..2d0138d 100644
--- a/shared/data/products.json
+++ b/shared/data/products.json
@@ -5,7 +5,12 @@
"description": "A healty protain bar for eazy foodz",
"brand": 1,
"price": { "value": 2399.95, "currency": "USD" },
- "image": "data:image/webp;base64,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",
+ "thumbnail": "/images/product/1-thumbnail.webp",
+ "images": [
+ "/images/product/1-1.webp",
+ "/images/product/1-2.webp",
+ "/images/product/1-3.webp"
+ ],
"properties": [ 1, 2 ],
"variations": [
{ "color": "white", "size": "xxs" },
diff --git a/solid-start/package.json b/solid-start/package.json
index d4abec4..7860d7e 100644
--- a/solid-start/package.json
+++ b/solid-start/package.json
@@ -7,10 +7,11 @@
"start": "vinxi start"
},
"dependencies": {
+ "@kobalte/core": "^0.12.1",
"@solidjs/router": "0.12.3",
"@solidjs/start": "0.5.9",
"solid-js": "1.8.15",
- "vinxi": "^0.3.0",
+ "vinxi": "^0.2",
"vite-plugin-mkcert": "^1.17.3"
},
"engines": {
diff --git a/solid-start/pnpm-lock.yaml b/solid-start/pnpm-lock.yaml
index de5436b..87bcb73 100644
--- a/solid-start/pnpm-lock.yaml
+++ b/solid-start/pnpm-lock.yaml
@@ -5,18 +5,21 @@ settings:
excludeLinksFromLockfile: false
dependencies:
+ '@kobalte/core':
+ specifier: ^0.12.1
+ version: 0.12.1(solid-js@1.8.15)
'@solidjs/router':
specifier: 0.12.3
version: 0.12.3(solid-js@1.8.15)
'@solidjs/start':
specifier: 0.5.9
- version: 0.5.9(solid-js@1.8.15)(vinxi@0.3.3)(vite@5.1.3)
+ version: 0.5.9(solid-js@1.8.15)(vinxi@0.2.1)(vite@5.1.3)
solid-js:
specifier: 1.8.15
version: 1.8.15
vinxi:
- specifier: ^0.3.0
- version: 0.3.3(lightningcss@1.23.0)(preact@10.19.5)
+ specifier: ^0.2
+ version: 0.2.1(lightningcss@1.23.0)(preact@10.19.5)
vite-plugin-mkcert:
specifier: ^1.17.3
version: 1.17.3(vite@5.1.3)
@@ -303,17 +306,6 @@ packages:
mime: 3.0.0
dev: false
- /@deno/shim-deno-test@0.5.0:
- resolution: {integrity: sha512-4nMhecpGlPi0cSzT67L+Tm+GOJqvuk8gqHBziqcUQOarnuIax1z96/gJHCSIz2Z0zhxE6Rzwb3IZXPtFh51j+w==}
- dev: false
-
- /@deno/shim-deno@0.19.1:
- resolution: {integrity: sha512-8hYIpmDqpG76sn+UY1853RCi+CI7ZWz9tt37nfyDL8rwr6xbW0+GHUwCLcsGbh1uMIKURuJy6xtrIcnW+a0duA==}
- dependencies:
- '@deno/shim-deno-test': 0.5.0
- which: 4.0.0
- dev: false
-
/@esbuild/aix-ppc64@0.19.12:
resolution: {integrity: sha512-bmoCYyWdEL3wDQIVbcyzRyeKLgk2WtWLTWz1ZIAZF/EGbNOwSA6ew3PftJ1PqMiOOGu0OyFMzG53L0zqIpPeNA==}
engines: {node: '>=12'}
@@ -724,6 +716,35 @@ packages:
engines: {node: '>=14'}
dev: false
+ /@floating-ui/core@1.6.0:
+ resolution: {integrity: sha512-PcF++MykgmTj3CIyOQbKA/hDzOAiqI3mhuoN44WRCopIs1sgoDoU4oty4Jtqaj/y3oDU6fnVSm4QG0a3t5i0+g==}
+ dependencies:
+ '@floating-ui/utils': 0.2.1
+ dev: false
+
+ /@floating-ui/dom@1.6.3:
+ resolution: {integrity: sha512-RnDthu3mzPlQ31Ss/BTwQ1zjzIhr3lk1gZB1OC56h/1vEtaXkESrOqL5fQVMfXpwGtRwX+YsZBdyHtJMQnkArw==}
+ dependencies:
+ '@floating-ui/core': 1.6.0
+ '@floating-ui/utils': 0.2.1
+ dev: false
+
+ /@floating-ui/utils@0.2.1:
+ resolution: {integrity: sha512-9TANp6GPoMtYzQdt54kfAyMmz1+osLlXdg2ENroU7zzrtflTLrrC/lgrIfaSe+Wu0b89GKccT7vxXA0MoAIO+Q==}
+ dev: false
+
+ /@internationalized/date@3.5.2:
+ resolution: {integrity: sha512-vo1yOMUt2hzp63IutEaTUxROdvQg1qlMRsbCvbay2AK2Gai7wIgCyK5weEX3nHkiLgo4qCXHijFNC/ILhlRpOQ==}
+ dependencies:
+ '@swc/helpers': 0.5.6
+ dev: false
+
+ /@internationalized/number@3.5.1:
+ resolution: {integrity: sha512-N0fPU/nz15SwR9IbfJ5xaS9Ss/O5h1sVXMZf43vc9mxEG48ovglvvzBjF53aHlq20uoR6c+88CrIXipU/LSzwg==}
+ dependencies:
+ '@swc/helpers': 0.5.6
+ dev: false
+
/@ioredis/commands@1.2.0:
resolution: {integrity: sha512-Sx1pU8EM64o2BrqNpEO1CNLtKQwyhuXuqyfH7oGKCk+1a33d2r5saW8zNwm3j6BTExtjrv2BxTgzzkMwts6vGg==}
dev: false
@@ -765,6 +786,33 @@ packages:
'@jridgewell/sourcemap-codec': 1.4.15
dev: false
+ /@kobalte/core@0.12.1(solid-js@1.8.15):
+ resolution: {integrity: sha512-/GvgH/jknZ/jr3qnc8PwnPnwNfp8pQHj9Ja0TjFUcTsnGKS/XoDXSWqCjiKOL3M6uBfZmmdn1A/3i3Na4w9Ujg==}
+ peerDependencies:
+ solid-js: ^1.7.11
+ dependencies:
+ '@floating-ui/dom': 1.6.3
+ '@internationalized/date': 3.5.2
+ '@internationalized/number': 3.5.1
+ '@kobalte/utils': 0.9.0(solid-js@1.8.15)
+ solid-js: 1.8.15
+ dev: false
+
+ /@kobalte/utils@0.9.0(solid-js@1.8.15):
+ resolution: {integrity: sha512-TYVCpQcpqo1+0HBn3NXoGEBzxd4tH6Um1oc07nrYw1V7Qq0qbMaYAOnfBc1qhlh7sGV4XZldmb0j13Of0FrZQg==}
+ peerDependencies:
+ solid-js: ^1.7.11
+ dependencies:
+ '@solid-primitives/event-listener': 2.3.1(solid-js@1.8.15)
+ '@solid-primitives/keyed': 1.2.1(solid-js@1.8.15)
+ '@solid-primitives/map': 0.4.9(solid-js@1.8.15)
+ '@solid-primitives/media': 2.2.6(solid-js@1.8.15)
+ '@solid-primitives/props': 3.1.9(solid-js@1.8.15)
+ '@solid-primitives/refs': 1.0.6(solid-js@1.8.15)
+ '@solid-primitives/utils': 6.2.2(solid-js@1.8.15)
+ solid-js: 1.8.15
+ dev: false
+
/@mapbox/node-pre-gyp@1.0.11:
resolution: {integrity: sha512-Yhlar6v9WQgUp/He7BdgzOz8lqMQ8sU+jkCq7Wx8Myc5YFJLbEe7lgui/V7G1qB1DJykHSGwreceSaD60Y0PUQ==}
hasBin: true
@@ -1082,7 +1130,7 @@ packages:
resolution: {integrity: sha512-2LuNTFBIO0m7kKIQvvPHN6UE63VjpmL9rnEEaOOaiSPbZK+zUOYIzBAWcED+3XYzhYsd/0mD57VdxAEqqV52CQ==}
dev: false
- /@preact/preset-vite@2.8.1(@babel/core@7.23.9)(preact@10.19.5)(vite@5.1.1):
+ /@preact/preset-vite@2.8.1(@babel/core@7.23.9)(preact@10.19.5)(vite@4.5.0):
resolution: {integrity: sha512-a9KV4opdj17X2gOFuGup0aE+sXYABX/tJi/QDptOrleX4FlnoZgDWvz45tHOdVfrZX+3uvVsIYPHxRsTerkDNA==}
peerDependencies:
'@babel/core': 7.x
@@ -1091,7 +1139,7 @@ packages:
'@babel/core': 7.23.9
'@babel/plugin-transform-react-jsx': 7.23.4(@babel/core@7.23.9)
'@babel/plugin-transform-react-jsx-development': 7.22.5(@babel/core@7.23.9)
- '@prefresh/vite': 2.4.5(preact@10.19.5)(vite@5.1.1)
+ '@prefresh/vite': 2.4.5(preact@10.19.5)(vite@4.5.0)
'@rollup/pluginutils': 4.2.1
babel-plugin-transform-hook-names: 1.0.2(@babel/core@7.23.9)
debug: 4.3.4
@@ -1099,7 +1147,7 @@ packages:
magic-string: 0.30.5
node-html-parser: 6.1.12
resolve: 1.22.8
- vite: 5.1.1(lightningcss@1.23.0)
+ vite: 4.5.0(lightningcss@1.23.0)
transitivePeerDependencies:
- preact
- supports-color
@@ -1121,7 +1169,7 @@ packages:
resolution: {integrity: sha512-KtC/fZw+oqtwOLUFM9UtiitB0JsVX0zLKNyRTA332sqREqSALIIQQxdUCS1P3xR/jT1e2e8/5rwH6gdcMLEmsQ==}
dev: false
- /@prefresh/vite@2.4.5(preact@10.19.5)(vite@5.1.1):
+ /@prefresh/vite@2.4.5(preact@10.19.5)(vite@4.5.0):
resolution: {integrity: sha512-iForDVJ2M8gQYnm5pHumvTEJjGGc7YNYC0GVKnHFL+GvFfKHfH9Rpq67nUAzNbjuLEpqEOUuQVQajMazWu2ZNQ==}
peerDependencies:
preact: ^10.4.0
@@ -1133,7 +1181,7 @@ packages:
'@prefresh/utils': 1.2.0
'@rollup/pluginutils': 4.2.1
preact: 10.19.5
- vite: 5.1.1(lightningcss@1.23.0)
+ vite: 4.5.0(lightningcss@1.23.0)
transitivePeerDependencies:
- supports-color
dev: false
@@ -1389,6 +1437,97 @@ packages:
engines: {node: '>=18'}
dev: false
+ /@solid-primitives/event-listener@2.3.1(solid-js@1.8.15):
+ resolution: {integrity: sha512-S1AfFYatOJ3g/ZUbGDoKplSGLTTfarQ3Mfd3F/fXb9SnzGtROtd+Y6yLkPVzK4AVw83r2wUSaS0GS6dg8izTEQ==}
+ peerDependencies:
+ solid-js: ^1.6.12
+ dependencies:
+ '@solid-primitives/utils': 6.2.2(solid-js@1.8.15)
+ solid-js: 1.8.15
+ dev: false
+
+ /@solid-primitives/keyed@1.2.1(solid-js@1.8.15):
+ resolution: {integrity: sha512-fLZ3CX41IiG2kshCWFMDBq4LeSuuHpZ91UrWqcr6EFq3lGWE5iPswHyHilSiaeLWZLpbhZ/HAwrM/wlh2S1mYQ==}
+ peerDependencies:
+ solid-js: ^1.6.12
+ dependencies:
+ solid-js: 1.8.15
+ dev: false
+
+ /@solid-primitives/map@0.4.9(solid-js@1.8.15):
+ resolution: {integrity: sha512-wMbIhfn24QDnNqJHRskFjKJ2bwvcx28/S0xBKoZdRdUaqIPZYWOVT8SM++dfWS44YdC2kJPF4RSTY1022aujLA==}
+ peerDependencies:
+ solid-js: ^1.6.12
+ dependencies:
+ '@solid-primitives/trigger': 1.0.9(solid-js@1.8.15)
+ solid-js: 1.8.15
+ dev: false
+
+ /@solid-primitives/media@2.2.6(solid-js@1.8.15):
+ resolution: {integrity: sha512-VopOSqoUZgmSFY4SNnwBzHYaoGG+7gQYcwX+RJ/qQtuZJgzOiC+PejZEwNJh+aBZ383HPwrypyd3zrYVm7EnpQ==}
+ peerDependencies:
+ solid-js: ^1.6.12
+ dependencies:
+ '@solid-primitives/event-listener': 2.3.1(solid-js@1.8.15)
+ '@solid-primitives/rootless': 1.4.3(solid-js@1.8.15)
+ '@solid-primitives/static-store': 0.0.6(solid-js@1.8.15)
+ '@solid-primitives/utils': 6.2.2(solid-js@1.8.15)
+ solid-js: 1.8.15
+ dev: false
+
+ /@solid-primitives/props@3.1.9(solid-js@1.8.15):
+ resolution: {integrity: sha512-2MvjgxF0rwMR8BGq2onN9KhxF66bQhtFWdrEkO/qjy8I4wr/OQrhwgM9RP89/gtzOVPXUYKSxt2lkCk+JQpNJA==}
+ peerDependencies:
+ solid-js: ^1.6.12
+ dependencies:
+ '@solid-primitives/utils': 6.2.2(solid-js@1.8.15)
+ solid-js: 1.8.15
+ dev: false
+
+ /@solid-primitives/refs@1.0.6(solid-js@1.8.15):
+ resolution: {integrity: sha512-ruh4YdVMxThEVnvqbpeLXKojW442vpFU8q7dSKtElGOTa31aKOAkRb9BTbdaTwVjN4BEq79fiiYIXozJNl4dSw==}
+ peerDependencies:
+ solid-js: ^1.6.12
+ dependencies:
+ '@solid-primitives/utils': 6.2.2(solid-js@1.8.15)
+ solid-js: 1.8.15
+ dev: false
+
+ /@solid-primitives/rootless@1.4.3(solid-js@1.8.15):
+ resolution: {integrity: sha512-IPsfUhKsqQOxLtRMQWK2EZAYbL9RKJMLBelLwpaXl9+oa1tl5aNvA6GHgrNrK+85oUhiYh7/OuogO18AuHepqQ==}
+ peerDependencies:
+ solid-js: ^1.6.12
+ dependencies:
+ '@solid-primitives/utils': 6.2.2(solid-js@1.8.15)
+ solid-js: 1.8.15
+ dev: false
+
+ /@solid-primitives/static-store@0.0.6(solid-js@1.8.15):
+ resolution: {integrity: sha512-PtvkbbucbjT+9p95pksOciG9gOnCtJz4IUyAKX1Ld7YwI+QgtPTo0Wuxs8gNbNtLtoDv5PNv5t4YRzUyl0fwdg==}
+ peerDependencies:
+ solid-js: ^1.6.12
+ dependencies:
+ '@solid-primitives/utils': 6.2.2(solid-js@1.8.15)
+ solid-js: 1.8.15
+ dev: false
+
+ /@solid-primitives/trigger@1.0.9(solid-js@1.8.15):
+ resolution: {integrity: sha512-hW9r8LkFQ0KSAtesSVUfZ9uIAuttslndgfJs+hD+SD1C5JwHyDm4sFoJKzahexh04iKX29JXmuDEjdjudIWqFQ==}
+ peerDependencies:
+ solid-js: ^1.6.12
+ dependencies:
+ '@solid-primitives/utils': 6.2.2(solid-js@1.8.15)
+ solid-js: 1.8.15
+ dev: false
+
+ /@solid-primitives/utils@6.2.2(solid-js@1.8.15):
+ resolution: {integrity: sha512-11ypVbp987XxETeRqY5Y3OmmTpm8/jZqJXRvo6AyqBthzkvvjEdReuUMU2yVb+pwWGxfZpWHZ6EUCcGXUMhfwg==}
+ peerDependencies:
+ solid-js: ^1.6.12
+ dependencies:
+ solid-js: 1.8.15
+ dev: false
+
/@solidjs/router@0.12.3(solid-js@1.8.15):
resolution: {integrity: sha512-s5HunmOt5BXt514kHD9aDbiQ6la33297h9XKUGuMKpzJD1wgXhWTm+HmtG3SXirRfGc0UJ3yDDhNoAD8b2Om1w==}
peerDependencies:
@@ -1405,12 +1544,12 @@ packages:
solid-js: 1.8.15
dev: false
- /@solidjs/start@0.5.9(solid-js@1.8.15)(vinxi@0.3.3)(vite@5.1.3):
+ /@solidjs/start@0.5.9(solid-js@1.8.15)(vinxi@0.2.1)(vite@5.1.3):
resolution: {integrity: sha512-NNDmre4EYPQ6ZklfFZl1s4uvmGhsC61CMkOxcdfWS3+KAS0GpF52my7IztApKw4h+adLFbBy3qkF7qi8aCfcjw==}
dependencies:
- '@vinxi/plugin-directives': 0.2.0(vinxi@0.3.3)
- '@vinxi/server-components': 0.2.0(vinxi@0.3.3)
- '@vinxi/server-functions': 0.2.1(vinxi@0.3.3)
+ '@vinxi/plugin-directives': 0.2.0(vinxi@0.2.1)
+ '@vinxi/server-components': 0.2.0(vinxi@0.2.1)
+ '@vinxi/server-functions': 0.2.1(vinxi@0.2.1)
defu: 6.1.4
error-stack-parser: 2.1.4
html-to-image: 1.11.11
@@ -1432,6 +1571,12 @@ packages:
- vite
dev: false
+ /@swc/helpers@0.5.6:
+ resolution: {integrity: sha512-aYX01Ke9hunpoCexYAgQucEpARGQ5w/cqHFrIR+e9gdKb1QWTsVJuTJ2ozQzIAxLyRQe/m+2RqzkyOOGiMKRQA==}
+ dependencies:
+ tslib: 2.6.2
+ dev: false
+
/@types/babel__core@7.20.5:
resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==}
dependencies:
@@ -1534,15 +1679,15 @@ packages:
- supports-color
dev: false
- /@vinxi/devtools@0.2.0(@babel/core@7.23.9)(preact@10.19.5)(vite@5.1.1):
+ /@vinxi/devtools@0.2.0(@babel/core@7.23.9)(preact@10.19.5)(vite@4.5.0):
resolution: {integrity: sha512-LpQp5zbiBhV4eo2w6AiJFtpZZj4LaRBOnzggIPTeSJYvgrxRMAqe/34Har3vVo+b7sPOjxFbE1zHZhLzaAcidw==}
dependencies:
- '@preact/preset-vite': 2.8.1(@babel/core@7.23.9)(preact@10.19.5)(vite@5.1.1)
+ '@preact/preset-vite': 2.8.1(@babel/core@7.23.9)(preact@10.19.5)(vite@4.5.0)
'@solidjs/router': 0.8.4(solid-js@1.8.15)
birpc: 0.2.15
solid-js: 1.8.15
- vite-plugin-inspect: 0.7.42(vite@5.1.1)
- vite-plugin-solid: 2.10.1(solid-js@1.8.15)(vite@5.1.1)
+ vite-plugin-inspect: 0.7.42(vite@4.5.0)
+ vite-plugin-solid: 2.10.1(solid-js@1.8.15)(vite@4.5.0)
ws: 8.16.0
transitivePeerDependencies:
- '@babel/core'
@@ -1579,7 +1724,7 @@ packages:
uqr: 0.1.2
dev: false
- /@vinxi/plugin-directives@0.2.0(vinxi@0.3.3):
+ /@vinxi/plugin-directives@0.2.0(vinxi@0.2.1):
resolution: {integrity: sha512-DoYuIuvdylU+0XNOipvcbw08XDBBbEksc3euCsbApNVpmQ/mC+2CjoErHtjb4zX1RqNwe1sJ8awMK6fKUMLGRA==}
peerDependencies:
vinxi: ^0.2.0
@@ -1593,37 +1738,37 @@ packages:
magicast: 0.2.11
recast: 0.23.4
tslib: 2.6.2
- vinxi: 0.3.3(lightningcss@1.23.0)(preact@10.19.5)
+ vinxi: 0.2.1(lightningcss@1.23.0)(preact@10.19.5)
dev: false
- /@vinxi/server-components@0.2.0(vinxi@0.3.3):
+ /@vinxi/server-components@0.2.0(vinxi@0.2.1):
resolution: {integrity: sha512-U3z6pxK5CWBxaUmyg7zdDMTl1AMa47MpYCUcs0QVOz/C8kKlT6C9Ozh5pZWuzAO0cTeueNpQumDWhQ4YTXTsZw==}
peerDependencies:
vinxi: ^0.2.0
dependencies:
- '@vinxi/plugin-directives': 0.2.0(vinxi@0.3.3)
+ '@vinxi/plugin-directives': 0.2.0(vinxi@0.2.1)
acorn: 8.11.3
acorn-loose: 8.4.0
acorn-typescript: 1.4.13(acorn@8.11.3)
astring: 1.8.6
magicast: 0.2.11
recast: 0.23.4
- vinxi: 0.3.3(lightningcss@1.23.0)(preact@10.19.5)
+ vinxi: 0.2.1(lightningcss@1.23.0)(preact@10.19.5)
dev: false
- /@vinxi/server-functions@0.2.1(vinxi@0.3.3):
+ /@vinxi/server-functions@0.2.1(vinxi@0.2.1):
resolution: {integrity: sha512-ir06Q6nEpJFU1uXqHdKE2OXqZFjChAIgAHpCJzMunHiutRNyYTJ7ZhbFCUk5xOx+StMpWKtqOv72TDeP/xTLtA==}
peerDependencies:
vinxi: ^0.2.1
dependencies:
- '@vinxi/plugin-directives': 0.2.0(vinxi@0.3.3)
+ '@vinxi/plugin-directives': 0.2.0(vinxi@0.2.1)
acorn: 8.11.3
acorn-loose: 8.4.0
acorn-typescript: 1.4.13(acorn@8.11.3)
astring: 1.8.6
magicast: 0.2.11
recast: 0.23.4
- vinxi: 0.3.3(lightningcss@1.23.0)(preact@10.19.5)
+ vinxi: 0.2.1(lightningcss@1.23.0)(preact@10.19.5)
dev: false
/abbrev@1.1.1:
@@ -2178,13 +2323,6 @@ packages:
resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==}
dev: false
- /dax-sh@0.39.1:
- resolution: {integrity: sha512-QrVpBGbcdQWFDXVHPjR9PcoZliKJc/sRP5RU1dL+YiJZ5ZiPnjTU7hOj3E3fUy+rCZmpUBMNFVfJQabTAGUUbA==}
- dependencies:
- '@deno/shim-deno': 0.19.1
- undici-types: 5.26.5
- dev: false
-
/debug@2.6.9:
resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==}
peerDependencies:
@@ -3130,11 +3268,6 @@ packages:
resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==}
dev: false
- /isexe@3.1.1:
- resolution: {integrity: sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==}
- engines: {node: '>=16'}
- dev: false
-
/jiti@1.21.0:
resolution: {integrity: sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==}
hasBin: true
@@ -4029,6 +4162,14 @@ packages:
yargs: 17.7.2
dev: false
+ /rollup@3.29.4:
+ resolution: {integrity: sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw==}
+ engines: {node: '>=14.18.0', npm: '>=8.0.0'}
+ hasBin: true
+ optionalDependencies:
+ fsevents: 2.3.3
+ dev: false
+
/rollup@4.12.0:
resolution: {integrity: sha512-wz66wn4t1OHIJw3+XU7mJJQV/2NAfw5OAk6G6Hoo3zcvz/XOfQ52Vgi+AN4Uxoxi0KBBwk2g8zPrTDA4btSB/Q==}
engines: {node: '>=18.0.0', npm: '>=8.0.0'}
@@ -4684,8 +4825,8 @@ packages:
resolution: {integrity: sha512-hGdgQozCsQJMyfK5urgFcWEqsSSrK63Awe0t/IMR0bZ0QMtnuaiHzThW81guu3qx9abLi99NEuiaN6P9gVYsNg==}
dev: false
- /vinxi@0.3.3(lightningcss@1.23.0)(preact@10.19.5):
- resolution: {integrity: sha512-0KYGeNowy9SU7K2F7DTI7H4aGAelKLHzzxthf6fdd6cmokFhHM8xZ+fooTTciplbSMccW2adtsrg9Ia61jaPDg==}
+ /vinxi@0.2.1(lightningcss@1.23.0)(preact@10.19.5):
+ resolution: {integrity: sha512-zrgFO2XuKpdoW5VwlbieeQ0YhzMuuYCJyFWFyj41h9BnymHZ5dnKElALvFQn5JVzHhyrsdmlm8GU7tIuH786hw==}
hasBin: true
dependencies:
'@babel/core': 7.23.9
@@ -4694,7 +4835,7 @@ packages:
'@types/micromatch': 4.0.6
'@types/serve-static': 1.15.5
'@types/ws': 8.5.10
- '@vinxi/devtools': 0.2.0(@babel/core@7.23.9)(preact@10.19.5)(vite@5.1.1)
+ '@vinxi/devtools': 0.2.0(@babel/core@7.23.9)(preact@10.19.5)(vite@4.5.0)
'@vinxi/listhen': 1.5.6
boxen: 7.1.1
c12: 1.8.0
@@ -4702,7 +4843,6 @@ packages:
citty: 0.1.6
consola: 3.2.3
cookie-es: 1.0.0
- dax-sh: 0.39.1
defu: 6.1.4
dts-buddy: 0.2.5
es-module-lexer: 1.4.1
@@ -4731,7 +4871,7 @@ packages:
unenv: 1.9.0
unimport: 3.7.1(rollup@4.12.0)
unstorage: 1.10.1
- vite: 5.1.1(lightningcss@1.23.0)
+ vite: 4.5.0(lightningcss@1.23.0)
ws: 8.16.0
zod: 3.22.4
transitivePeerDependencies:
@@ -4766,7 +4906,7 @@ packages:
- xml2js
dev: false
- /vite-plugin-inspect@0.7.42(vite@5.1.1):
+ /vite-plugin-inspect@0.7.42(vite@4.5.0):
resolution: {integrity: sha512-JCyX86wr3siQc+p9Kd0t8VkFHAJag0RaQVIpdFGSv5FEaePEVB6+V/RGtz2dQkkGSXQzRWrPs4cU3dRKg32bXw==}
engines: {node: '>=14'}
peerDependencies:
@@ -4784,7 +4924,7 @@ packages:
open: 9.1.0
picocolors: 1.0.0
sirv: 2.0.4
- vite: 5.1.1(lightningcss@1.23.0)
+ vite: 4.5.0(lightningcss@1.23.0)
transitivePeerDependencies:
- rollup
- supports-color
@@ -4829,7 +4969,7 @@ packages:
- supports-color
dev: false
- /vite-plugin-solid@2.10.1(solid-js@1.8.15)(vite@5.1.1):
+ /vite-plugin-solid@2.10.1(solid-js@1.8.15)(vite@4.5.0):
resolution: {integrity: sha512-kfVdNLWaJqaJVL52U6iCCKNW/nXE7bS1VVGOWPGllOkJfcNILymVSY0LCBLSnyy0iYnRtrXpiHm14rMuzeC7CA==}
peerDependencies:
'@testing-library/jest-dom': ^5.16.6 || ^5.17.0 || ^6.*
@@ -4845,8 +4985,8 @@ packages:
merge-anything: 5.1.7
solid-js: 1.8.15
solid-refresh: 0.6.3(solid-js@1.8.15)
- vite: 5.1.1(lightningcss@1.23.0)
- vitefu: 0.2.5(vite@5.1.1)
+ vite: 4.5.0(lightningcss@1.23.0)
+ vitefu: 0.2.5(vite@4.5.0)
transitivePeerDependencies:
- supports-color
dev: false
@@ -4873,12 +5013,12 @@ packages:
- supports-color
dev: false
- /vite@5.1.1(lightningcss@1.23.0):
- resolution: {integrity: sha512-wclpAgY3F1tR7t9LL5CcHC41YPkQIpKUGeIuT8MdNwNZr6OqOTLs7JX5vIHAtzqLWXts0T+GDrh9pN2arneKqg==}
- engines: {node: ^18.0.0 || >=20.0.0}
+ /vite@4.5.0(lightningcss@1.23.0):
+ resolution: {integrity: sha512-ulr8rNLA6rkyFAlVWw2q5YJ91v098AFQ2R0PRFwPzREXOUJQPtFUG0t+/ZikhaOCDqFoDhN6/v8Sq0o4araFAw==}
+ engines: {node: ^14.18.0 || >=16.0.0}
hasBin: true
peerDependencies:
- '@types/node': ^18.0.0 || >=20.0.0
+ '@types/node': '>= 14'
less: '*'
lightningcss: ^1.21.0
sass: '*'
@@ -4901,10 +5041,10 @@ packages:
terser:
optional: true
dependencies:
- esbuild: 0.19.12
+ esbuild: 0.18.20
lightningcss: 1.23.0
postcss: 8.4.35
- rollup: 4.12.0
+ rollup: 3.29.4
optionalDependencies:
fsevents: 2.3.3
dev: false
@@ -4945,7 +5085,7 @@ packages:
fsevents: 2.3.3
dev: false
- /vitefu@0.2.5(vite@5.1.1):
+ /vitefu@0.2.5(vite@4.5.0):
resolution: {integrity: sha512-SgHtMLoqaeeGnd2evZ849ZbACbnwQCIwRH57t18FxcXoZop0uQu0uzlIhJBlF/eWVzuce0sHeqPcDo+evVcg8Q==}
peerDependencies:
vite: ^3.0.0 || ^4.0.0 || ^5.0.0
@@ -4953,7 +5093,7 @@ packages:
vite:
optional: true
dependencies:
- vite: 5.1.1(lightningcss@1.23.0)
+ vite: 4.5.0(lightningcss@1.23.0)
dev: false
/vitefu@0.2.5(vite@5.1.3):
@@ -5006,14 +5146,6 @@ packages:
isexe: 2.0.0
dev: false
- /which@4.0.0:
- resolution: {integrity: sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==}
- engines: {node: ^16.13.0 || >=18.0.0}
- hasBin: true
- dependencies:
- isexe: 3.1.1
- dev: false
-
/wide-align@1.1.5:
resolution: {integrity: sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==}
dependencies:
diff --git a/solid-start/public/images/product/1-1.webp b/solid-start/public/images/product/1-1.webp
new file mode 100644
index 0000000..7509738
Binary files /dev/null and b/solid-start/public/images/product/1-1.webp differ
diff --git a/solid-start/public/images/product/1-2.webp b/solid-start/public/images/product/1-2.webp
new file mode 100644
index 0000000..c11ffbc
Binary files /dev/null and b/solid-start/public/images/product/1-2.webp differ
diff --git a/solid-start/public/images/product/1-3.webp b/solid-start/public/images/product/1-3.webp
new file mode 100644
index 0000000..f55f152
Binary files /dev/null and b/solid-start/public/images/product/1-3.webp differ
diff --git a/solid-start/public/images/product/1-thumbnail.webp b/solid-start/public/images/product/1-thumbnail.webp
new file mode 100644
index 0000000..6937f95
Binary files /dev/null and b/solid-start/public/images/product/1-thumbnail.webp differ
diff --git a/solid-start/src/app.tsx b/solid-start/src/app.tsx
index 6af5415..39159f4 100644
--- a/solid-start/src/app.tsx
+++ b/solid-start/src/app.tsx
@@ -8,8 +8,7 @@ import { AuthProvider } from './contexts/auth';
export default function App() {
return <>