spoko-design-system 0.7.6 → 0.7.8

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 +1 -1
  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 +309 -309
  18. package/index.ts +66 -66
  19. package/package.json +38 -38
  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 +91 -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/CategoryLink.vue +28 -28
  49. package/src/components/Category/CategorySidebarToggler.vue +9 -9
  50. package/src/components/Category/CategoryTile.astro +37 -37
  51. package/src/components/Category/CategoryViewToggler.astro +89 -89
  52. package/src/components/Category/SubCategoryLink.vue +19 -19
  53. package/src/components/Copyright.astro +12 -12
  54. package/src/components/Date.astro +7 -7
  55. package/src/components/Faq.astro +33 -33
  56. package/src/components/FaqItem.astro +80 -80
  57. package/src/components/FeaturesList.vue +37 -41
  58. package/src/components/FuckRussia.vue +62 -62
  59. package/src/components/HandDrive.astro +29 -29
  60. package/src/components/Header/Header.astro +210 -210
  61. package/src/components/Header/SkipToContent.astro +1 -1
  62. package/src/components/Headline.vue +48 -48
  63. package/src/components/Image.astro +30 -30
  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 +41 -41
  71. package/src/components/Post/PostCategories.vue +31 -39
  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/ProductEngineType.vue +42 -42
  77. package/src/components/Product/ProductImage.astro +40 -40
  78. package/src/components/Product/ProductLink.astro +101 -101
  79. package/src/components/Product/ProductLink.vue +59 -59
  80. package/src/components/Product/ProductLinkInfo.astro +37 -37
  81. package/src/components/Product/ProductNumber.astro +60 -60
  82. package/src/components/ProductCarousel.astro +38 -38
  83. package/src/components/ProductCodes.vue +39 -39
  84. package/src/components/ProductDetailName.vue +52 -52
  85. package/src/components/ProductDetailsList.vue +130 -158
  86. package/src/components/ProductTile.astro +48 -48
  87. package/src/components/Quote.vue +23 -23
  88. package/src/components/ReloadPrompt.astro +50 -50
  89. package/src/components/SlimBanner.vue +72 -72
  90. package/src/components/Table.vue +32 -32
  91. package/src/components/TableOfContents.astro +15 -15
  92. package/src/components/Translations.vue +23 -23
  93. package/src/components/flags/FlagPL.vue +3 -3
  94. package/src/components/flags/FlagUA.vue +2 -2
  95. package/src/components/layout/Container.astro +7 -7
  96. package/src/components/layout/Header.astro +80 -80
  97. package/src/config.ts +56 -56
  98. package/src/design.config.ts +98 -98
  99. package/src/env.d.ts +6 -6
  100. package/src/layouts/Layout.astro +61 -61
  101. package/src/layouts/MainLayout.astro +81 -81
  102. package/src/layouts/partials/FooterCommon.astro +4 -4
  103. package/src/layouts/partials/HeadCommon.astro +44 -44
  104. package/src/layouts/partials/HeadSEO.astro +41 -41
  105. package/src/pages/components/badges.mdx +57 -57
  106. package/src/pages/components/breadcrumbs.mdx +139 -139
  107. package/src/pages/components/buttons.mdx +360 -360
  108. package/src/pages/components/card.mdx +294 -294
  109. package/src/pages/components/carousel.mdx +62 -62
  110. package/src/pages/components/copyright.mdx +42 -42
  111. package/src/pages/components/details-list.mdx +115 -115
  112. package/src/pages/components/features-list.mdx +37 -37
  113. package/src/pages/components/flags.mdx +49 -49
  114. package/src/pages/components/fuck-russia.mdx +39 -39
  115. package/src/pages/components/hand-drive.mdx +38 -38
  116. package/src/pages/components/headline.mdx +152 -152
  117. package/src/pages/components/icons.astro +135 -135
  118. package/src/pages/components/image.mdx +513 -513
  119. package/src/pages/components/input.mdx +367 -367
  120. package/src/pages/components/jumbotron.mdx +359 -359
  121. package/src/pages/components/modal.mdx +64 -64
  122. package/src/pages/components/post-header.mdx +64 -64
  123. package/src/pages/components/pr-code.mdx +65 -65
  124. package/src/pages/components/product-number.mdx +58 -58
  125. package/src/pages/components/product-tile.mdx +51 -51
  126. package/src/pages/components/quote.mdx +33 -33
  127. package/src/pages/components/slimbanner.mdx +35 -35
  128. package/src/pages/components/table.mdx +108 -108
  129. package/src/pages/core/colors.mdx +10 -10
  130. package/src/pages/core/grid.mdx +89 -89
  131. package/src/pages/core/introduction.mdx +77 -77
  132. package/src/pages/core/shadows.astro +20 -20
  133. package/src/pages/core/typography.astro +49 -49
  134. package/src/pages/index.astro +133 -133
  135. package/src/pages/patterns/introduction.mdx +60 -60
  136. package/src/pwa.ts +12 -12
  137. package/src/styles/_variables.scss +70 -70
  138. package/src/styles/base/base.css +184 -184
  139. package/src/styles/base/grid.css +92 -92
  140. package/src/styles/base/typography.css +70 -70
  141. package/src/styles/content.css +73 -73
  142. package/src/styles/main.css +7 -7
  143. package/src/types/Product.ts +31 -31
  144. package/src/types/astro.d.ts +3 -3
  145. package/src/utils/product/getPriceFormatted.ts +15 -15
  146. package/src/utils/product/getProductChecklist.ts +17 -17
  147. package/src/utils/product/useFormatProductNumber.ts +41 -41
  148. package/src/utils/seo/getShorterDescription.ts +14 -14
  149. package/src/utils/text/formatDate.ts +5 -5
  150. package/src/utils/text/formatLocaleNumber.ts +6 -6
  151. package/src/utils/text/formatPad.ts +12 -12
  152. package/src/utils/text/getNumberFormatted.ts +33 -33
  153. package/src/utils/text/getTranslatedLink.ts +5 -5
  154. package/src/utils/text.ts +19 -19
  155. package/tailwind.config.cjs +8 -8
  156. package/tsconfig.json +28 -28
  157. package/uno-config/index.ts +259 -232
  158. package/uno-config/theme/breakpoints.ts +9 -9
  159. package/uno-config/theme/colors.ts +64 -64
  160. package/uno-config/theme/dimensions.ts +17 -17
  161. package/uno-config/theme/effects.ts +14 -14
  162. package/uno-config/theme/grid.ts +10 -10
  163. package/uno-config/theme/index.ts +28 -28
  164. package/uno-config/theme/shortcuts/buttons.ts +53 -53
  165. package/uno-config/theme/shortcuts/components.ts +123 -92
  166. package/uno-config/theme/shortcuts/index.ts +20 -20
  167. package/uno-config/theme/shortcuts/layout.ts +64 -64
  168. package/uno-config/theme/typography.ts +29 -29
  169. package/uno.config.ts +2 -2
  170. package/src/components/Product/ProductCodes.vue +0 -174
@@ -1,65 +1,65 @@
1
- // shortcuts/layout.ts
2
- import {
3
- COLORS,
4
- LAYOUT,
5
- IMAGE_STYLES,
6
- TYPOGRAPHY,
7
- TRANSITIONS,
8
- aspectRatios
9
- } from './constants'
10
-
11
- // Generate image shortcuts dynamically
12
- const imageShortcuts = Object.entries(aspectRatios).map(([ratio, aspect]) => [
13
- `img--${ratio}`,
14
- `${aspect} ${IMAGE_STYLES.base}`
15
- ])
16
-
17
- export const layoutShortcuts = [
18
- // Main Layout
19
- ['l-main', `text-slate-dark ${LAYOUT.spacing.topPadding} ${COLORS.bgWhite}`],
20
- ['main', `text-slate-dark ${COLORS.textNeutralLight} ${COLORS.bgDark} ${LAYOUT.spacing.topPadding} ${LAYOUT.position.relative}`],
21
- ['nav', `${COLORS.bgWhite} ${COLORS.bgDark} ${LAYOUT.position.absolute} sm:fixed w-full top-0 z-41 mx-auto ${LAYOUT.spacing.containerPadding} pt-1 h-24 ${LAYOUT.flex.between} flex-wrap sm:(flex-nowrap pt-0 h-14) max-w-screen print-hidden`],
22
-
23
- // View Toggles
24
- ['view-grid', 'lg:flex-wrap'],
25
- ['view-list', 'lg:flex-col divide-y-1 divide-solid divide-neutral-lighter'],
26
-
27
- // Containers
28
- ['products-container', 'products-wrapper'],
29
- ['products-wrapper', `${LAYOUT.flex.wrap} ${COLORS.bgWhite} mb-4 w-full mb-auto md:(pl-4 px-2 -mt-3)`],
30
- ['product-list', 'sm:block products-wrapper'],
31
- ['products-grid', `${LAYOUT.flex.alignCenter} w-full flex-nowrap pr-4 md:grid grid-rows-1 overflow-hidden ${LAYOUT.grid.cols2} lg:grid-cols-3 2xl:grid-cols-4 3xl:grid-cols-5 max-h-[6rem]`],
32
- ['similar-products', `${LAYOUT.flex.center} space-y-4 gap-8 flex-wrap px-4 md:grid ${LAYOUT.grid.cols2} lg:grid-cols-3 2xl:grid-cols-4 3xl:grid-cols-5`],
33
- ['similar-section', `${COLORS.bgWhite} w-full drop-shadow-xl`],
34
- ['search-container', 'mb-2 sm:mb-0'],
35
-
36
- // Category Menu
37
- ['cat-menu', `fixed h-21 bottom-[-6px] w-full z-10 border-t-1 border-neutral-light ${COLORS.bgWhite} dark:bg-blue-darkest text-center sm:(static z-auto border-t-none h-28)`],
38
- ['cat-card', 'p-4 text-base break-inside-avoid-column'],
39
- ['cat-name', 'mt-2 h-[2em] text-xs leading-none group-hover:filter-invert 3xl:text-3.25'],
40
- ['cats-slide', `${TRANSITIONS.base} mb-0.5 min-h-tile-mobile sm:(min-h-tile h-tile mb-2 p-3) text-black ${COLORS.textNeutralLight} hover:(text-white even:bg-blue-medium odd:bg-accent-light) cursor-pointer ${LAYOUT.flex.colCenter} px-1.5 cursor-grab active:cursor-grabbing overflow-hidden`],
41
- ['cats-img', `max-w-full h-8 md:h-icon ${IMAGE_STYLES.objectContain} w-full left-0 right-0 top-0 bottom-0`],
42
-
43
- // Sidebars and Navigation
44
- ['sidebar-title', `font-headregular text-accent-light text-xl md:(text-2xl px-4) mb-2 px-14 sm:px-3 ${LAYOUT.flex.center} sm:justify-start py-3`],
45
- ['subcat', 'text-3.75 block cursor-pointer text-blue-darker hover:(text-accent-default underline) md:mb-1 py-2 md:py-0'],
46
- ['subsubcat', 'pl-2'],
47
-
48
- // Headers and Banners
49
- ['headline', TYPOGRAPHY.headline.bold],
50
- ['headline-light', TYPOGRAPHY.headline.light],
51
- ['slimbanner', `px-4 sm:px-8 ${LAYOUT.flex.center} text-xs sm:text-base leading-none ${LAYOUT.position.relative} bg-gray-50 z-2 px-4 py-3 sm:(text-base px-8) text-blue-darker print-hidden`],
52
-
53
- // Image Shortcuts
54
- ...imageShortcuts,
55
- ['img--small', `h-full w-60 sm:(w-22) xl:(w-30) ${IMAGE_STYLES.base}`],
56
- ['img--medium', `h-full w-60 ${IMAGE_STYLES.base}`],
57
-
58
- // Utility Classes
59
- ['close-light', 'before:bg-white after:bg-white'],
60
- ['close-dark', 'before:bg-black after:bg-black'],
61
- ['colon-after', 'after:content-[":"]'],
62
- ['adsbygoogle', 'w-full text-center'],
63
- ['underline-on-hover', `${LAYOUT.position.relative} ${LAYOUT.flex.base} w-full ${COLORS.bgWhite} pb-1 after:absolute after:w-[calc(100%-1rem)] after:left-0 after:h-px after:top-[calc(100%-1px)] after:bottom-1 after:content-empty after:scale-x-0 after:transition-transform-300 after:origin-top-right hover:after:origin-top-left hover:after:scale-x-100`],
64
- ['cat-link', `cursor-pointer text-accent-deepBlue ${COLORS.textNeutralLight} hover:(text-brand-secondary underline) uppercase py-2 md:py-0`],
1
+ // shortcuts/layout.ts
2
+ import {
3
+ COLORS,
4
+ LAYOUT,
5
+ IMAGE_STYLES,
6
+ TYPOGRAPHY,
7
+ TRANSITIONS,
8
+ aspectRatios
9
+ } from './constants'
10
+
11
+ // Generate image shortcuts dynamically
12
+ const imageShortcuts = Object.entries(aspectRatios).map(([ratio, aspect]) => [
13
+ `img--${ratio}`,
14
+ `${aspect} ${IMAGE_STYLES.base}`
15
+ ])
16
+
17
+ export const layoutShortcuts = [
18
+ // Main Layout
19
+ ['l-main', `text-slate-dark ${LAYOUT.spacing.topPadding} ${COLORS.bgWhite}`],
20
+ ['main', `text-slate-dark ${COLORS.textNeutralLight} ${COLORS.bgDark} ${LAYOUT.spacing.topPadding} ${LAYOUT.position.relative}`],
21
+ ['nav', `${COLORS.bgWhite} ${COLORS.bgDark} ${LAYOUT.position.absolute} sm:fixed w-full top-0 z-41 mx-auto ${LAYOUT.spacing.containerPadding} pt-1 h-24 ${LAYOUT.flex.between} flex-wrap sm:(flex-nowrap pt-0 h-14) max-w-screen print-hidden`],
22
+
23
+ // View Toggles
24
+ ['view-grid', 'lg:flex-wrap'],
25
+ ['view-list', 'lg:flex-col divide-y-1 divide-solid divide-neutral-lighter'],
26
+
27
+ // Containers
28
+ ['products-container', 'products-wrapper'],
29
+ ['products-wrapper', `${LAYOUT.flex.wrap} ${COLORS.bgWhite} mb-4 w-full mb-auto md:(pl-4 px-2 -mt-3)`],
30
+ ['product-list', 'sm:block products-wrapper'],
31
+ ['products-grid', `${LAYOUT.flex.alignCenter} w-full flex-nowrap pr-4 md:grid grid-rows-1 overflow-hidden ${LAYOUT.grid.cols2} lg:grid-cols-3 2xl:grid-cols-4 3xl:grid-cols-5 max-h-[6rem]`],
32
+ ['similar-products', `${LAYOUT.flex.center} space-y-4 gap-8 flex-wrap px-4 md:grid ${LAYOUT.grid.cols2} lg:grid-cols-3 2xl:grid-cols-4 3xl:grid-cols-5`],
33
+ ['similar-section', `${COLORS.bgWhite} w-full drop-shadow-xl`],
34
+ ['search-container', 'mb-2 sm:mb-0'],
35
+
36
+ // Category Menu
37
+ ['cat-menu', `fixed h-21 bottom-[-6px] w-full z-10 border-t-1 border-neutral-light ${COLORS.bgWhite} dark:bg-blue-darkest text-center sm:(static z-auto border-t-none h-28)`],
38
+ ['cat-card', 'p-4 text-base break-inside-avoid-column'],
39
+ ['cat-name', 'mt-2 h-[2em] text-xs leading-none group-hover:filter-invert 3xl:text-3.25'],
40
+ ['cats-slide', `${TRANSITIONS.base} mb-0.5 min-h-tile-mobile sm:(min-h-tile h-tile mb-2 p-3) text-black ${COLORS.textNeutralLight} hover:(text-white even:bg-blue-medium odd:bg-accent-light) cursor-pointer ${LAYOUT.flex.colCenter} px-1.5 cursor-grab active:cursor-grabbing overflow-hidden`],
41
+ ['cats-img', `max-w-full h-8 md:h-icon ${IMAGE_STYLES.objectContain} w-full left-0 right-0 top-0 bottom-0`],
42
+
43
+ // Sidebars and Navigation
44
+ ['sidebar-title', `font-headregular text-accent-light text-xl md:(text-2xl px-4) mb-2 px-14 sm:px-3 ${LAYOUT.flex.center} sm:justify-start py-3`],
45
+ ['subcat', 'text-3.75 block cursor-pointer text-blue-darker hover:(text-accent-default underline) md:mb-1 py-2 md:py-0'],
46
+ ['subsubcat', 'pl-2'],
47
+
48
+ // Headers and Banners
49
+ ['headline', TYPOGRAPHY.headline.bold],
50
+ ['headline-light', TYPOGRAPHY.headline.light],
51
+ ['slimbanner', `px-4 sm:px-8 ${LAYOUT.flex.center} text-xs sm:text-base leading-none ${LAYOUT.position.relative} bg-gray-50 z-2 px-4 py-3 sm:(text-base px-8) text-blue-darker print-hidden`],
52
+
53
+ // Image Shortcuts
54
+ ...imageShortcuts,
55
+ ['img--small', `h-full w-60 sm:(w-22) xl:(w-30) ${IMAGE_STYLES.base}`],
56
+ ['img--medium', `h-full w-60 ${IMAGE_STYLES.base}`],
57
+
58
+ // Utility Classes
59
+ ['close-light', 'before:bg-white after:bg-white'],
60
+ ['close-dark', 'before:bg-black after:bg-black'],
61
+ ['colon-after', 'after:content-[":"]'],
62
+ ['adsbygoogle', 'w-full text-center'],
63
+ ['underline-on-hover', `${LAYOUT.position.relative} ${LAYOUT.flex.base} w-full ${COLORS.bgWhite} pb-1 after:absolute after:w-[calc(100%-1rem)] after:left-0 after:h-px after:top-[calc(100%-1px)] after:bottom-1 after:content-empty after:scale-x-0 after:transition-transform-300 after:origin-top-right hover:after:origin-top-left hover:after:scale-x-100`],
64
+ ['cat-link', `cursor-pointer text-accent-deepBlue ${COLORS.textNeutralLight} hover:(text-brand-secondary underline) uppercase py-2 md:py-0`],
65
65
  ];
@@ -1,30 +1,30 @@
1
- // theme/typography.ts
2
- interface FontFamily {
3
- [key: string]: string[];
4
- }
5
-
6
- interface FontSize {
7
- [key: string]: string;
8
- }
9
-
10
- interface Typography {
11
- fontFamily: FontFamily;
12
- fontSize: FontSize;
13
- }
14
-
15
- export const typography: Typography = {
16
- fontFamily: {
17
- sans: ['vw_textregular', 'system-ui', 'ui-sans-serif'],
18
- novamono: ['Nova Mono'],
19
- mono: ['Nova Mono'],
20
- headlight: ['vw_headlight', 'system-ui'],
21
- headregular: ['vw_headregular'],
22
- headbold: ['vw_headbold'],
23
- textlight: ['vw_textlight'],
24
- textregular: ['vw_textregular'],
25
- textbold: ['vw_textbold']
26
- },
27
- fontSize: {
28
- xxs: '.625rem',
29
- }
1
+ // theme/typography.ts
2
+ interface FontFamily {
3
+ [key: string]: string[];
4
+ }
5
+
6
+ interface FontSize {
7
+ [key: string]: string;
8
+ }
9
+
10
+ interface Typography {
11
+ fontFamily: FontFamily;
12
+ fontSize: FontSize;
13
+ }
14
+
15
+ export const typography: Typography = {
16
+ fontFamily: {
17
+ sans: ['vw_textregular', 'system-ui', 'ui-sans-serif'],
18
+ novamono: ['Nova Mono'],
19
+ mono: ['Nova Mono'],
20
+ headlight: ['vw_headlight', 'system-ui'],
21
+ headregular: ['vw_headregular'],
22
+ headbold: ['vw_headbold'],
23
+ textlight: ['vw_textlight'],
24
+ textregular: ['vw_textregular'],
25
+ textbold: ['vw_textbold']
26
+ },
27
+ fontSize: {
28
+ xxs: '.625rem',
29
+ }
30
30
  };
package/uno.config.ts CHANGED
@@ -1,3 +1,3 @@
1
- import { createSdsConfig } from './uno-config';
2
-
1
+ import { createSdsConfig } from './uno-config';
2
+
3
3
  export default createSdsConfig();
@@ -1,174 +0,0 @@
1
- <script lang="ts" setup>
2
- import type { PropType } from 'vue'
3
-
4
- const props = defineProps({
5
- prcodes: {
6
- type: Object as PropType<string[] | null>,
7
- default: null,
8
- required: true,
9
- },
10
- isPdp: {
11
- type: Boolean,
12
- default: false,
13
- required: false,
14
- },
15
- })
16
-
17
- const codes = props.prcodes || []
18
- const decodedCodes = codes ? codes.sort() : []
19
-
20
- const settings = {
21
- prcodes: decodedCodes,
22
- }
23
- </script>
24
-
25
- <template>
26
-
27
- <span
28
- v-for="(prcode, index) in settings.prcodes"
29
- :key="index"
30
- class="not-last:mr-1"
31
- >
32
- <span data-pagefind-filter="PR-Code"
33
- v-if="!String(prcode).includes('+')"
34
- class="btn-prcode "
35
- :class="`btn-prcode--${prcode}`"
36
- >
37
- {{ prcode }}
38
- </span>
39
- <span v-else >
40
- <span v-for="(splittedCode, index2) in String(prcode).split('+')" :key="index2" class="btn-prcode" :class="`btn-prcode--${splittedCode} ${isPdp ? ' btn-prcode--pdp' : ''}` " data-pagefind-filter="PR-Code">
41
- {{ splittedCode }}
42
- </span>
43
- </span>
44
- </span>
45
-
46
- </template>
47
-
48
- <style scoped>
49
- .btn-prcode {
50
- @apply relative inline-block leading-none px-1 py-0.5 mr-1 cursor-pointer font-mono border-solid border-1 border-gray-200 select-none text-gray-500 last:mr-0 dark:border-white dark:border-opacity-10 dark:text-gray-300 dark:bg-white dark:bg-opacity-30 not-last:mr-2 not-last:after:content-[+] dark:after:text-white/50 after:pl-0.5 after:text-blue-darker after:absolute after:w-4 text-center;
51
- }
52
-
53
- .btn-prcode--pdp {
54
- @apply mb-1;
55
- }
56
-
57
- .btn-prcode::before {
58
- @apply rounded-2 shadow-sm py-0.5 px-2 bg-gray-100 whitespace-nowrap text-xs dark:text-black dark:bg-accent-light;
59
- display: none;
60
- position: absolute;
61
- text-align: center;
62
- top: -10px;
63
- transform: translateY(-50%) translateX(-50%);
64
- left: 50%;
65
- z-index: 50;
66
- }
67
-
68
- .btn-prcode:hover::before {
69
- display: block;
70
- }
71
-
72
- .btn-prcode--2JK {
73
- color: #f3881d;
74
- }
75
-
76
- .btn-prcode--2JK::before {
77
- content: 'CROSS';
78
- }
79
-
80
- .btn-prcode--1LR,
81
- .btn-prcode--1ZG,
82
- .btn-prcode--1ZJ {
83
- &::before {
84
- content: '⌀ 256 mm';
85
- }
86
- }
87
-
88
- .btn-prcode--1KD,
89
- .btn-prcode--1ZP,
90
- .btn-prcode--1ZR {
91
- &::before {
92
- content: '⌀ 310 mm';
93
- }
94
- }
95
-
96
- .btn-prcode--1ZD,
97
- .btn-prcode--1ZC,
98
- .btn-prcode--1LN {
99
- &::before {
100
- content: '⌀ 288 mm; LUCAS';
101
- }
102
- }
103
-
104
- .btn-prcode--2JZ {
105
- @apply text-accent-light;
106
- }
107
-
108
- .btn-prcode--2JZ::before {
109
- content: 'Bluemotion';
110
- }
111
-
112
- .btn-prcode--7L6 {
113
- @apply text-accent-light;
114
- }
115
-
116
- .btn-prcode--7L6::before {
117
- content: 'Bluemotion (CFWA + start-stop)';
118
- }
119
-
120
- .btn-prcode--1KK,
121
- .btn-prcode--1KT,
122
- .btn-prcode--1KV,
123
- .btn-prcode--1LV,
124
- .btn-prcode--2EJ {
125
- &::before {
126
- content: '⌀ 230 mm';
127
- }
128
- }
129
-
130
- .btn-prcode--2JE {
131
- @apply text-accent-dark;
132
- }
133
-
134
- .btn-prcode--2JE::before {
135
- content: 'BlueGT';
136
- }
137
-
138
- .btn-prcode--2JP::before {
139
- content: 'R-Line';
140
- }
141
-
142
- .btn-prcode--E5M,
143
- .btn-prcode--1KD,
144
- .btn-prcode--1ZP,
145
- .btn-prcode--2JQ,
146
- .btn-prcode--TA2 {
147
- color: blue;
148
- }
149
-
150
- .btn-prcode--E5M::before,
151
- .btn-prcode--1KD::before,
152
- .btn-prcode--1ZP::before,
153
- .btn-prcode--2JQ::before,
154
- .btn-prcode--TA2::before {
155
- content: 'R WRC Street';
156
- }
157
-
158
- .btn-prcode--1KV,
159
- .btn-prcode--1ZD,
160
- .btn-prcode--1ZR,
161
- .btn-prcode--0NH,
162
- .btn-prcode--2JD {
163
- color: red;
164
- }
165
-
166
- .btn-prcode--1KV::before,
167
- .btn-prcode--1ZD::before,
168
- .btn-prcode--1ZR::before,
169
- .btn-prcode--0NH::before,
170
- .btn-prcode--2JD::before {
171
- content: 'GTI';
172
- }
173
-
174
- </style>