feat(frontend): add react spa with wishlist flows and public profile

This commit is contained in:
Anton
2026-04-23 16:05:27 +03:00
parent 5f6a551b6c
commit 00f01611ed
44 changed files with 2166 additions and 0 deletions

View File

@@ -0,0 +1,37 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 240" width="320" height="240" role="img" aria-label="Gift box">
<defs>
<linearGradient id="bg" x1="0" y1="0" x2="1" y2="1">
<stop offset="0" stop-color="#FFF2EA" />
<stop offset="1" stop-color="#FFE2D1" />
</linearGradient>
<linearGradient id="box" x1="0" y1="0" x2="0" y2="1">
<stop offset="0" stop-color="#E27896" />
<stop offset="1" stop-color="#C85276" />
</linearGradient>
<linearGradient id="ribbon" x1="0" y1="0" x2="0" y2="1">
<stop offset="0" stop-color="#F4C04E" />
<stop offset="1" stop-color="#E0A21A" />
</linearGradient>
</defs>
<rect width="320" height="240" fill="url(#bg)" />
<g transform="translate(70 60)">
<!-- box body -->
<rect x="0" y="40" width="180" height="110" rx="10" fill="url(#box)" />
<rect x="0" y="36" width="180" height="16" rx="8" fill="#F2A1B6" />
<!-- vertical ribbon -->
<rect x="80" y="36" width="20" height="114" fill="url(#ribbon)" />
<!-- bow -->
<g transform="translate(90 22)">
<path d="M0 0 C-28 -24 -46 12 -20 14 L0 14 Z" fill="url(#ribbon)" />
<path d="M0 0 C28 -24 46 12 20 14 L0 14 Z" fill="url(#ribbon)" />
<circle cx="0" cy="10" r="6" fill="#F4C04E" stroke="#B7830D" stroke-width="1" />
</g>
<!-- sparkles -->
<g fill="#F4C04E" opacity="0.9">
<circle cx="-28" cy="18" r="3" />
<circle cx="210" cy="48" r="2.5" />
<circle cx="-18" cy="120" r="2" />
<circle cx="206" cy="130" r="3" />
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.5 KiB

View File

@@ -0,0 +1,28 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 260 240" width="260" height="240" role="img" aria-label="Empty wishlist">
<defs>
<linearGradient id="e-bg" x1="0" y1="0" x2="1" y2="1">
<stop offset="0" stop-color="#FFF2EA" stop-opacity="0" />
<stop offset="1" stop-color="#FFE2D1" stop-opacity="0.9" />
</linearGradient>
</defs>
<rect x="20" y="30" width="220" height="190" rx="20" fill="url(#e-bg)" stroke="#EBD7C6" stroke-dasharray="4 6" />
<g transform="translate(130 130)">
<circle r="54" fill="#FFE2D1" />
<circle r="54" fill="none" stroke="#F4C04E" stroke-opacity="0.5" stroke-width="2" />
<g transform="translate(-32 -30)">
<rect x="0" y="14" width="64" height="48" rx="6" fill="#E27896" />
<rect x="0" y="10" width="64" height="10" rx="4" fill="#F2A1B6" />
<rect x="28" y="10" width="8" height="52" fill="#F4C04E" />
<g transform="translate(32 4)">
<path d="M0 0 C-14 -12 -24 6 -10 8 L0 8 Z" fill="#F4C04E" />
<path d="M0 0 C14 -12 24 6 10 8 L0 8 Z" fill="#F4C04E" />
</g>
</g>
</g>
<g fill="#F4C04E" opacity="0.85">
<circle cx="40" cy="60" r="3" />
<circle cx="222" cy="82" r="2.5" />
<circle cx="52" cy="200" r="2" />
<circle cx="214" cy="186" r="3" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.3 KiB

View File

@@ -0,0 +1,12 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" width="64" height="64">
<rect width="64" height="64" rx="14" fill="#E27896" />
<g transform="translate(14 18)">
<rect x="0" y="12" width="36" height="22" rx="3" fill="#FFF1F6" />
<rect x="0" y="9" width="36" height="6" rx="2" fill="#F2A1B6" />
<rect x="15" y="9" width="6" height="25" fill="#F4C04E" />
<g transform="translate(18 5)">
<path d="M0 0 C-8 -7 -14 3 -6 5 L0 5 Z" fill="#F4C04E" />
<path d="M0 0 C8 -7 14 3 6 5 L0 5 Z" fill="#F4C04E" />
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 563 B