@shopbite-de/storefront 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (136) hide show
  1. package/.dockerignore +28 -0
  2. package/.env.example +11 -0
  3. package/.github/workflows/build.yaml +48 -0
  4. package/.github/workflows/ci.yaml +102 -0
  5. package/.prettierignore +6 -0
  6. package/.prettierrc +1 -0
  7. package/api-types/storeApiSchema.json +13863 -0
  8. package/api-types/storeApiTypes.d.ts +7010 -0
  9. package/app/app.config.ts +18 -0
  10. package/app/app.vue +99 -0
  11. package/app/assets/css/main.css +60 -0
  12. package/app/assets/fonts/Courier_Prime/CourierPrime-Bold.ttf +0 -0
  13. package/app/assets/fonts/Courier_Prime/CourierPrime-BoldItalic.ttf +0 -0
  14. package/app/assets/fonts/Courier_Prime/CourierPrime-Italic.ttf +0 -0
  15. package/app/assets/fonts/Courier_Prime/CourierPrime-Regular.ttf +0 -0
  16. package/app/assets/fonts/Courier_Prime/OFL.txt +93 -0
  17. package/app/assets/fonts/Kalam/Kalam-Bold.ttf +0 -0
  18. package/app/assets/fonts/Kalam/Kalam-Light.ttf +0 -0
  19. package/app/assets/fonts/Kalam/Kalam-Regular.ttf +0 -0
  20. package/app/assets/fonts/Kalam/OFL.txt +93 -0
  21. package/app/assets/fonts/Marcellus/Marcellus-Regular.ttf +0 -0
  22. package/app/assets/fonts/Marcellus/OFL.txt +93 -0
  23. package/app/assets/fonts/Sora/OFL.txt +93 -0
  24. package/app/assets/fonts/Sora/README.txt +70 -0
  25. package/app/assets/fonts/Sora/Sora-VariableFont_wght.ttf +0 -0
  26. package/app/assets/fonts/Sora/static/Sora-Bold.ttf +0 -0
  27. package/app/assets/fonts/Sora/static/Sora-ExtraBold.ttf +0 -0
  28. package/app/assets/fonts/Sora/static/Sora-ExtraLight.ttf +0 -0
  29. package/app/assets/fonts/Sora/static/Sora-Light.ttf +0 -0
  30. package/app/assets/fonts/Sora/static/Sora-Medium.ttf +0 -0
  31. package/app/assets/fonts/Sora/static/Sora-Regular.ttf +0 -0
  32. package/app/assets/fonts/Sora/static/Sora-SemiBold.ttf +0 -0
  33. package/app/assets/fonts/Sora/static/Sora-Thin.ttf +0 -0
  34. package/app/components/AddToWishlist.vue +55 -0
  35. package/app/components/Address/Card.vue +32 -0
  36. package/app/components/Address/Detail.vue +22 -0
  37. package/app/components/Address/Form.vue +117 -0
  38. package/app/components/AnimatedSection.vue +77 -0
  39. package/app/components/BottomNavi.vue +63 -0
  40. package/app/components/Cart/Item.vue +112 -0
  41. package/app/components/Cart/QuickView.vue +55 -0
  42. package/app/components/Category/Header.vue +53 -0
  43. package/app/components/Category/Listing.vue +295 -0
  44. package/app/components/Checkout/DeliveryTimeSelect.vue +177 -0
  45. package/app/components/Checkout/LoginOrRegister.vue +43 -0
  46. package/app/components/Checkout/PaymentAndDelivery.vue +101 -0
  47. package/app/components/Checkout/PaymentMethod.vue +30 -0
  48. package/app/components/Checkout/ShippingMethod.vue +30 -0
  49. package/app/components/Checkout/Summary.vue +125 -0
  50. package/app/components/Cta.vue +34 -0
  51. package/app/components/Features.vue +36 -0
  52. package/app/components/Food/Marquee.vue +35 -0
  53. package/app/components/Food/MarqueeItem.vue +72 -0
  54. package/app/components/Footer.vue +51 -0
  55. package/app/components/Header.vue +160 -0
  56. package/app/components/Hero.vue +77 -0
  57. package/app/components/ImageGallery.vue +46 -0
  58. package/app/components/Loading.vue +29 -0
  59. package/app/components/Navigation/DesktopLeft.vue +51 -0
  60. package/app/components/Navigation/DesktopLeft2.vue +43 -0
  61. package/app/components/Navigation/MobileTop.vue +59 -0
  62. package/app/components/Navigation/MobileTop2.vue +42 -0
  63. package/app/components/Order/Detail.vue +84 -0
  64. package/app/components/Product/Card.vue +132 -0
  65. package/app/components/Product/Category.vue +153 -0
  66. package/app/components/Product/Configurator.vue +65 -0
  67. package/app/components/Product/CrossSelling.vue +95 -0
  68. package/app/components/Product/DeselectIngredient.vue +46 -0
  69. package/app/components/Product/Detail.vue +187 -0
  70. package/app/components/Product/SearchBar.vue +109 -0
  71. package/app/components/PublicAnnouncement.vue +17 -0
  72. package/app/components/Topseller.vue +43 -0
  73. package/app/components/User/Detail.vue +47 -0
  74. package/app/components/User/LoginForm.vue +105 -0
  75. package/app/components/User/RegistrationForm.vue +340 -0
  76. package/app/components/Wishlist.vue +102 -0
  77. package/app/composables/useDeliveryTime.ts +139 -0
  78. package/app/composables/useInterval.ts +15 -0
  79. package/app/composables/usePizzaToppings.ts +31 -0
  80. package/app/composables/useProductEvents.test.ts +111 -0
  81. package/app/composables/useProductEvents.ts +22 -0
  82. package/app/composables/useProductVariants.ts +61 -0
  83. package/app/composables/useScrollAnimation.ts +39 -0
  84. package/app/composables/useTopSellers.ts +34 -0
  85. package/app/error.vue +30 -0
  86. package/app/layouts/account.vue +74 -0
  87. package/app/layouts/default.vue +6 -0
  88. package/app/layouts/listing.vue +32 -0
  89. package/app/layouts/listing2.vue +8 -0
  90. package/app/middleware/trailing-slash.global.ts +19 -0
  91. package/app/pages/account/recover/password/index.vue +143 -0
  92. package/app/pages/anmelden.vue +32 -0
  93. package/app/pages/bestellung.vue +103 -0
  94. package/app/pages/c/[...all].vue +49 -0
  95. package/app/pages/index.vue +59 -0
  96. package/app/pages/konto/adressen.vue +135 -0
  97. package/app/pages/konto/bestellung/[id].vue +41 -0
  98. package/app/pages/konto/bestellungen.vue +53 -0
  99. package/app/pages/konto/index.vue +74 -0
  100. package/app/pages/konto/profil.vue +160 -0
  101. package/app/pages/merkliste.vue +11 -0
  102. package/app/pages/order/[id].vue +69 -0
  103. package/app/pages/passwort-vergessen.vue +103 -0
  104. package/app/pages/registrierung/bestaetigen.vue +44 -0
  105. package/app/pages/registrierung/index.vue +24 -0
  106. package/app/pages/speisekarte.vue +58 -0
  107. package/app/pages/unternehmen/[slug].vue +66 -0
  108. package/app/types/Association.d.ts +11 -0
  109. package/app/utils/businessHours.ts +119 -0
  110. package/app/utils/formatDate.ts +9 -0
  111. package/app/utils/holidays.ts +43 -0
  112. package/app/utils/storeHours.ts +8 -0
  113. package/app/utils/time.ts +20 -0
  114. package/app/validation/addressSchema.ts +34 -0
  115. package/app/validation/registrationSchema.ts +156 -0
  116. package/bun.dockerfile +60 -0
  117. package/compose.yml +17 -0
  118. package/container +7 -0
  119. package/content/index.yml +91 -0
  120. package/content/navigation.yml +67 -0
  121. package/content/unternehmen/agb.md +1 -0
  122. package/content/unternehmen/datenschutz.md +1 -0
  123. package/content/unternehmen/impressum.md +39 -0
  124. package/content.config.ts +134 -0
  125. package/eslint.config.mjs +8 -0
  126. package/node.dockerfile +33 -0
  127. package/nuxt.config.ts +153 -0
  128. package/package.json +70 -0
  129. package/public/dark/Logo.svg +32 -0
  130. package/public/favicon.ico +0 -0
  131. package/public/light/Logo.svg +32 -0
  132. package/renovate.json +4 -0
  133. package/server/tsconfig.json +3 -0
  134. package/shopware.d.ts +19 -0
  135. package/tsconfig.json +4 -0
  136. package/vitest.config.mts +26 -0
package/nuxt.config.ts ADDED
@@ -0,0 +1,153 @@
1
+ // https://v3.nuxtjs.org/api/configuration/nuxt.config
2
+ export default defineNuxtConfig({
3
+ app: {
4
+ head: {
5
+ title: "ShopBite Demo Shop",
6
+ htmlAttrs: {
7
+ lang: "de",
8
+ },
9
+ meta: [
10
+ { charset: "utf-8" },
11
+ { name: "viewport", content: "width=device-width, initial-scale=1" },
12
+ {
13
+ name: "description",
14
+ content: "Italienisch-deutsche Küche in Obertshausen",
15
+ },
16
+ {
17
+ property: "og:title",
18
+ content: "ShopBite - Demo Shop",
19
+ },
20
+ {
21
+ property: "og:description",
22
+ content: "Italienisch-deutsche Küche in Obertshausen",
23
+ },
24
+ ],
25
+ link: [{ rel: "icon", href: "/favicon.ico" }],
26
+ },
27
+ },
28
+ colorMode: {
29
+ preference: "light",
30
+ },
31
+ robots: {
32
+ disallow: [
33
+ "/unternehmen/impressum",
34
+ "/unternehmen/datenschutz",
35
+ "/unternehmen/agb",
36
+ "/impressum",
37
+ "/datenschutz",
38
+ "/agb",
39
+ "/merkliste",
40
+ "/passwort-vergessen",
41
+ "/account/recover/password",
42
+ ],
43
+ },
44
+
45
+ runtimeConfig: {
46
+ shopware: {},
47
+ apiClientConfig: {},
48
+ public: {
49
+ site: {
50
+ name: "Pizzeria La Fattoria",
51
+ description: "Italienisch-deutsche Küche in Obertshausen",
52
+ countryId: "",
53
+ },
54
+ storeUrl: "",
55
+ sentry: {
56
+ dsn: process.env.NUXT_PUBLIC_SENTRY_DSN,
57
+ },
58
+ },
59
+ },
60
+
61
+ routeRules: {
62
+ "/impressum": {
63
+ redirect: "/unternehmen/impressum",
64
+ },
65
+ "/datenschutz": {
66
+ redirect: "/unternehmen/datenschutz",
67
+ },
68
+ "/agb": {
69
+ redirect: "/unternehmen/agb",
70
+ },
71
+ "/merkliste": {
72
+ ssr: false,
73
+ },
74
+ "/registrierung/bestaetigen": {
75
+ ssr: false,
76
+ },
77
+ },
78
+
79
+ css: ["~/assets/css/main.css"],
80
+
81
+ shopware: {
82
+ endpoint: "",
83
+ accessToken: "",
84
+ devStorefrontUrl: "",
85
+ },
86
+
87
+ modules: [
88
+ "@shopware/nuxt-module",
89
+ "@nuxt/image",
90
+ "@nuxt/content",
91
+ "@nuxtjs/robots",
92
+ "@vite-pwa/nuxt",
93
+ "@sentry/nuxt/module",
94
+ "@nuxt/ui",
95
+ "@nuxtjs/plausible",
96
+ ...(process.env.NODE_ENV === "development"
97
+ ? ["@nuxt/test-utils/module", "@nuxt/eslint"]
98
+ : []),
99
+ ],
100
+
101
+ plausible: {
102
+ ignoredHostnames: ["localhost"],
103
+ },
104
+
105
+ content: {
106
+ experimental: { sqliteConnector: "native" },
107
+ },
108
+
109
+ pwa: {
110
+ manifest: {
111
+ name: "ShopBite",
112
+ short_name: "ShopBite",
113
+ theme_color: "#4d7c0f",
114
+ icons: [
115
+ {
116
+ src: "dark/Logo.svg",
117
+ sizes: "192x192",
118
+ type: "image/svg",
119
+ },
120
+ {
121
+ src: "dark/Logo.svg",
122
+ sizes: "512x512",
123
+ type: "image/svg",
124
+ },
125
+ {
126
+ src: "dark/Logo.svg",
127
+ sizes: "512x512",
128
+ type: "image/svg",
129
+ purpose: "any maskable",
130
+ },
131
+ ],
132
+ },
133
+ },
134
+
135
+ nitro: {
136
+ compressPublicAssets: {
137
+ gzip: true,
138
+ brotli: true,
139
+ },
140
+ minify: true,
141
+ },
142
+
143
+ devtools: { enabled: true },
144
+ extends: ["@shopware/composables/nuxt-layer"],
145
+ future: {
146
+ compatibilityVersion: 4,
147
+ },
148
+ compatibilityDate: "2025-07-15",
149
+
150
+ experimental: {
151
+ asyncContext: true,
152
+ },
153
+ });
package/package.json ADDED
@@ -0,0 +1,70 @@
1
+ {
2
+ "name": "@shopbite-de/storefront",
3
+ "version": "1.1.0",
4
+ "main": "nuxt.config.ts",
5
+ "description": "Shopware storefront for food delivery shops",
6
+ "keywords": [
7
+ "shopware",
8
+ "storefront",
9
+ "nuxt",
10
+ "vue",
11
+ "food delivery"
12
+ ],
13
+ "author": "@veliu",
14
+ "license": "MIT",
15
+ "type": "module",
16
+ "scripts": {
17
+ "build": "nuxt build",
18
+ "dev": "nuxt dev",
19
+ "generate": "nuxt generate",
20
+ "preview": "nuxt preview",
21
+ "postinstall": "nuxt prepare",
22
+ "test": "vitest run --coverage",
23
+ "test:ui": "vitest --ui",
24
+ "eslint": "eslint .",
25
+ "eslint:fix": "eslint --fix app/",
26
+ "prettier": "prettier --check \"**/*.{ts,tsx,md,vue}\"",
27
+ "prettier:fix": "prettier --check \"**/*.{ts,tsx,md,vue}\" --write",
28
+ "generate-types": "shopware-api-gen generate --apiType=store",
29
+ "load-schema": "bunx @shopware/api-gen loadSchema --apiType=store",
30
+ "lint:fix": "npm run prettier:fix && npm run eslint:fix"
31
+ },
32
+ "dependencies": {
33
+ "@headlessui/vue": "^1.7.23",
34
+ "@heroicons/vue": "^2.2.0",
35
+ "@iconify-json/lucide": "^1.2.73",
36
+ "@iconify-json/simple-icons": "^1.2.59",
37
+ "@nuxt/content": "^3.8.2",
38
+ "@nuxt/image": "^1.11.0",
39
+ "@nuxt/ui": "^4.1.0",
40
+ "@nuxtjs/plausible": "2.0.1",
41
+ "@nuxtjs/robots": "^5.5.6",
42
+ "@sentry/nuxt": "^10.25.0",
43
+ "@shopware/api-client": "^1.3.0",
44
+ "@shopware/api-gen": "^1.3.3",
45
+ "@shopware/composables": "^1.9.1",
46
+ "@shopware/helpers": "^1.5.0",
47
+ "@shopware/nuxt-module": "^1.4.1",
48
+ "@tailwindcss/vite": "^4.1.17",
49
+ "@unhead/vue": "^2.0.19",
50
+ "@vite-pwa/nuxt": "^1.0.7",
51
+ "@vueuse/core": "^13.9.0",
52
+ "nuxt": "^4.2.1",
53
+ "uuid": "^13.0.0"
54
+ },
55
+ "devDependencies": {
56
+ "@nuxt/eslint": "^1.10.0",
57
+ "@nuxt/test-utils": "^3.20.1",
58
+ "@vitejs/plugin-vue": "^6.0.1",
59
+ "@vitest/coverage-v8": "4.0.5",
60
+ "@vue/test-utils": "^2.4.6",
61
+ "eslint": "^9.39.1",
62
+ "happy-dom": "^20.0.10",
63
+ "jsdom": "^27.2.0",
64
+ "playwright-core": "^1.56.1",
65
+ "prettier": "^3.6.2",
66
+ "typescript": "^5.9.3",
67
+ "vitest": "^4.0.10"
68
+ },
69
+ "packageManager": "pnpm@10.20.0"
70
+ }
@@ -0,0 +1,32 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <svg xmlns="http://www.w3.org/2000/svg" version="1.1" viewBox="0 0 324.59 103.19">
3
+ <defs>
4
+ <style>
5
+ .cls-1 {
6
+ fill: #fff;
7
+ }
8
+
9
+ .cls-2 {
10
+ fill: #ff5b00;
11
+ }
12
+ </style>
13
+ </defs>
14
+ <!-- Generator: Adobe Illustrator 28.7.1, SVG Export Plug-In . SVG Version: 1.2.0 Build 142) -->
15
+ <g>
16
+ <g id="Ebene_1">
17
+ <g>
18
+ <g>
19
+ <path class="cls-1" d="M48.94,47.64c-1.33-1.78-3.08-3.11-5.23-3.98-2.16-.87-4.8-1.61-7.95-2.19-3.11-.59-5.4-1.1-6.89-1.51-1.48-.43-2.62-1-3.44-1.69-.81-.69-1.2-1.68-1.2-2.93,0-1.76.67-3.11,2.02-4.05,1.33-.95,3.14-1.41,5.38-1.41,2.43,0,4.39.61,5.87,1.84,1.48,1.25,2.34,2.88,2.57,4.9h9.9c-.03-2.85-.86-5.38-2.45-7.63-1.6-2.24-3.78-4.01-6.55-5.28-2.76-1.28-5.87-1.92-9.34-1.92s-6.38.61-9.06,1.86c-2.68,1.23-4.77,2.93-6.27,5.08-1.51,2.15-2.25,4.61-2.25,7.35,0,3.01.66,5.43,1.97,7.24,1.33,1.83,3.06,3.21,5.17,4.13,2.12.92,4.72,1.66,7.83,2.25,3.14.63,5.46,1.15,6.97,1.58,1.5.43,2.66,1.02,3.5,1.76.84.74,1.25,1.74,1.25,2.99,0,1.81-.76,3.21-2.25,4.21-1.51,1.02-3.45,1.53-5.84,1.53-2.88,0-5.18-.71-6.91-2.14-1.73-1.41-2.7-3.29-2.86-5.63l-9.92-.13c.05,3.01.9,5.72,2.57,8.16,1.66,2.43,3.96,4.33,6.91,5.69,2.94,1.38,6.3,2.06,10.08,2.06,3.5,0,6.66-.64,9.48-1.94,2.8-1.32,5-3.09,6.56-5.36,1.58-2.27,2.37-4.85,2.37-7.73s-.66-5.33-1.99-7.11Z"/>
20
+ <path class="cls-1" d="M86.1,38.1c-2.63-2.52-6-3.78-10.08-3.78s-7.7,1.56-10.25,4.66v-16.8h-9.51v47.21h9.51v-17.8c0-2.98.67-5.28,2.06-6.96,1.37-1.66,3.27-2.48,5.69-2.48s4.1.76,5.26,2.25c1.17,1.51,1.74,3.7,1.74,6.58v18.41h9.51v-18.82c0-5.79-1.3-9.95-3.93-12.47Z"/>
21
+ <path class="cls-1" d="M128.98,42.76c-1.51-2.7-3.65-4.79-6.42-6.25-2.76-1.45-5.95-2.19-9.61-2.19s-6.84.74-9.61,2.19c-2.76,1.46-4.9,3.55-6.4,6.25-1.51,2.7-2.27,5.79-2.27,9.29s.76,6.61,2.27,9.31c1.5,2.7,3.64,4.79,6.4,6.23,2.76,1.46,5.97,2.19,9.61,2.19s6.84-.72,9.61-2.19c2.76-1.45,4.9-3.52,6.42-6.2,1.5-2.66,2.25-5.79,2.25-9.34s-.76-6.6-2.25-9.29ZM119.26,59.27c-1.55,1.84-3.65,2.76-6.3,2.76s-4.69-.92-6.23-2.76-2.32-4.24-2.32-7.22.77-5.36,2.32-7.21,3.64-2.76,6.23-2.76,4.75.92,6.3,2.76c1.56,1.84,2.34,4.24,2.34,7.21s-.77,5.38-2.34,7.22Z"/>
22
+ <path class="cls-1" d="M172.3,48.89c-.13-1.02-.33-1.99-.59-2.93-.33-1.12-.74-2.19-1.25-3.21-1.38-2.7-3.26-4.79-5.68-6.25-2.4-1.45-5.15-2.19-8.26-2.19-2.39,0-4.47.48-6.3,1.41-1.83.95-3.32,2.2-4.49,3.78l-.94-4.79h-8.29v48.15h9.51v-17.88c2.52,3.21,6,4.79,10.45,4.79,3.11,0,5.87-.72,8.29-2.19,2.43-1.45,4.33-3.52,5.71-6.17,1.37-2.65,2.06-5.76,2.06-9.31,0-1.12-.07-2.19-.21-3.22ZM160.5,59.24c-1.58,1.86-3.64,2.8-6.2,2.8s-4.61-.92-6.14-2.76c-1.53-1.84-2.29-4.28-2.29-7.29s.76-5.36,2.29-7.17c1.53-1.83,3.57-2.73,6.14-2.73s4.62.9,6.2,2.73c1.58,1.81,2.37,4.21,2.37,7.17s-.79,5.4-2.37,7.25Z"/>
23
+ <path class="cls-1" d="M229.25,48.55c-1.91-1.79-4.61-2.91-8.13-3.37,2.98-.54,5.26-1.71,6.88-3.5,1.63-1.79,2.43-4.16,2.43-7.07,0-3.96-1.51-7.02-4.52-9.18-3.01-2.15-7.25-3.24-12.73-3.24h-17.95v1.38c0,3.63,2.95,6.58,6.58,6.58h11.63c2.15,0,3.85.53,5.05,1.55,1.22,1.04,1.83,2.43,1.83,4.19s-.61,3.14-1.83,4.18c-1.2,1.04-2.9,1.55-5.05,1.55h-11.63c-3.63,0-6.58,2.95-6.58,6.58v21.2h18.82c5.76,0,10.2-1.18,13.36-3.54,3.14-2.37,4.72-5.61,4.72-9.75,0-3.22-.97-5.74-2.88-7.55ZM219.74,59.82c-1.32,1.04-3.19,1.55-5.63,1.55h-8.77v-11.94h8.77c2.39,0,4.24.54,5.59,1.6,1.35,1.05,2.02,2.55,2.02,4.47s-.66,3.29-1.99,4.33Z"/>
24
+ <path class="cls-1" d="M238.05,34.73v34.66h9.51v-34.66h-9.51ZM246.75,21.82c-1.04-1.02-2.34-1.51-3.92-1.51s-2.88.49-3.93,1.51c-1.07,1-1.6,2.29-1.6,3.8s.53,2.81,1.6,3.85c1.05,1.04,2.37,1.55,3.93,1.55s2.88-.51,3.92-1.55c1.04-1.04,1.55-2.32,1.55-3.85s-.51-2.8-1.55-3.8Z"/>
25
+ <path class="cls-1" d="M269.27,61.36c-1.22,0-2.07-.26-2.6-.81-.51-.54-.77-1.41-.77-2.63v-15.17h7.9v-8.03h-7.9v-9.71h-9.51v9.71h-5.72v8.03h5.72v16.71c0,6.61,3.31,9.92,9.92,9.92h7.9v-8.03h-4.94Z"/>
26
+ <path class="cls-1" d="M311.35,54.22c.18-.95.28-2.02.28-3.24-.05-3.37-.82-6.3-2.34-8.8-1.5-2.5-3.6-4.43-6.27-5.81-2.68-1.37-5.77-2.06-9.28-2.06s-6.5.74-9.13,2.19c-2.63,1.46-4.67,3.54-6.14,6.22-1.46,2.66-2.19,5.81-2.19,9.39s.74,6.68,2.25,9.34c1.5,2.68,3.67,4.74,6.46,6.17,2.81,1.45,6.15,2.15,10.02,2.15,2.98,0,5.59-.53,7.9-1.58,2.29-1.05,4.13-2.5,5.53-4.34,1.4-1.84,2.27-3.92,2.63-6.2h-9.38c-.41,1.61-1.25,2.83-2.53,3.67-1.28.84-2.88,1.25-4.82,1.25-2.42,0-4.34-.72-5.72-2.15-1.4-1.45-2.2-3.42-2.43-5.94v-.26h25.15ZM288.93,43.19c1.41-1.18,3.16-1.78,5.23-1.78s3.95.56,5.36,1.71c1.41,1.15,2.27,2.78,2.6,4.89h-15.73c.28-2.02,1.12-3.62,2.53-4.82Z"/>
27
+ </g>
28
+ <path class="cls-2" d="M201.49,35.93c-5.83,1.79-10.39,6.49-11.97,12.42-1.58-5.92-6.13-10.63-11.97-12.42,5.83-1.79,10.39-6.49,11.97-12.42,1.58,5.92,6.13,10.63,11.97,12.42Z"/>
29
+ </g>
30
+ </g>
31
+ </g>
32
+ </svg>
Binary file
@@ -0,0 +1,32 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <svg xmlns="http://www.w3.org/2000/svg" version="1.1" viewBox="0 0 324.59 103.19">
3
+ <defs>
4
+ <style>
5
+ .cls-1 {
6
+ fill: #ff5b00;
7
+ }
8
+
9
+ .cls-2 {
10
+ fill: #3d3d3d;
11
+ }
12
+ </style>
13
+ </defs>
14
+ <!-- Generator: Adobe Illustrator 28.7.1, SVG Export Plug-In . SVG Version: 1.2.0 Build 142) -->
15
+ <g>
16
+ <g id="Ebene_1">
17
+ <g>
18
+ <g>
19
+ <path class="cls-2" d="M48.94,47.64c-1.33-1.78-3.08-3.11-5.23-3.98-2.16-.87-4.8-1.61-7.95-2.19-3.11-.59-5.4-1.1-6.89-1.51-1.48-.43-2.62-1-3.44-1.69-.81-.69-1.2-1.68-1.2-2.93,0-1.76.67-3.11,2.02-4.05,1.33-.95,3.14-1.41,5.38-1.41,2.43,0,4.39.61,5.87,1.84,1.48,1.25,2.34,2.88,2.57,4.9h9.9c-.03-2.85-.86-5.38-2.45-7.63-1.6-2.24-3.78-4.01-6.55-5.28-2.76-1.28-5.87-1.92-9.34-1.92s-6.38.61-9.06,1.86c-2.68,1.23-4.77,2.93-6.27,5.08-1.51,2.15-2.25,4.61-2.25,7.35,0,3.01.66,5.43,1.97,7.24,1.33,1.83,3.06,3.21,5.17,4.13,2.12.92,4.72,1.66,7.83,2.25,3.14.63,5.46,1.15,6.97,1.58,1.5.43,2.66,1.02,3.5,1.76.84.74,1.25,1.74,1.25,2.99,0,1.81-.76,3.21-2.25,4.21-1.51,1.02-3.45,1.53-5.84,1.53-2.88,0-5.18-.71-6.91-2.14-1.73-1.41-2.7-3.29-2.86-5.63l-9.92-.13c.05,3.01.9,5.72,2.57,8.16,1.66,2.43,3.96,4.33,6.91,5.69,2.94,1.38,6.3,2.06,10.08,2.06,3.5,0,6.66-.64,9.48-1.94,2.8-1.32,5-3.09,6.56-5.36,1.58-2.27,2.37-4.85,2.37-7.73s-.66-5.33-1.99-7.11Z"/>
20
+ <path class="cls-2" d="M86.1,38.1c-2.63-2.52-6-3.78-10.08-3.78s-7.7,1.56-10.25,4.66v-16.8h-9.51v47.21h9.51v-17.8c0-2.98.67-5.28,2.06-6.96,1.37-1.66,3.27-2.48,5.69-2.48s4.1.76,5.26,2.25c1.17,1.51,1.74,3.7,1.74,6.58v18.41h9.51v-18.82c0-5.79-1.3-9.95-3.93-12.47Z"/>
21
+ <path class="cls-2" d="M128.98,42.76c-1.51-2.7-3.65-4.79-6.42-6.25-2.76-1.45-5.95-2.19-9.61-2.19s-6.84.74-9.61,2.19c-2.76,1.46-4.9,3.55-6.4,6.25-1.51,2.7-2.27,5.79-2.27,9.29s.76,6.61,2.27,9.31c1.5,2.7,3.64,4.79,6.4,6.23,2.76,1.46,5.97,2.19,9.61,2.19s6.84-.72,9.61-2.19c2.76-1.45,4.9-3.52,6.42-6.2,1.5-2.66,2.25-5.79,2.25-9.34s-.76-6.6-2.25-9.29ZM119.26,59.27c-1.55,1.84-3.65,2.76-6.3,2.76s-4.69-.92-6.23-2.76-2.32-4.24-2.32-7.22.77-5.36,2.32-7.21,3.64-2.76,6.23-2.76,4.75.92,6.3,2.76c1.56,1.84,2.34,4.24,2.34,7.21s-.77,5.38-2.34,7.22Z"/>
22
+ <path class="cls-2" d="M172.3,48.89c-.13-1.02-.33-1.99-.59-2.93-.33-1.12-.74-2.19-1.25-3.21-1.38-2.7-3.26-4.79-5.68-6.25-2.4-1.45-5.15-2.19-8.26-2.19-2.39,0-4.47.48-6.3,1.41-1.83.95-3.32,2.2-4.49,3.78l-.94-4.79h-8.29v48.15h9.51v-17.88c2.52,3.21,6,4.79,10.45,4.79,3.11,0,5.87-.72,8.29-2.19,2.43-1.45,4.33-3.52,5.71-6.17,1.37-2.65,2.06-5.76,2.06-9.31,0-1.12-.07-2.19-.21-3.22ZM160.5,59.24c-1.58,1.86-3.64,2.8-6.2,2.8s-4.61-.92-6.14-2.76c-1.53-1.84-2.29-4.28-2.29-7.29s.76-5.36,2.29-7.17c1.53-1.83,3.57-2.73,6.14-2.73s4.62.9,6.2,2.73c1.58,1.81,2.37,4.21,2.37,7.17s-.79,5.4-2.37,7.25Z"/>
23
+ <path class="cls-2" d="M229.25,48.55c-1.91-1.79-4.61-2.91-8.13-3.37,2.98-.54,5.26-1.71,6.88-3.5,1.63-1.79,2.43-4.16,2.43-7.07,0-3.96-1.51-7.02-4.52-9.18-3.01-2.15-7.25-3.24-12.73-3.24h-17.95v1.38c0,3.63,2.95,6.58,6.58,6.58h11.63c2.15,0,3.85.53,5.05,1.55,1.22,1.04,1.83,2.43,1.83,4.19s-.61,3.14-1.83,4.18c-1.2,1.04-2.9,1.55-5.05,1.55h-11.63c-3.63,0-6.58,2.95-6.58,6.58v21.2h18.82c5.76,0,10.2-1.18,13.36-3.54,3.14-2.37,4.72-5.61,4.72-9.75,0-3.22-.97-5.74-2.88-7.55ZM219.74,59.82c-1.32,1.04-3.19,1.55-5.63,1.55h-8.77v-11.94h8.77c2.39,0,4.24.54,5.59,1.6,1.35,1.05,2.02,2.55,2.02,4.47s-.66,3.29-1.99,4.33Z"/>
24
+ <path class="cls-2" d="M238.05,34.73v34.66h9.51v-34.66h-9.51ZM246.75,21.82c-1.04-1.02-2.34-1.51-3.92-1.51s-2.88.49-3.93,1.51c-1.07,1-1.6,2.29-1.6,3.8s.53,2.81,1.6,3.85c1.05,1.04,2.37,1.55,3.93,1.55s2.88-.51,3.92-1.55c1.04-1.04,1.55-2.32,1.55-3.85s-.51-2.8-1.55-3.8Z"/>
25
+ <path class="cls-2" d="M269.27,61.36c-1.22,0-2.07-.26-2.6-.81-.51-.54-.77-1.41-.77-2.63v-15.17h7.9v-8.03h-7.9v-9.71h-9.51v9.71h-5.72v8.03h5.72v16.71c0,6.61,3.31,9.92,9.92,9.92h7.9v-8.03h-4.94Z"/>
26
+ <path class="cls-2" d="M311.35,54.22c.18-.95.28-2.02.28-3.24-.05-3.37-.82-6.3-2.34-8.8-1.5-2.5-3.6-4.43-6.27-5.81-2.68-1.37-5.77-2.06-9.28-2.06s-6.5.74-9.13,2.19c-2.63,1.46-4.67,3.54-6.14,6.22-1.46,2.66-2.19,5.81-2.19,9.39s.74,6.68,2.25,9.34c1.5,2.68,3.67,4.74,6.46,6.17,2.81,1.45,6.15,2.15,10.02,2.15,2.98,0,5.59-.53,7.9-1.58,2.29-1.05,4.13-2.5,5.53-4.34,1.4-1.84,2.27-3.92,2.63-6.2h-9.38c-.41,1.61-1.25,2.83-2.53,3.67-1.28.84-2.88,1.25-4.82,1.25-2.42,0-4.34-.72-5.72-2.15-1.4-1.45-2.2-3.42-2.43-5.94v-.26h25.15ZM288.93,43.19c1.41-1.18,3.16-1.78,5.23-1.78s3.95.56,5.36,1.71c1.41,1.15,2.27,2.78,2.6,4.89h-15.73c.28-2.02,1.12-3.62,2.53-4.82Z"/>
27
+ </g>
28
+ <path class="cls-1" d="M201.49,35.93c-5.83,1.79-10.39,6.49-11.97,12.42-1.58-5.92-6.13-10.63-11.97-12.42,5.83-1.79,10.39-6.49,11.97-12.42,1.58,5.92,6.13,10.63,11.97,12.42Z"/>
29
+ </g>
30
+ </g>
31
+ </g>
32
+ </svg>
package/renovate.json ADDED
@@ -0,0 +1,4 @@
1
+ {
2
+ "$schema": "https://docs.renovatebot.com/renovate-schema.json",
3
+ "extends": ["config:recommended"]
4
+ }
@@ -0,0 +1,3 @@
1
+ {
2
+ "extends": "../.nuxt/tsconfig.server.json"
3
+ }
package/shopware.d.ts ADDED
@@ -0,0 +1,19 @@
1
+ declare module "#shopware" {
2
+ import type { createAPIClient } from "@shopware/api-client";
3
+
4
+ // for default types
5
+ // export type operations =
6
+ // import("@shopware/api-client/store-api-types").operations;
7
+ // or for locally generated types
8
+ export type operations = import("./api-types/storeApiTypes").operations;
9
+
10
+ // for default types
11
+ // export type Schemas =
12
+ // import("@shopware/api-client/store-api-types").components["schemas"];
13
+ // or for locally generated types
14
+ export type Schemas =
15
+ import("./api-types/storeApiTypes").components["schemas"];
16
+
17
+ // we're exporting our own Api Client definition as it depends on our own instance
18
+ export type ApiClient = ReturnType<typeof createAPIClient<operations>>;
19
+ }
package/tsconfig.json ADDED
@@ -0,0 +1,4 @@
1
+ {
2
+ // https://v3.nuxtjs.org/concepts/typescript
3
+ "extends": "./.nuxt/tsconfig.json",
4
+ }
@@ -0,0 +1,26 @@
1
+ import { defineVitestConfig } from '@nuxt/test-utils/config'
2
+
3
+ export default defineVitestConfig({
4
+ test: {
5
+ environment: 'nuxt',
6
+ exclude: ['.nuxt/**', 'node_modules/**', 'dist/**'],
7
+ globals: true,
8
+ domEnvironment: 'jsdom',
9
+ coverage: {
10
+ provider: 'v8',
11
+ reportsDirectory: 'coverage',
12
+ reporter: ['text', 'lcov'],
13
+ include: [
14
+ 'components/**',
15
+ 'composables/**',
16
+ 'helpers/**',
17
+ 'layouts/**',
18
+ 'middleware/**',
19
+ 'pages/**',
20
+ 'server/**',
21
+ 'store/**',
22
+ 'utils/**',
23
+ ],
24
+ },
25
+ },
26
+ })