feat: initial commit — storefront, convex backend, and shared packages

Completes the first milestone of The Pet Loft ecommerce platform:
- apps/storefront: full customer-facing Next.js app with HeroUI (cart,
  checkout, orders, wishlist, product detail, shop, search, auth)
- convex/: serverless backend with schema, queries, mutations, actions,
  HTTP routes, Stripe/Shippo integrations, and co-located tests
- packages/types, packages/utils, packages/convex: shared workspace packages

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-04 09:31:18 +03:00
commit cc15338ad9
361 changed files with 45005 additions and 0 deletions

View File

@@ -0,0 +1,46 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
version="1.1"
id="Layer_1"
x="0px"
y="0px"
width="117.33741"
viewBox="0 0 117.33741 119.65257"
enable-background="new 0 0 672 672"
xml:space="preserve"
height="119.65257"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"><defs
id="defs9" />
<g
id="g12"
transform="matrix(0.79095488,0,0,0.79095488,-38.072758,-41.928473)"><path
fill="#000000"
opacity="1"
stroke="none"
d="m 144.14966,203.35962 c -11.20554,-5.06966 -15.78997,-13.6742 -13.81761,-25.55219 0.68418,-4.12034 -1.29447,-7.12321 -3.88311,-9.78566 C 115.07063,156.319 103.60671,144.69943 92.173012,133.05051 90.772758,131.6239 89.216141,130.32062 87.991936,128.75671 83.447472,122.95122 77.9851,120.46199 70.247513,121.0553 59.069221,121.91246 49.87006,113.0538 48.332176,101.41795 46.84869,90.193657 53.861641,79.834671 65.395103,77.409142 c 4.44719,-0.935265 6.005837,-2.492402 6.84105,-7.041428 2.051323,-11.17252 12.975273,-18.728569 23.447853,-17.149296 11.979684,1.806553 20.328124,12.105404 18.866214,24.140316 -0.76049,6.260727 1.06368,10.83458 5.44127,15.181358 12.88259,12.791868 25.54249,25.809188 38.21267,38.813168 4.18955,4.29992 8.63458,6.50767 15.07245,5.63742 10.37816,-1.4029 20.7359,7.07589 22.78113,17.6284 2.21402,11.4234 -4.37663,22.83697 -15.48192,25.63684 -4.64764,1.17177 -6.88744,2.58627 -7.95947,7.87975 -2.49674,12.3283 -14.97177,18.65519 -28.46669,15.22395 M 108.52586,79.751335 c 0.17073,-3.313164 0.66446,-6.624237 -0.58729,-9.876968 -2.87086,-7.460037 -9.813379,-11.708649 -17.323084,-10.51524 -7.543106,1.198715 -13.108192,7.824459 -13.304726,15.840488 -0.178756,7.291489 -0.178756,7.291489 -7.215637,7.203621 -7.072578,-0.08831 -10.996051,3.395661 -11.118591,9.873085 -0.195778,10.349079 6.083984,16.744469 16.728111,16.704739 6.137429,-0.0229 11.476944,1.60206 15.834603,6.05806 13.624054,13.93149 27.180894,27.93019 40.934724,41.73249 5.15669,5.17486 7.60759,10.90629 7.10084,18.346 -0.43415,6.37424 2.45295,11.7717 8.09308,15.06591 5.24286,3.06215 10.64217,1.94969 15.7518,-0.67325 2.46883,-1.26734 4.06693,-3.27248 4.32909,-6.26943 0.61209,-6.99763 0.67454,-6.99218 7.7458,-7.60096 8.95345,-0.77083 16.1115,-9.52301 15.13524,-18.50588 -0.88824,-8.17282 -9.35995,-15.92265 -16.91475,-14.46052 -8.27456,1.60144 -14.21913,-1.59835 -19.62736,-7.10628 -13.07373,-13.31477 -26.10248,-26.67452 -39.27059,-39.895401 -4.22946,-4.246422 -6.78296,-8.993286 -6.29126,-15.920464 z"
id="path1-9" /><path
fill="#000000"
opacity="1"
stroke="none"
d="m 98.062119,111.68851 c -0.152947,-3.60406 1.419845,-5.76871 4.405901,-6.71484 2.3823,-0.75482 4.63081,-0.13998 6.25625,1.83771 1.57589,1.9174 2.01563,4.11732 0.96341,6.47562 -1.04995,2.35319 -2.96438,3.59983 -5.44925,3.60466 -3.19039,0.006 -5.184536,-1.79558 -6.176311,-5.20315 z"
id="path2-20" /><path
fill="#000000"
opacity="1"
stroke="none"
d="m 116.55191,131.23082 c -1.24698,-4.2846 0.34399,-6.85281 4.04014,-8.01667 3.11951,-0.98228 5.53564,0.37035 6.94149,3.20184 1.55984,3.14161 0.64398,5.97091 -2.19243,7.73995 -3.60841,2.25052 -6.58835,1.0768 -8.7892,-2.92512 z"
id="path3-2" /><path
fill="#000000"
opacity="1"
stroke="none"
d="m 135.74579,151.32532 c -2.4355,-4.64391 -1.79547,-7.95854 1.69559,-9.51732 3.39224,-1.51464 6.28433,-0.62625 8.04557,2.65672 1.8248,3.40144 0.52428,6.18431 -2.55323,8.05007 -2.40172,1.45603 -4.79523,0.86216 -7.18793,-1.18947 z"
id="path4-37" /></g></svg>

After

Width:  |  Height:  |  Size: 3.5 KiB