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.
- package/.astro/data-store.json +1 -1
- package/.astro/settings.json +1 -1
- package/.github/dependabot.yml +11 -11
- package/.github/todo.yml +3 -3
- package/.github/workflows/deploy.yml +39 -39
- package/.stackblitzrc +5 -5
- package/.vscode/extensions.json +5 -5
- package/.vscode/launch.json +11 -11
- package/.vscode/settings.json +5 -5
- package/LICENSE +21 -21
- package/README.md +114 -114
- package/astro-i18next.config.mjs +17 -17
- package/astro-i18next.config.ts +10 -10
- package/astro.config.mjs +86 -86
- package/dev-dist/sw.js +91 -91
- package/dev-dist/workbox-c676b6d3.js +3391 -3391
- package/icon.config.ts +309 -309
- package/index.ts +66 -66
- package/package.json +38 -38
- package/public/fonts/lg.svg +53 -53
- package/public/fonts/vwhead-bold-demo.html +549 -549
- package/public/fonts/vwhead-regular-demo.html +549 -549
- package/public/fonts/vwtext-bold-demo.html +549 -549
- package/public/fonts/vwtext-regular-demo.html +549 -549
- package/public/github.svg +3 -3
- package/public/grid_dot.svg +4 -4
- package/public/linkedin.svg +44 -44
- package/public/locales/en/translation.json +8 -8
- package/public/locales/pl/translation.json +8 -8
- package/public/make-scrollable-code-focusable.js +3 -3
- package/public/pagefind.yml +3 -3
- package/public/polo.blue.svg +29 -29
- package/public/spoko.space.svg +71 -71
- package/public/twitter.svg +46 -46
- package/renovate.json +6 -6
- package/sandbox.config.json +11 -11
- package/src/MyComponent.astro +8 -8
- package/src/components/Badge.vue +19 -19
- package/src/components/Badges.vue +21 -21
- package/src/components/Breadcrumbs.vue +91 -107
- package/src/components/Button.vue +101 -101
- package/src/components/ButtonCopy.astro +183 -183
- package/src/components/ButtonCopy.vue +36 -36
- package/src/components/Card.astro +27 -27
- package/src/components/Carousel.astro +26 -26
- package/src/components/Category/CategoriesCarousel.astro +101 -101
- package/src/components/Category/CategoryDetails.astro +169 -169
- package/src/components/Category/CategoryLink.vue +28 -28
- package/src/components/Category/CategorySidebarToggler.vue +9 -9
- package/src/components/Category/CategoryTile.astro +37 -37
- package/src/components/Category/CategoryViewToggler.astro +89 -89
- package/src/components/Category/SubCategoryLink.vue +19 -19
- package/src/components/Copyright.astro +12 -12
- package/src/components/Date.astro +7 -7
- package/src/components/Faq.astro +33 -33
- package/src/components/FaqItem.astro +80 -80
- package/src/components/FeaturesList.vue +37 -41
- package/src/components/FuckRussia.vue +62 -62
- package/src/components/HandDrive.astro +29 -29
- package/src/components/Header/Header.astro +210 -210
- package/src/components/Header/SkipToContent.astro +1 -1
- package/src/components/Headline.vue +48 -48
- package/src/components/Image.astro +30 -30
- package/src/components/LeftSidebar.astro +53 -53
- package/src/components/MainColors.vue +22 -22
- package/src/components/MainInput.vue +15 -15
- package/src/components/Modal.astro +27 -27
- package/src/components/PageContent.astro +5 -5
- package/src/components/PartNumber.vue +27 -27
- package/src/components/Post/PostCategories.astro +41 -41
- package/src/components/Post/PostCategories.vue +31 -39
- package/src/components/PostHeader.astro +103 -103
- package/src/components/PrCode.vue +141 -141
- package/src/components/Product/ProductButton.vue +18 -18
- package/src/components/Product/ProductCarousel.astro +35 -35
- package/src/components/Product/ProductEngineType.vue +42 -42
- package/src/components/Product/ProductImage.astro +40 -40
- package/src/components/Product/ProductLink.astro +101 -101
- package/src/components/Product/ProductLink.vue +59 -59
- package/src/components/Product/ProductLinkInfo.astro +37 -37
- package/src/components/Product/ProductNumber.astro +60 -60
- package/src/components/ProductCarousel.astro +38 -38
- package/src/components/ProductCodes.vue +39 -39
- package/src/components/ProductDetailName.vue +52 -52
- package/src/components/ProductDetailsList.vue +130 -158
- package/src/components/ProductTile.astro +48 -48
- package/src/components/Quote.vue +23 -23
- package/src/components/ReloadPrompt.astro +50 -50
- package/src/components/SlimBanner.vue +72 -72
- package/src/components/Table.vue +32 -32
- package/src/components/TableOfContents.astro +15 -15
- package/src/components/Translations.vue +23 -23
- package/src/components/flags/FlagPL.vue +3 -3
- package/src/components/flags/FlagUA.vue +2 -2
- package/src/components/layout/Container.astro +7 -7
- package/src/components/layout/Header.astro +80 -80
- package/src/config.ts +56 -56
- package/src/design.config.ts +98 -98
- package/src/env.d.ts +6 -6
- package/src/layouts/Layout.astro +61 -61
- package/src/layouts/MainLayout.astro +81 -81
- package/src/layouts/partials/FooterCommon.astro +4 -4
- package/src/layouts/partials/HeadCommon.astro +44 -44
- package/src/layouts/partials/HeadSEO.astro +41 -41
- package/src/pages/components/badges.mdx +57 -57
- package/src/pages/components/breadcrumbs.mdx +139 -139
- package/src/pages/components/buttons.mdx +360 -360
- package/src/pages/components/card.mdx +294 -294
- package/src/pages/components/carousel.mdx +62 -62
- package/src/pages/components/copyright.mdx +42 -42
- package/src/pages/components/details-list.mdx +115 -115
- package/src/pages/components/features-list.mdx +37 -37
- package/src/pages/components/flags.mdx +49 -49
- package/src/pages/components/fuck-russia.mdx +39 -39
- package/src/pages/components/hand-drive.mdx +38 -38
- package/src/pages/components/headline.mdx +152 -152
- package/src/pages/components/icons.astro +135 -135
- package/src/pages/components/image.mdx +513 -513
- package/src/pages/components/input.mdx +367 -367
- package/src/pages/components/jumbotron.mdx +359 -359
- package/src/pages/components/modal.mdx +64 -64
- package/src/pages/components/post-header.mdx +64 -64
- package/src/pages/components/pr-code.mdx +65 -65
- package/src/pages/components/product-number.mdx +58 -58
- package/src/pages/components/product-tile.mdx +51 -51
- package/src/pages/components/quote.mdx +33 -33
- package/src/pages/components/slimbanner.mdx +35 -35
- package/src/pages/components/table.mdx +108 -108
- package/src/pages/core/colors.mdx +10 -10
- package/src/pages/core/grid.mdx +89 -89
- package/src/pages/core/introduction.mdx +77 -77
- package/src/pages/core/shadows.astro +20 -20
- package/src/pages/core/typography.astro +49 -49
- package/src/pages/index.astro +133 -133
- package/src/pages/patterns/introduction.mdx +60 -60
- package/src/pwa.ts +12 -12
- package/src/styles/_variables.scss +70 -70
- package/src/styles/base/base.css +184 -184
- package/src/styles/base/grid.css +92 -92
- package/src/styles/base/typography.css +70 -70
- package/src/styles/content.css +73 -73
- package/src/styles/main.css +7 -7
- package/src/types/Product.ts +31 -31
- package/src/types/astro.d.ts +3 -3
- package/src/utils/product/getPriceFormatted.ts +15 -15
- package/src/utils/product/getProductChecklist.ts +17 -17
- package/src/utils/product/useFormatProductNumber.ts +41 -41
- package/src/utils/seo/getShorterDescription.ts +14 -14
- package/src/utils/text/formatDate.ts +5 -5
- package/src/utils/text/formatLocaleNumber.ts +6 -6
- package/src/utils/text/formatPad.ts +12 -12
- package/src/utils/text/getNumberFormatted.ts +33 -33
- package/src/utils/text/getTranslatedLink.ts +5 -5
- package/src/utils/text.ts +19 -19
- package/tailwind.config.cjs +8 -8
- package/tsconfig.json +28 -28
- package/uno-config/index.ts +259 -232
- package/uno-config/theme/breakpoints.ts +9 -9
- package/uno-config/theme/colors.ts +64 -64
- package/uno-config/theme/dimensions.ts +17 -17
- package/uno-config/theme/effects.ts +14 -14
- package/uno-config/theme/grid.ts +10 -10
- package/uno-config/theme/index.ts +28 -28
- package/uno-config/theme/shortcuts/buttons.ts +53 -53
- package/uno-config/theme/shortcuts/components.ts +123 -92
- package/uno-config/theme/shortcuts/index.ts +20 -20
- package/uno-config/theme/shortcuts/layout.ts +64 -64
- package/uno-config/theme/typography.ts +29 -29
- package/uno.config.ts +2 -2
- 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>
|