spoko-design-system 0.5.6 → 0.5.7

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 (170) hide show
  1. package/.astro/data-store.json +1 -1
  2. package/.astro/settings.json +4 -4
  3. package/.github/dependabot.yml +11 -11
  4. package/.github/todo.yml +3 -3
  5. package/.github/workflows/deploy.yml +39 -39
  6. package/.stackblitzrc +5 -5
  7. package/.vscode/extensions.json +5 -5
  8. package/.vscode/launch.json +11 -11
  9. package/.vscode/settings.json +5 -5
  10. package/LICENSE +21 -21
  11. package/README.md +114 -114
  12. package/astro-i18next.config.mjs +17 -17
  13. package/astro-i18next.config.ts +10 -10
  14. package/astro.config.mjs +86 -86
  15. package/dev-dist/sw.js +91 -91
  16. package/dev-dist/workbox-c676b6d3.js +3391 -3391
  17. package/icon.config.ts +278 -278
  18. package/index.ts +65 -65
  19. package/package.json +2 -2
  20. package/public/fonts/lg.svg +53 -53
  21. package/public/fonts/vwhead-bold-demo.html +549 -549
  22. package/public/fonts/vwhead-regular-demo.html +549 -549
  23. package/public/fonts/vwtext-bold-demo.html +549 -549
  24. package/public/fonts/vwtext-regular-demo.html +549 -549
  25. package/public/github.svg +3 -3
  26. package/public/grid_dot.svg +4 -4
  27. package/public/linkedin.svg +44 -44
  28. package/public/locales/en/translation.json +8 -8
  29. package/public/locales/pl/translation.json +8 -8
  30. package/public/make-scrollable-code-focusable.js +3 -3
  31. package/public/pagefind.yml +3 -3
  32. package/public/polo.blue.svg +29 -29
  33. package/public/spoko.space.svg +71 -71
  34. package/public/twitter.svg +46 -46
  35. package/renovate.json +6 -6
  36. package/sandbox.config.json +11 -11
  37. package/src/MyComponent.astro +8 -8
  38. package/src/components/Badge.vue +19 -19
  39. package/src/components/Badges.vue +21 -21
  40. package/src/components/Breadcrumbs.vue +107 -107
  41. package/src/components/Button.vue +101 -101
  42. package/src/components/ButtonCopy.astro +183 -183
  43. package/src/components/ButtonCopy.vue +36 -36
  44. package/src/components/Card.astro +27 -27
  45. package/src/components/Carousel.astro +26 -26
  46. package/src/components/Category/CategoriesCarousel.astro +101 -101
  47. package/src/components/Category/CategoryDetails.astro +169 -169
  48. package/src/components/Category/CategorySidebarToggler.vue +9 -9
  49. package/src/components/Category/CategoryTile.astro +38 -38
  50. package/src/components/Category/CategoryViewToggler.astro +89 -89
  51. package/src/components/Category/SubCategoryLink.vue +19 -19
  52. package/src/components/Copyright.astro +12 -12
  53. package/src/components/Date.astro +7 -7
  54. package/src/components/Faq.astro +33 -33
  55. package/src/components/FaqItem.astro +80 -80
  56. package/src/components/FeaturesList.vue +41 -41
  57. package/src/components/FuckRussia.vue +62 -62
  58. package/src/components/HandDrive.astro +29 -29
  59. package/src/components/Header/Header.astro +210 -210
  60. package/src/components/Header/SkipToContent.astro +1 -1
  61. package/src/components/Headline.vue +48 -48
  62. package/src/components/Image.astro +30 -30
  63. package/src/components/Input.astro +2 -2
  64. package/src/components/LeftSidebar.astro +53 -53
  65. package/src/components/MainColors.vue +22 -22
  66. package/src/components/MainInput.vue +15 -15
  67. package/src/components/Modal.astro +27 -27
  68. package/src/components/PageContent.astro +5 -5
  69. package/src/components/PartNumber.vue +27 -27
  70. package/src/components/Post/PostCategories.astro +37 -37
  71. package/src/components/Post/PostCategories.vue +38 -38
  72. package/src/components/PostHeader.astro +103 -103
  73. package/src/components/PrCode.vue +141 -141
  74. package/src/components/Product/ProductButton.vue +18 -18
  75. package/src/components/Product/ProductCarousel.astro +35 -35
  76. package/src/components/Product/ProductCodes.vue +174 -174
  77. package/src/components/Product/ProductEngineType.vue +42 -42
  78. package/src/components/Product/ProductImage.astro +40 -40
  79. package/src/components/Product/ProductLink.astro +101 -101
  80. package/src/components/Product/ProductLink.vue +59 -59
  81. package/src/components/Product/ProductLinkInfo.astro +37 -37
  82. package/src/components/Product/ProductNumber.astro +60 -60
  83. package/src/components/ProductCarousel.astro +38 -38
  84. package/src/components/ProductCodes.vue +39 -39
  85. package/src/components/ProductDetailName.vue +52 -52
  86. package/src/components/ProductDetailsList.vue +65 -65
  87. package/src/components/ProductTile.astro +48 -48
  88. package/src/components/Quote.vue +23 -23
  89. package/src/components/ReloadPrompt.astro +50 -50
  90. package/src/components/SlimBanner.vue +72 -72
  91. package/src/components/Table.vue +32 -32
  92. package/src/components/TableOfContents.astro +15 -15
  93. package/src/components/Translations.vue +23 -23
  94. package/src/components/flags/FlagPL.vue +3 -3
  95. package/src/components/flags/FlagUA.vue +2 -2
  96. package/src/components/layout/Container.astro +7 -7
  97. package/src/components/layout/Header.astro +80 -80
  98. package/src/config.ts +56 -56
  99. package/src/design.config.ts +98 -98
  100. package/src/env.d.ts +6 -6
  101. package/src/layouts/Layout.astro +61 -61
  102. package/src/layouts/MainLayout.astro +81 -81
  103. package/src/layouts/partials/FooterCommon.astro +4 -4
  104. package/src/layouts/partials/HeadCommon.astro +44 -44
  105. package/src/layouts/partials/HeadSEO.astro +41 -41
  106. package/src/pages/components/badges.mdx +57 -57
  107. package/src/pages/components/breadcrumbs.mdx +139 -139
  108. package/src/pages/components/buttons.mdx +360 -360
  109. package/src/pages/components/card.mdx +294 -294
  110. package/src/pages/components/carousel.mdx +62 -62
  111. package/src/pages/components/copyright.mdx +42 -42
  112. package/src/pages/components/details-list.mdx +115 -115
  113. package/src/pages/components/features-list.mdx +37 -37
  114. package/src/pages/components/flags.mdx +49 -49
  115. package/src/pages/components/fuck-russia.mdx +39 -39
  116. package/src/pages/components/hand-drive.mdx +38 -38
  117. package/src/pages/components/headline.mdx +152 -152
  118. package/src/pages/components/icons.astro +135 -135
  119. package/src/pages/components/image.mdx +513 -513
  120. package/src/pages/components/input.mdx +84 -47
  121. package/src/pages/components/jumbotron.mdx +359 -359
  122. package/src/pages/components/modal.mdx +64 -64
  123. package/src/pages/components/post-header.mdx +60 -60
  124. package/src/pages/components/pr-code.mdx +65 -65
  125. package/src/pages/components/product-number.mdx +58 -58
  126. package/src/pages/components/product-tile.mdx +51 -51
  127. package/src/pages/components/quote.mdx +33 -33
  128. package/src/pages/components/slimbanner.mdx +35 -35
  129. package/src/pages/components/table.mdx +108 -108
  130. package/src/pages/core/colors.mdx +10 -10
  131. package/src/pages/core/grid.mdx +89 -89
  132. package/src/pages/core/introduction.mdx +77 -77
  133. package/src/pages/core/shadows.astro +20 -20
  134. package/src/pages/core/typography.astro +49 -49
  135. package/src/pages/index.astro +130 -130
  136. package/src/pages/patterns/introduction.mdx +60 -60
  137. package/src/pwa.ts +12 -12
  138. package/src/styles/_variables.scss +70 -70
  139. package/src/styles/base/base.css +184 -184
  140. package/src/styles/base/grid.css +92 -92
  141. package/src/styles/base/typography.css +70 -70
  142. package/src/styles/content.css +73 -73
  143. package/src/styles/main.css +7 -7
  144. package/src/types/Product.ts +31 -31
  145. package/src/types/astro.d.ts +3 -3
  146. package/src/utils/product/getPriceFormatted.ts +15 -15
  147. package/src/utils/product/getProductChecklist.ts +17 -17
  148. package/src/utils/product/useFormatProductNumber.ts +41 -41
  149. package/src/utils/seo/getShorterDescription.ts +14 -14
  150. package/src/utils/text/formatDate.ts +5 -5
  151. package/src/utils/text/formatLocaleNumber.ts +6 -6
  152. package/src/utils/text/formatPad.ts +12 -12
  153. package/src/utils/text/getNumberFormatted.ts +33 -33
  154. package/src/utils/text/getTranslatedLink.ts +5 -5
  155. package/src/utils/text.ts +19 -19
  156. package/tailwind.config.cjs +8 -8
  157. package/tsconfig.json +28 -28
  158. package/uno-config/index.ts +61 -61
  159. package/uno-config/theme/breakpoints.ts +9 -9
  160. package/uno-config/theme/colors.ts +64 -64
  161. package/uno-config/theme/dimensions.ts +17 -17
  162. package/uno-config/theme/effects.ts +14 -14
  163. package/uno-config/theme/grid.ts +10 -10
  164. package/uno-config/theme/index.ts +28 -28
  165. package/uno-config/theme/shortcuts/buttons.ts +53 -53
  166. package/uno-config/theme/shortcuts/components.ts +92 -92
  167. package/uno-config/theme/shortcuts/index.ts +18 -18
  168. package/uno-config/theme/shortcuts/layout.ts +64 -64
  169. package/uno-config/theme/typography.ts +29 -29
  170. package/uno.config.ts +2 -2
@@ -1,103 +1,103 @@
1
- ---
2
- interface Props {
3
- title: string;
4
- image: string;
5
- date?: string | null;
6
- lang: string;
7
-
8
- author: {
9
- firstName: string;
10
- name: string;
11
- } | null;
12
-
13
- categories: {
14
- name: string;
15
- uri: string;
16
- }[];
17
- }
18
-
19
- const { image, title, categories, date, author } = Astro.props;
20
- import PostCategories from "./Post/PostCategories.astro";
21
- import Date from "./Date.astro";
22
- ---
23
-
24
- <header
25
- class="post-header pt-11 w-full justify-center text-white z-2 bg-blue-darkest"
26
- >
27
- <div class="heading flex flex-wrap">
28
- <div
29
- class="w-full sm:max-w-[640px] md:max-w-3xl lg:max-w-5xl xl:max-w-7xl 2xl:max-w-[1536px] px-4 py-5 flex flex-col flex-wrap"
30
- >
31
- <h1
32
- class="font-textbold text-2xl mb-1 sm:text-3xl md:(text-4xl mb-3) xl:text-6xl mt-1 order-2 line-clamp-3 pb-1"
33
- >
34
- {title}
35
- </h1>
36
- <PostCategories categories={categories} />
37
- <div class="order-3 flex items-center text-gray-1 00">
38
- {
39
- author && (
40
- <span class="text-sm" title={author.firstName} data-pagefind-ignore>
41
- {author.name}
42
- </span>
43
- )
44
- }
45
- {author && date && <span class="mx-1">-</span>}
46
- {date && <Date date={date} />}
47
- </div>
48
- </div>
49
- </div>
50
- <div class="featured-image">
51
- <img src={image} alt={title} />
52
- </div>
53
- </header>
54
-
55
- <style >
56
- .post-header {
57
- @apply flex relative items-center;
58
- min-height: 19vw;
59
- }
60
-
61
- .heading {
62
- @apply text-white relative flex items-center justify-center mt-auto w-full pt-11 z-[2];
63
- }
64
-
65
- .featured-image {
66
- @apply absolute top-0 bottom-0 left-0 right-0 overflow-hidden w-full bg-gray-100 z-1;
67
-
68
- &:before,
69
- &:after {
70
- @apply content-empty top-0 bottom-0 left-0 right-0 absolute;
71
- }
72
-
73
- &:before {
74
- z-index: 5;
75
- background: linear-gradient(
76
- 0deg,
77
- rgba(0, 0, 0, 0.95),
78
- transparent 30%,
79
- transparent 70%,
80
- rgba(0, 0, 0, 0.95)
81
- );
82
- opacity: 0.5;
83
- }
84
-
85
- &:after {
86
- background: radial-gradient(circle at 50% 85%, #00437a 0, #001e50 100%);
87
- opacity: 0.8;
88
- }
89
-
90
- img {
91
- @apply w-full h-full object-cover block max-w-full;
92
- }
93
- }
94
- </style>
95
-
96
- <style is:global>
97
- .icon {
98
- @apply text-brand-secondary mr-2;
99
- width: 1em;
100
- height: 1em;
101
- fill: currentcolor;
102
- }
103
- </style>
1
+ ---
2
+ interface Props {
3
+ title: string;
4
+ image: string;
5
+ date?: string | null;
6
+ lang: string;
7
+
8
+ author: {
9
+ firstName: string;
10
+ name: string;
11
+ } | null;
12
+
13
+ categories: {
14
+ name: string;
15
+ uri: string;
16
+ }[];
17
+ }
18
+
19
+ const { image, title, categories, date, author } = Astro.props;
20
+ import PostCategories from "./Post/PostCategories.astro";
21
+ import Date from "./Date.astro";
22
+ ---
23
+
24
+ <header
25
+ class="post-header pt-11 w-full justify-center text-white z-2 bg-blue-darkest"
26
+ >
27
+ <div class="heading flex flex-wrap">
28
+ <div
29
+ class="w-full sm:max-w-[640px] md:max-w-3xl lg:max-w-5xl xl:max-w-7xl 2xl:max-w-[1536px] px-4 py-5 flex flex-col flex-wrap"
30
+ >
31
+ <h1
32
+ class="font-textbold text-2xl mb-1 sm:text-3xl md:(text-4xl mb-3) xl:text-6xl mt-1 order-2 line-clamp-3 pb-1"
33
+ >
34
+ {title}
35
+ </h1>
36
+ <PostCategories categories={categories} />
37
+ <div class="order-3 flex items-center text-gray-1 00">
38
+ {
39
+ author && (
40
+ <span class="text-sm" title={author.firstName} data-pagefind-ignore>
41
+ {author.name}
42
+ </span>
43
+ )
44
+ }
45
+ {author && date && <span class="mx-1">-</span>}
46
+ {date && <Date date={date} />}
47
+ </div>
48
+ </div>
49
+ </div>
50
+ <div class="featured-image">
51
+ <img src={image} alt={title} />
52
+ </div>
53
+ </header>
54
+
55
+ <style >
56
+ .post-header {
57
+ @apply flex relative items-center;
58
+ min-height: 19vw;
59
+ }
60
+
61
+ .heading {
62
+ @apply text-white relative flex items-center justify-center mt-auto w-full pt-11 z-[2];
63
+ }
64
+
65
+ .featured-image {
66
+ @apply absolute top-0 bottom-0 left-0 right-0 overflow-hidden w-full bg-gray-100 z-1;
67
+
68
+ &:before,
69
+ &:after {
70
+ @apply content-empty top-0 bottom-0 left-0 right-0 absolute;
71
+ }
72
+
73
+ &:before {
74
+ z-index: 5;
75
+ background: linear-gradient(
76
+ 0deg,
77
+ rgba(0, 0, 0, 0.95),
78
+ transparent 30%,
79
+ transparent 70%,
80
+ rgba(0, 0, 0, 0.95)
81
+ );
82
+ opacity: 0.5;
83
+ }
84
+
85
+ &:after {
86
+ background: radial-gradient(circle at 50% 85%, #00437a 0, #001e50 100%);
87
+ opacity: 0.8;
88
+ }
89
+
90
+ img {
91
+ @apply w-full h-full object-cover block max-w-full;
92
+ }
93
+ }
94
+ </style>
95
+
96
+ <style is:global>
97
+ .icon {
98
+ @apply text-brand-secondary mr-2;
99
+ width: 1em;
100
+ height: 1em;
101
+ fill: currentcolor;
102
+ }
103
+ </style>
@@ -1,142 +1,142 @@
1
- <script lang="ts" setup>
2
- /*
3
- VAG group (VW/Audi/Skoda/Seat/Porsche/Bentley/Lamborghini/Ducati/Cupra/Scania/MAN) manufacturer PR-Code
4
- */
5
-
6
- import type { PropType } from 'vue'
7
-
8
- const props = defineProps({
9
- prcode: {
10
- type: String,
11
- default: null,
12
- required: true,
13
- },
14
- isPdp: {
15
- type: Boolean,
16
- default: false,
17
- required: false,
18
- },
19
- })
20
- </script>
21
-
22
- <template>
23
- <span data-pagefind-filter="PR-Code" class="btn-prcode "
24
- :class="`btn-prcode--${props.prcode} ${props.isPdp ? ' btn-prcode--pdp' : ''}`">
25
- {{ props.prcode }}
26
- </span>
27
- </template>
28
-
29
- <style scoped>
30
- .btn-prcode--pdp {
31
- @apply mb-1;
32
- }
33
-
34
- .btn-prcode::before {
35
- @apply rounded-2 shadow-sm py-0.5 px-2 bg-gray-100 whitespace-nowrap text-xs dark:text-black dark:bg-accent-light text-center z-50;
36
- display: none;
37
- position: absolute;
38
- top: -10px;
39
- transform: translateY(-50%) translateX(-50%);
40
- left: 50%;
41
- }
42
-
43
- .btn-prcode:hover::before {
44
- display: block;
45
- }
46
-
47
- .btn-prcode--2JK {
48
- color: #f3881d;
49
- }
50
-
51
- .btn-prcode--2JK::before {
52
- content: 'CROSS';
53
- }
54
-
55
- .btn-prcode--1LR::before,
56
- .btn-prcode--1ZG::before,
57
- .btn-prcode--1ZJ::before {
58
- content: '⌀ 256 mm';
59
- }
60
-
61
- .btn-prcode--1KD::before,
62
- .btn-prcode--1ZP::before,
63
- .btn-prcode--1ZR::before {
64
- content: '⌀ 310 mm';
65
- }
66
-
67
- .btn-prcode--1ZD::before,
68
- .btn-prcode--1ZC::before,
69
- .btn-prcode--1LN::before {
70
- content: '⌀ 288 mm; LUCAS';
71
- }
72
-
73
- .btn-prcode--2JZ {
74
- @apply text-accent-light;
75
- }
76
-
77
- .btn-prcode--2JZ::before {
78
- content: 'Bluemotion';
79
- }
80
-
81
- .btn-prcode--7L6 {
82
- @apply text-accent-light;
83
- }
84
-
85
- .btn-prcode--7L6::before {
86
- content: 'Bluemotion (CFWA + start-stop)';
87
- }
88
-
89
- .btn-prcode--1KK::before,
90
- .btn-prcode--1KT::before,
91
- .btn-prcode--1KV::before,
92
- .btn-prcode--1LV::before,
93
- .btn-prcode--2EJ::before {
94
- content: '⌀ 230 mm';
95
- }
96
-
97
- .btn-prcode--2JE {
98
- @apply text-accent-dark;
99
- }
100
-
101
- .btn-prcode--2JE::before {
102
- content: 'BlueGT';
103
- }
104
-
105
- .btn-prcode--2JP::before {
106
- content: 'R-Line';
107
- }
108
-
109
- .btn-prcode--E5M,
110
- .btn-prcode--1KD,
111
- .btn-prcode--1ZP,
112
- .btn-prcode--2JQ,
113
- .btn-prcode--TA2 {
114
- color: blue;
115
- }
116
-
117
- .btn-prcode--E5M::before,
118
- .btn-prcode--1KD::before,
119
- .btn-prcode--1ZP::before,
120
- .btn-prcode--2JQ::before,
121
- .btn-prcode--TA2::before {
122
- content: 'R WRC Street';
123
- }
124
-
125
- .btn-prcode--1KV,
126
- .btn-prcode--1ZD,
127
- .btn-prcode--1ZR,
128
- .btn-prcode--0NH,
129
- .btn-prcode--2JD {
130
- color: red;
131
- }
132
-
133
- .btn-prcode--1KV::before,
134
- .btn-prcode--1ZD::before,
135
- .btn-prcode--1ZR::before,
136
- .btn-prcode--0NH::before,
137
- .btn-prcode--2JD::before {
138
- content: 'GTI';
139
- }
140
-
141
-
1
+ <script lang="ts" setup>
2
+ /*
3
+ VAG group (VW/Audi/Skoda/Seat/Porsche/Bentley/Lamborghini/Ducati/Cupra/Scania/MAN) manufacturer PR-Code
4
+ */
5
+
6
+ import type { PropType } from 'vue'
7
+
8
+ const props = defineProps({
9
+ prcode: {
10
+ type: String,
11
+ default: null,
12
+ required: true,
13
+ },
14
+ isPdp: {
15
+ type: Boolean,
16
+ default: false,
17
+ required: false,
18
+ },
19
+ })
20
+ </script>
21
+
22
+ <template>
23
+ <span data-pagefind-filter="PR-Code" class="btn-prcode "
24
+ :class="`btn-prcode--${props.prcode} ${props.isPdp ? ' btn-prcode--pdp' : ''}`">
25
+ {{ props.prcode }}
26
+ </span>
27
+ </template>
28
+
29
+ <style scoped>
30
+ .btn-prcode--pdp {
31
+ @apply mb-1;
32
+ }
33
+
34
+ .btn-prcode::before {
35
+ @apply rounded-2 shadow-sm py-0.5 px-2 bg-gray-100 whitespace-nowrap text-xs dark:text-black dark:bg-accent-light text-center z-50;
36
+ display: none;
37
+ position: absolute;
38
+ top: -10px;
39
+ transform: translateY(-50%) translateX(-50%);
40
+ left: 50%;
41
+ }
42
+
43
+ .btn-prcode:hover::before {
44
+ display: block;
45
+ }
46
+
47
+ .btn-prcode--2JK {
48
+ color: #f3881d;
49
+ }
50
+
51
+ .btn-prcode--2JK::before {
52
+ content: 'CROSS';
53
+ }
54
+
55
+ .btn-prcode--1LR::before,
56
+ .btn-prcode--1ZG::before,
57
+ .btn-prcode--1ZJ::before {
58
+ content: '⌀ 256 mm';
59
+ }
60
+
61
+ .btn-prcode--1KD::before,
62
+ .btn-prcode--1ZP::before,
63
+ .btn-prcode--1ZR::before {
64
+ content: '⌀ 310 mm';
65
+ }
66
+
67
+ .btn-prcode--1ZD::before,
68
+ .btn-prcode--1ZC::before,
69
+ .btn-prcode--1LN::before {
70
+ content: '⌀ 288 mm; LUCAS';
71
+ }
72
+
73
+ .btn-prcode--2JZ {
74
+ @apply text-accent-light;
75
+ }
76
+
77
+ .btn-prcode--2JZ::before {
78
+ content: 'Bluemotion';
79
+ }
80
+
81
+ .btn-prcode--7L6 {
82
+ @apply text-accent-light;
83
+ }
84
+
85
+ .btn-prcode--7L6::before {
86
+ content: 'Bluemotion (CFWA + start-stop)';
87
+ }
88
+
89
+ .btn-prcode--1KK::before,
90
+ .btn-prcode--1KT::before,
91
+ .btn-prcode--1KV::before,
92
+ .btn-prcode--1LV::before,
93
+ .btn-prcode--2EJ::before {
94
+ content: '⌀ 230 mm';
95
+ }
96
+
97
+ .btn-prcode--2JE {
98
+ @apply text-accent-dark;
99
+ }
100
+
101
+ .btn-prcode--2JE::before {
102
+ content: 'BlueGT';
103
+ }
104
+
105
+ .btn-prcode--2JP::before {
106
+ content: 'R-Line';
107
+ }
108
+
109
+ .btn-prcode--E5M,
110
+ .btn-prcode--1KD,
111
+ .btn-prcode--1ZP,
112
+ .btn-prcode--2JQ,
113
+ .btn-prcode--TA2 {
114
+ color: blue;
115
+ }
116
+
117
+ .btn-prcode--E5M::before,
118
+ .btn-prcode--1KD::before,
119
+ .btn-prcode--1ZP::before,
120
+ .btn-prcode--2JQ::before,
121
+ .btn-prcode--TA2::before {
122
+ content: 'R WRC Street';
123
+ }
124
+
125
+ .btn-prcode--1KV,
126
+ .btn-prcode--1ZD,
127
+ .btn-prcode--1ZR,
128
+ .btn-prcode--0NH,
129
+ .btn-prcode--2JD {
130
+ color: red;
131
+ }
132
+
133
+ .btn-prcode--1KV::before,
134
+ .btn-prcode--1ZD::before,
135
+ .btn-prcode--1ZR::before,
136
+ .btn-prcode--0NH::before,
137
+ .btn-prcode--2JD::before {
138
+ content: 'GTI';
139
+ }
140
+
141
+
142
142
  </style>
@@ -1,18 +1,18 @@
1
- <script setup lang="ts">
2
- const props = defineProps({
3
- shadow: {
4
- type: Boolean,
5
- default: false,
6
- required: false,
7
- },
8
- })
9
- </script>
10
-
11
- <template>
12
- <button
13
- class="product-button"
14
- :class="props.shadow ? 'drop-shadow hover:(drop-shadow-md)' : ''"
15
- >
16
- <slot />
17
- </button>
18
- </template>
1
+ <script setup lang="ts">
2
+ const props = defineProps({
3
+ shadow: {
4
+ type: Boolean,
5
+ default: false,
6
+ required: false,
7
+ },
8
+ })
9
+ </script>
10
+
11
+ <template>
12
+ <button
13
+ class="product-button"
14
+ :class="props.shadow ? 'drop-shadow hover:(drop-shadow-md)' : ''"
15
+ >
16
+ <slot />
17
+ </button>
18
+ </template>
@@ -1,36 +1,36 @@
1
- ---
2
- import ProductLink from "./ProductLink.astro";
3
-
4
- // Get the product directly from the prop on render
5
- const { locale, class: className, products, isShopProduct = false, ...rest } = Astro.props;
6
-
7
- ---
8
-
9
-
10
- {
11
- products && products.length && (
12
- <swiper-container slides-per-view="auto" space-between="0" class="flex"
13
- itemscope itemtype="https://schema.org/ItemList">
14
- {
15
- products.map((product, index) => (
16
- <swiper-slide class="product-carousel"
17
- itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem" >
18
- <ProductLink productObject={product} locale={locale} index={index+1} bigTile loading="eager" isShopProduct={isShopProduct} />
19
- <div class="swiper-lazy-preloader"></div>
20
- </swiper-slide>
21
- ))
22
- }
23
- </swiper-container>
24
- )
25
- }
26
-
27
- <style>
28
- .similar-section {
29
- @apply relative z-20;
30
-
31
- &:hover {
32
- content-visibility: visible;
33
- }
34
- }
35
-
1
+ ---
2
+ import ProductLink from "./ProductLink.astro";
3
+
4
+ // Get the product directly from the prop on render
5
+ const { locale, class: className, products, isShopProduct = false, ...rest } = Astro.props;
6
+
7
+ ---
8
+
9
+
10
+ {
11
+ products && products.length && (
12
+ <swiper-container slides-per-view="auto" space-between="0" class="flex"
13
+ itemscope itemtype="https://schema.org/ItemList">
14
+ {
15
+ products.map((product, index) => (
16
+ <swiper-slide class="product-carousel"
17
+ itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem" >
18
+ <ProductLink productObject={product} locale={locale} index={index+1} bigTile loading="eager" isShopProduct={isShopProduct} />
19
+ <div class="swiper-lazy-preloader"></div>
20
+ </swiper-slide>
21
+ ))
22
+ }
23
+ </swiper-container>
24
+ )
25
+ }
26
+
27
+ <style>
28
+ .similar-section {
29
+ @apply relative z-20;
30
+
31
+ &:hover {
32
+ content-visibility: visible;
33
+ }
34
+ }
35
+
36
36
  </style>