spoko-design-system 0.2.30 → 0.2.33

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 (130) hide show
  1. package/.astro/icon.d.ts +1627 -12
  2. package/.astro/settings.json +5 -0
  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 +113 -113
  12. package/astro-i18next.config.mjs +17 -17
  13. package/astro-i18next.config.ts +10 -10
  14. package/astro.config.mjs +147 -141
  15. package/dev-dist/sw.js +91 -91
  16. package/dev-dist/workbox-c676b6d3.js +3391 -3391
  17. package/index.ts +6 -6
  18. package/package.json +42 -40
  19. package/public/fonts/lg.svg +53 -53
  20. package/public/fonts/vwhead-bold-demo.html +549 -549
  21. package/public/fonts/vwhead-regular-demo.html +549 -549
  22. package/public/fonts/vwtext-bold-demo.html +549 -549
  23. package/public/fonts/vwtext-regular-demo.html +549 -549
  24. package/public/github.svg +3 -3
  25. package/public/grid_dot.svg +4 -4
  26. package/public/linkedin.svg +44 -44
  27. package/public/locales/en/translation.json +8 -8
  28. package/public/locales/pl/translation.json +8 -8
  29. package/public/make-scrollable-code-focusable.js +3 -3
  30. package/public/pagefind.yml +3 -3
  31. package/public/polo.blue.svg +29 -29
  32. package/public/spoko.space.svg +71 -71
  33. package/public/twitter.svg +46 -46
  34. package/renovate.json +6 -6
  35. package/sandbox.config.json +11 -11
  36. package/src/MyComponent.astro +8 -8
  37. package/src/components/Badge.vue +19 -19
  38. package/src/components/Badges.vue +21 -21
  39. package/src/components/Breadcrumbs.vue +110 -110
  40. package/src/components/Button.vue +55 -55
  41. package/src/components/ButtonCopy.vue +47 -47
  42. package/src/components/Card.astro +27 -27
  43. package/src/components/Carousel.astro +26 -26
  44. package/src/components/CategoryLink.astro +18 -18
  45. package/src/components/Copyright.astro +12 -12
  46. package/src/components/Date.astro +7 -7
  47. package/src/components/Faq.astro +33 -0
  48. package/src/components/FaqItem.astro +96 -0
  49. package/src/components/FeaturesList.vue +41 -41
  50. package/src/components/FuckRussia.vue +80 -80
  51. package/src/components/HandDrive.astro +29 -29
  52. package/src/components/Header/Header.astro +214 -214
  53. package/src/components/Header/SkipToContent.astro +1 -1
  54. package/src/components/Headline.vue +48 -48
  55. package/src/components/Image.astro +30 -30
  56. package/src/components/Jumbatron.vue +40 -40
  57. package/src/components/LeftSidebar.astro +53 -53
  58. package/src/components/MainColors.vue +23 -23
  59. package/src/components/MainInput.vue +15 -15
  60. package/src/components/Modal.astro +27 -27
  61. package/src/components/PageContent.astro +5 -5
  62. package/src/components/PartNumber.vue +27 -27
  63. package/src/components/PostHeader.astro +103 -103
  64. package/src/components/PrCode.vue +156 -156
  65. package/src/components/ProductCarousel.astro +38 -38
  66. package/src/components/ProductCodes.vue +39 -39
  67. package/src/components/ProductDetailName.vue +52 -52
  68. package/src/components/ProductDetailsList.vue +65 -65
  69. package/src/components/ProductNumber copy.astro +116 -116
  70. package/src/components/ProductNumber.astro +114 -114
  71. package/src/components/ProductTile.astro +48 -48
  72. package/src/components/Quote.vue +23 -23
  73. package/src/components/ReloadPrompt.astro +50 -50
  74. package/src/components/SlimBanner.vue +72 -72
  75. package/src/components/Table.vue +32 -32
  76. package/src/components/TableOfContents.astro +15 -15
  77. package/src/components/Translations.vue +23 -23
  78. package/src/components/flags/FlagPL.vue +3 -3
  79. package/src/components/flags/FlagUA.vue +2 -2
  80. package/src/components/layout/Container.astro +7 -7
  81. package/src/components/layout/Header.astro +80 -80
  82. package/src/config.ts +56 -56
  83. package/src/design.config.ts +81 -81
  84. package/src/env.d.ts +1 -1
  85. package/src/layouts/Layout.astro +60 -60
  86. package/src/layouts/MainLayout.astro +81 -81
  87. package/src/layouts/partials/FooterCommon.astro +4 -4
  88. package/src/layouts/partials/HeadCommon.astro +44 -44
  89. package/src/layouts/partials/HeadSEO.astro +41 -41
  90. package/src/pages/components/badges.mdx +57 -57
  91. package/src/pages/components/breadcrumbs.mdx +139 -139
  92. package/src/pages/components/buttons.mdx +236 -236
  93. package/src/pages/components/card.mdx +294 -294
  94. package/src/pages/components/carousel.mdx +62 -62
  95. package/src/pages/components/copyright.mdx +42 -42
  96. package/src/pages/components/details-list.mdx +115 -115
  97. package/src/pages/components/features-list.mdx +37 -37
  98. package/src/pages/components/flags.mdx +49 -49
  99. package/src/pages/components/fuck-russia.mdx +39 -39
  100. package/src/pages/components/hand-drive.mdx +38 -38
  101. package/src/pages/components/headline.mdx +152 -152
  102. package/src/pages/components/icons.astro +48 -48
  103. package/src/pages/components/image.mdx +513 -513
  104. package/src/pages/components/input.mdx +45 -45
  105. package/src/pages/components/jumbatron.mdx +95 -95
  106. package/src/pages/components/modal.mdx +64 -64
  107. package/src/pages/components/post-header.mdx +60 -60
  108. package/src/pages/components/pr-code.mdx +65 -65
  109. package/src/pages/components/product-number.mdx +66 -66
  110. package/src/pages/components/product-tile.mdx +51 -51
  111. package/src/pages/components/quote.mdx +33 -33
  112. package/src/pages/components/slimbanner.mdx +35 -35
  113. package/src/pages/components/table.mdx +108 -108
  114. package/src/pages/core/colors.mdx +10 -10
  115. package/src/pages/core/grid.mdx +89 -89
  116. package/src/pages/core/introduction.mdx +77 -77
  117. package/src/pages/core/shadows.astro +20 -20
  118. package/src/pages/core/typography.astro +47 -47
  119. package/src/pages/index.astro +126 -125
  120. package/src/pages/patterns/introduction.mdx +60 -60
  121. package/src/pwa.ts +12 -12
  122. package/src/styles/_variables.scss +66 -66
  123. package/src/styles/base/_base.scss +184 -184
  124. package/src/styles/base/_typography.scss +70 -70
  125. package/src/styles/base/grid.scss +93 -93
  126. package/src/styles/content.scss +73 -73
  127. package/src/styles/main.scss +7 -7
  128. package/tailwind.config.cjs +8 -8
  129. package/tsconfig.json +11 -11
  130. package/uno.config.ts +256 -256
@@ -1,157 +1,157 @@
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 lang="scss" scoped>
30
- .btn-prcode {
31
-
32
- &--pdp {
33
- @apply mb-1
34
- }
35
-
36
- &:before {
37
- @apply rounded-2 shadow-sm py-0.5 px-2 bg-gray-100 whitespace-nowrap text-xs dark:text-black dark:bg-lightBlue-500 text-center z-50;
38
-
39
- display: none;
40
- position: absolute;
41
- top: -10px;
42
- transform: translateY(-50%) translateX(-50%);
43
- left: 50%;
44
- }
45
-
46
- &:hover:before {
47
- display: block;
48
- }
49
-
50
- &--2JK {
51
- color: #f3881d;
52
-
53
- &:before {
54
- content: 'CROSS';
55
- }
56
- }
57
-
58
- &--1LR,
59
- &--1ZG,
60
- &--1ZJ {
61
- &:before {
62
- content: '⌀ 256 mm';
63
- }
64
- }
65
-
66
- &--1KD,
67
- &--1ZP,
68
- &--1ZR {
69
- &:before {
70
- content: '⌀ 310 mm';
71
- }
72
- }
73
-
74
- &--1ZD,
75
- &--1ZC,
76
- &--1LN {
77
- &:before {
78
- content: '⌀ 288 mm; LUCAS';
79
- }
80
- }
81
-
82
- &--2JZ {
83
- @apply: text-lightBlue-500;
84
-
85
- &:before {
86
- content: 'Bluemotion';
87
- }
88
- }
89
-
90
- &--7L6 {
91
- @apply: text-lightBlue-500;
92
-
93
- &:before {
94
- content: 'Bluemotion (CFWA + start-stop)';
95
- }
96
- }
97
-
98
- &--1KK,
99
- &--1KT,
100
- &--1KV,
101
- &--1LV,
102
- &--2EJ {
103
- &:before {
104
- content: '⌀ 230 mm';
105
- }
106
- }
107
-
108
- &--2JE {
109
- @apply text-lightBlue-700;
110
-
111
- &:before {
112
- content: 'BlueGT';
113
- }
114
- }
115
-
116
- &--2JP {
117
- &:before {
118
- content: 'R-Line';
119
- }
120
- }
121
-
122
- // WRC Street R
123
- &--E5M,
124
-
125
- // emblems/stickers
126
- &--1KD,
127
-
128
- //brakes
129
- &--1ZP,
130
-
131
- //brakes
132
- &--2JQ,
133
-
134
- //bumpers / engine parts
135
- &--TA2 {
136
- color: blue;
137
-
138
- &:before {
139
- content: 'R WRC Street';
140
- }
141
- }
142
-
143
- // GTI
144
- &--1KV,
145
- &--1ZD,
146
- &--1ZR,
147
- &--0NH,
148
- &--2JD {
149
- color: red;
150
-
151
- &:before {
152
- content: 'GTI';
153
- }
154
- }
155
-
156
- }
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 lang="scss" scoped>
30
+ .btn-prcode {
31
+
32
+ &--pdp {
33
+ @apply mb-1
34
+ }
35
+
36
+ &:before {
37
+ @apply rounded-2 shadow-sm py-0.5 px-2 bg-gray-100 whitespace-nowrap text-xs dark:text-black dark:bg-lightBlue-500 text-center z-50;
38
+
39
+ display: none;
40
+ position: absolute;
41
+ top: -10px;
42
+ transform: translateY(-50%) translateX(-50%);
43
+ left: 50%;
44
+ }
45
+
46
+ &:hover:before {
47
+ display: block;
48
+ }
49
+
50
+ &--2JK {
51
+ color: #f3881d;
52
+
53
+ &:before {
54
+ content: 'CROSS';
55
+ }
56
+ }
57
+
58
+ &--1LR,
59
+ &--1ZG,
60
+ &--1ZJ {
61
+ &:before {
62
+ content: '⌀ 256 mm';
63
+ }
64
+ }
65
+
66
+ &--1KD,
67
+ &--1ZP,
68
+ &--1ZR {
69
+ &:before {
70
+ content: '⌀ 310 mm';
71
+ }
72
+ }
73
+
74
+ &--1ZD,
75
+ &--1ZC,
76
+ &--1LN {
77
+ &:before {
78
+ content: '⌀ 288 mm; LUCAS';
79
+ }
80
+ }
81
+
82
+ &--2JZ {
83
+ @apply: text-lightBlue-500;
84
+
85
+ &:before {
86
+ content: 'Bluemotion';
87
+ }
88
+ }
89
+
90
+ &--7L6 {
91
+ @apply: text-lightBlue-500;
92
+
93
+ &:before {
94
+ content: 'Bluemotion (CFWA + start-stop)';
95
+ }
96
+ }
97
+
98
+ &--1KK,
99
+ &--1KT,
100
+ &--1KV,
101
+ &--1LV,
102
+ &--2EJ {
103
+ &:before {
104
+ content: '⌀ 230 mm';
105
+ }
106
+ }
107
+
108
+ &--2JE {
109
+ @apply text-lightBlue-700;
110
+
111
+ &:before {
112
+ content: 'BlueGT';
113
+ }
114
+ }
115
+
116
+ &--2JP {
117
+ &:before {
118
+ content: 'R-Line';
119
+ }
120
+ }
121
+
122
+ // WRC Street R
123
+ &--E5M,
124
+
125
+ // emblems/stickers
126
+ &--1KD,
127
+
128
+ //brakes
129
+ &--1ZP,
130
+
131
+ //brakes
132
+ &--2JQ,
133
+
134
+ //bumpers / engine parts
135
+ &--TA2 {
136
+ color: blue;
137
+
138
+ &:before {
139
+ content: 'R WRC Street';
140
+ }
141
+ }
142
+
143
+ // GTI
144
+ &--1KV,
145
+ &--1ZD,
146
+ &--1ZR,
147
+ &--0NH,
148
+ &--2JD {
149
+ color: red;
150
+
151
+ &:before {
152
+ content: 'GTI';
153
+ }
154
+ }
155
+
156
+ }
157
157
  </style>
@@ -1,38 +1,38 @@
1
- ---
2
- import ProductTile from "../components/ProductTile.astro";
3
- export const productObject = {
4
- name: "Combi-instrument MFA+",
5
- url: "https://google.com",
6
- number: "6R0920870F",
7
- photo:
8
- "https://img.freepik.com/darmowe-wektory/tlo-retro-modeli-geometrycznych_52683-17902.jpg?w=1380&t=st=1706311337",
9
- };
10
- ---
11
-
12
- <div class="bg-white rounded-lg p-4 w-full">
13
- <swiper-container
14
- class="flex w-full max-w-full"
15
- grid-rows="1"
16
- mousewheel-force-to-axis="true"
17
- navigation="false"
18
- scrollbar="false"
19
- slides-per-view="auto"
20
- space-between="0"
21
- >
22
- <swiper-slide class="carousel-product-tile">
23
- <ProductTile productObject={productObject} />
24
- </swiper-slide>
25
- <swiper-slide class="carousel-product-tile">
26
- <ProductTile productObject={productObject} />
27
- </swiper-slide>
28
- <swiper-slide class="carousel-product-tile">
29
- <ProductTile productObject={productObject} />
30
- </swiper-slide>
31
- <swiper-slide class="carousel-product-tile">
32
- <ProductTile productObject={productObject} />
33
- </swiper-slide>
34
- <swiper-slide class="carousel-product-tile">
35
- <ProductTile productObject={productObject} />
36
- </swiper-slide>
37
- </swiper-container>
38
- </div>
1
+ ---
2
+ import ProductTile from "../components/ProductTile.astro";
3
+ export const productObject = {
4
+ name: "Combi-instrument MFA+",
5
+ url: "https://google.com",
6
+ number: "6R0920870F",
7
+ photo:
8
+ "https://img.freepik.com/darmowe-wektory/tlo-retro-modeli-geometrycznych_52683-17902.jpg?w=1380&t=st=1706311337",
9
+ };
10
+ ---
11
+
12
+ <div class="bg-white rounded-lg p-4 w-full">
13
+ <swiper-container
14
+ class="flex w-full max-w-full"
15
+ grid-rows="1"
16
+ mousewheel-force-to-axis="true"
17
+ navigation="false"
18
+ scrollbar="false"
19
+ slides-per-view="auto"
20
+ space-between="0"
21
+ >
22
+ <swiper-slide class="carousel-product-tile">
23
+ <ProductTile productObject={productObject} />
24
+ </swiper-slide>
25
+ <swiper-slide class="carousel-product-tile">
26
+ <ProductTile productObject={productObject} />
27
+ </swiper-slide>
28
+ <swiper-slide class="carousel-product-tile">
29
+ <ProductTile productObject={productObject} />
30
+ </swiper-slide>
31
+ <swiper-slide class="carousel-product-tile">
32
+ <ProductTile productObject={productObject} />
33
+ </swiper-slide>
34
+ <swiper-slide class="carousel-product-tile">
35
+ <ProductTile productObject={productObject} />
36
+ </swiper-slide>
37
+ </swiper-container>
38
+ </div>
@@ -1,39 +1,39 @@
1
- <script lang="ts" setup>
2
- import type { PropType } from 'vue'
3
- import PrCode from './PrCode.vue';
4
-
5
- const props = defineProps({
6
- prcodes: {
7
- type: Object as PropType<string[] | null>,
8
- default: null,
9
- required: true,
10
- },
11
- isPdp: {
12
- type: Boolean,
13
- default: false,
14
- required: false,
15
- },
16
- })
17
-
18
- const codes = props.prcodes || []
19
- const decodedCodes = codes ? codes.sort() : []
20
-
21
- const settings = {
22
- prcodes: decodedCodes,
23
- }
24
- </script>
25
-
26
- <template>
27
-
28
- <span
29
- v-for="(prcode, index) in settings.prcodes"
30
- :key="index"
31
- class="not-last:mr-1"
32
- >
33
- <PrCode :prcode="prcode" v-if="!String(prcode).includes('+')" />
34
- <span v-else >
35
- <PrCode v-for="(splittedCode, index2) in String(prcode).split('+')" :key="index2" :prcode="splittedCode" />
36
- </span>
37
- </span>
38
- </template>
39
-
1
+ <script lang="ts" setup>
2
+ import type { PropType } from 'vue'
3
+ import PrCode from './PrCode.vue';
4
+
5
+ const props = defineProps({
6
+ prcodes: {
7
+ type: Object as PropType<string[] | null>,
8
+ default: null,
9
+ required: true,
10
+ },
11
+ isPdp: {
12
+ type: Boolean,
13
+ default: false,
14
+ required: false,
15
+ },
16
+ })
17
+
18
+ const codes = props.prcodes || []
19
+ const decodedCodes = codes ? codes.sort() : []
20
+
21
+ const settings = {
22
+ prcodes: decodedCodes,
23
+ }
24
+ </script>
25
+
26
+ <template>
27
+
28
+ <span
29
+ v-for="(prcode, index) in settings.prcodes"
30
+ :key="index"
31
+ class="not-last:mr-1"
32
+ >
33
+ <PrCode :prcode="prcode" v-if="!String(prcode).includes('+')" />
34
+ <span v-else >
35
+ <PrCode v-for="(splittedCode, index2) in String(prcode).split('+')" :key="index2" :prcode="splittedCode" />
36
+ </span>
37
+ </span>
38
+ </template>
39
+
@@ -1,53 +1,53 @@
1
- <script lang="ts" setup>
2
- import { PropType } from 'vue';
3
-
4
- const props = defineProps({
5
- as: {
6
- type: String as PropType< 'th'| 'td' | 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6' | 'p' | 'div' | 'span'>,
7
- default: 'div',
8
- required: true,
9
- },
10
- text: {
11
- type: String,
12
- default: '',
13
- required: true,
14
- },
15
- styles: {
16
- type: String,
17
- default: '',
18
- required: false,
19
- }
20
- })
21
- </script>
22
-
23
- <template>
24
- <component :is="props.as" class="font-bold detail-name w-full sm:w-50 flex 2xl:w-64">
25
- <span :class="styles && styles.length ? styles : 'mt-auto'">
26
- <b class="bg-white z-1 colon-after pr-1">{{ props.text }}</b>
27
- </span>
28
- </component>
29
- </template>
30
-
31
-
32
- <style lang="scss">
33
- .detail-name {
34
- @apply overflow-hidden relative;
35
-
36
- span {
37
- @apply block bg-white relative z-10 pr-1.5 w-full;
38
-
39
- &:before {
40
- // order: 2;
41
- @apply text-gray-300 absolute select-none border-b border-gray-200 w-full -z-1 absolute content-empty left-0;
42
- height: 1em;
43
- white-space: nowrap;
44
- font-weight: 100;
45
- bottom: 2px;
46
- flex: 1;
47
- }
48
- }
49
-
50
-
51
- }
52
-
1
+ <script lang="ts" setup>
2
+ import { PropType } from 'vue';
3
+
4
+ const props = defineProps({
5
+ as: {
6
+ type: String as PropType< 'th'| 'td' | 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6' | 'p' | 'div' | 'span'>,
7
+ default: 'div',
8
+ required: true,
9
+ },
10
+ text: {
11
+ type: String,
12
+ default: '',
13
+ required: true,
14
+ },
15
+ styles: {
16
+ type: String,
17
+ default: '',
18
+ required: false,
19
+ }
20
+ })
21
+ </script>
22
+
23
+ <template>
24
+ <component :is="props.as" class="font-bold detail-name w-full sm:w-50 flex 2xl:w-64">
25
+ <span :class="styles && styles.length ? styles : 'mt-auto'">
26
+ <b class="bg-white z-1 colon-after pr-1">{{ props.text }}</b>
27
+ </span>
28
+ </component>
29
+ </template>
30
+
31
+
32
+ <style lang="scss">
33
+ .detail-name {
34
+ @apply overflow-hidden relative;
35
+
36
+ span {
37
+ @apply block bg-white relative z-10 pr-1.5 w-full;
38
+
39
+ &:before {
40
+ // order: 2;
41
+ @apply text-gray-300 absolute select-none border-b border-gray-200 w-full -z-1 absolute content-empty left-0;
42
+ height: 1em;
43
+ white-space: nowrap;
44
+ font-weight: 100;
45
+ bottom: 2px;
46
+ flex: 1;
47
+ }
48
+ }
49
+
50
+
51
+ }
52
+
53
53
  </style>