spoko-design-system 0.2.40 → 0.2.42

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 (158) hide show
  1. package/.env.example +2 -0
  2. package/.github/dependabot.yml +11 -11
  3. package/.github/todo.yml +3 -3
  4. package/.github/workflows/deploy.yml +39 -39
  5. package/.stackblitzrc +5 -5
  6. package/.vscode/extensions.json +5 -5
  7. package/.vscode/launch.json +11 -11
  8. package/.vscode/settings.json +5 -5
  9. package/LICENSE +21 -21
  10. package/README.md +113 -113
  11. package/astro-i18next.config.mjs +17 -17
  12. package/astro-i18next.config.ts +10 -10
  13. package/astro.config.mjs +147 -147
  14. package/dev-dist/sw.js +91 -91
  15. package/dev-dist/workbox-c676b6d3.js +3391 -3391
  16. package/index.ts +58 -33
  17. package/package.json +1 -1
  18. package/public/fonts/lg.svg +53 -53
  19. package/public/fonts/vwhead-bold-demo.html +549 -549
  20. package/public/fonts/vwhead-regular-demo.html +549 -549
  21. package/public/fonts/vwtext-bold-demo.html +549 -549
  22. package/public/fonts/vwtext-regular-demo.html +549 -549
  23. package/public/github.svg +3 -3
  24. package/public/grid_dot.svg +4 -4
  25. package/public/linkedin.svg +44 -44
  26. package/public/locales/en/translation.json +8 -8
  27. package/public/locales/pl/translation.json +8 -8
  28. package/public/make-scrollable-code-focusable.js +3 -3
  29. package/public/pagefind.yml +3 -3
  30. package/public/polo.blue.svg +29 -29
  31. package/public/spoko.space.svg +71 -71
  32. package/public/twitter.svg +46 -46
  33. package/renovate.json +6 -6
  34. package/sandbox.config.json +11 -11
  35. package/src/MyComponent.astro +8 -8
  36. package/src/components/Badge.vue +19 -19
  37. package/src/components/Badges.vue +21 -21
  38. package/src/components/Breadcrumbs.vue +110 -110
  39. package/src/components/Button.vue +55 -55
  40. package/src/components/ButtonCopy.vue +47 -47
  41. package/src/components/Card.astro +27 -27
  42. package/src/components/Carousel.astro +26 -26
  43. package/src/components/Category/CategoriesCarousel.astro +101 -0
  44. package/src/components/Category/CategoriesSidebar.astro +187 -0
  45. package/src/components/Category/CategoryDetails.astro +82 -0
  46. package/src/components/Category/CategoryLink.vue +23 -0
  47. package/src/components/Category/CategorySection.astro +70 -0
  48. package/src/components/Category/CategorySidebarToggler.vue +10 -0
  49. package/src/components/Category/SubCategoryLink.vue +29 -0
  50. package/src/components/CategoryLink.astro +18 -18
  51. package/src/components/Copyright.astro +12 -12
  52. package/src/components/Date.astro +7 -7
  53. package/src/components/Faq.astro +33 -33
  54. package/src/components/FaqItem.astro +96 -96
  55. package/src/components/FeaturesList.vue +41 -41
  56. package/src/components/FuckRussia.vue +80 -80
  57. package/src/components/HandDrive.astro +29 -29
  58. package/src/components/Header/Header.astro +214 -214
  59. package/src/components/Header/SkipToContent.astro +1 -1
  60. package/src/components/Headline.vue +48 -48
  61. package/src/components/Image.astro +30 -30
  62. package/src/components/Jumbatron.vue +40 -40
  63. package/src/components/LeftSidebar.astro +53 -53
  64. package/src/components/MainColors.vue +23 -23
  65. package/src/components/MainInput.vue +15 -15
  66. package/src/components/Modal.astro +27 -27
  67. package/src/components/PageContent.astro +5 -5
  68. package/src/components/PartNumber.vue +27 -27
  69. package/src/components/PostHeader.astro +103 -103
  70. package/src/components/PrCode.vue +156 -156
  71. package/src/components/Product/ProductButton.vue +18 -0
  72. package/src/components/Product/ProductCodes.vue +167 -0
  73. package/src/components/Product/ProductEngineType.vue +42 -42
  74. package/src/components/Product/ProductImage.astro +41 -41
  75. package/src/components/Product/ProductLinkInfo.astro +37 -37
  76. package/src/components/Product/ProductNumber.astro +104 -104
  77. package/src/components/ProductCarousel.astro +38 -38
  78. package/src/components/ProductCodes.vue +39 -39
  79. package/src/components/ProductDetailName.vue +52 -52
  80. package/src/components/ProductDetailsList.vue +65 -65
  81. package/src/components/ProductNumber copy.astro +116 -116
  82. package/src/components/ProductNumber.astro +104 -104
  83. package/src/components/ProductTile.astro +48 -48
  84. package/src/components/Quote.vue +23 -23
  85. package/src/components/ReloadPrompt.astro +50 -50
  86. package/src/components/SlimBanner.vue +72 -72
  87. package/src/components/Table.vue +32 -32
  88. package/src/components/TableOfContents.astro +15 -15
  89. package/src/components/Translations.vue +23 -23
  90. package/src/components/flags/FlagPL.vue +3 -3
  91. package/src/components/flags/FlagUA.vue +2 -2
  92. package/src/components/layout/Container.astro +7 -7
  93. package/src/components/layout/Header.astro +80 -80
  94. package/src/config.ts +56 -56
  95. package/src/design.config.ts +81 -81
  96. package/src/env.d.ts +1 -1
  97. package/src/layouts/Layout.astro +60 -60
  98. package/src/layouts/MainLayout.astro +81 -81
  99. package/src/layouts/partials/FooterCommon.astro +4 -4
  100. package/src/layouts/partials/HeadCommon.astro +44 -44
  101. package/src/layouts/partials/HeadSEO.astro +41 -41
  102. package/src/pages/components/badges.mdx +57 -57
  103. package/src/pages/components/breadcrumbs.mdx +139 -139
  104. package/src/pages/components/buttons.mdx +236 -236
  105. package/src/pages/components/card.mdx +294 -294
  106. package/src/pages/components/carousel.mdx +62 -62
  107. package/src/pages/components/copyright.mdx +42 -42
  108. package/src/pages/components/details-list.mdx +115 -115
  109. package/src/pages/components/features-list.mdx +37 -37
  110. package/src/pages/components/flags.mdx +49 -49
  111. package/src/pages/components/fuck-russia.mdx +39 -39
  112. package/src/pages/components/hand-drive.mdx +38 -38
  113. package/src/pages/components/headline.mdx +152 -152
  114. package/src/pages/components/icons.astro +48 -48
  115. package/src/pages/components/image.mdx +513 -513
  116. package/src/pages/components/input.mdx +45 -45
  117. package/src/pages/components/jumbatron.mdx +95 -95
  118. package/src/pages/components/modal.mdx +64 -64
  119. package/src/pages/components/post-header.mdx +60 -60
  120. package/src/pages/components/pr-code.mdx +65 -65
  121. package/src/pages/components/product-number.mdx +66 -66
  122. package/src/pages/components/product-tile.mdx +51 -51
  123. package/src/pages/components/quote.mdx +33 -33
  124. package/src/pages/components/slimbanner.mdx +35 -35
  125. package/src/pages/components/table.mdx +108 -108
  126. package/src/pages/core/colors.mdx +10 -10
  127. package/src/pages/core/grid.mdx +89 -89
  128. package/src/pages/core/introduction.mdx +77 -77
  129. package/src/pages/core/shadows.astro +20 -20
  130. package/src/pages/core/typography.astro +47 -47
  131. package/src/pages/index.astro +126 -126
  132. package/src/pages/patterns/introduction.mdx +60 -60
  133. package/src/pwa.ts +12 -12
  134. package/src/styles/_variables.scss +70 -70
  135. package/src/styles/base/base.css +184 -184
  136. package/src/styles/base/grid.css +92 -92
  137. package/src/styles/base/typography.css +70 -70
  138. package/src/styles/content.css +73 -73
  139. package/src/styles/main.css +7 -7
  140. package/src/types/Product.ts +31 -31
  141. package/src/types/astro.d.ts +4 -4
  142. package/src/types/index.ts +237 -0
  143. package/src/utils/api/getCategories.ts +3 -0
  144. package/src/utils/category/getMainCategoryList.ts +31 -0
  145. package/src/utils/category/getSortedCategories.ts +11 -0
  146. package/src/utils/getData.ts +52 -0
  147. package/src/utils/product/getPriceFormatted.ts +14 -0
  148. package/src/utils/product/getProductChecklist.ts +15 -0
  149. package/src/utils/seo/getShorterDescription.ts +12 -0
  150. package/src/utils/text/formatDate.ts +6 -0
  151. package/src/utils/text/formatLocaleNumber.ts +7 -0
  152. package/src/utils/text/formatPad.ts +12 -0
  153. package/src/utils/text/getNumberFormatted.ts +33 -0
  154. package/src/utils/text/getTranslatedLink.ts +5 -0
  155. package/src/utils/text.ts +42 -42
  156. package/tailwind.config.cjs +8 -8
  157. package/tsconfig.json +28 -11
  158. package/uno.config.ts +256 -256
package/src/utils/text.ts CHANGED
@@ -1,43 +1,43 @@
1
-
2
- import i18next, { t } from "i18next";
3
-
4
- // import { t } from "i18next";
5
-
6
- export const getTranslation = (translationKey:string) => {
7
- // console.log('search translation for', translationKey, t(translationKey))
8
- return i18next.exists(translationKey) ? t(translationKey) : `missing ${translationKey}`
9
- }
10
-
11
- export const text2paragraphs = (text:string, firstLineBottomMargin:boolean=false) => {
12
- // return '<p class="mb-2">' + text.split(/[\n\r]+/g).join('</p><p>') + '</p>'
13
- let out = '<p' + (firstLineBottomMargin ? 'class="mb-3"' : '') + '>' + text.split("\n").join('</p><p>') + '<\/p>';
14
- return out.split('<p><\/p><p>').join('<p class="mt-3">');
15
- }
16
-
17
-
18
- export const getShorterDescription = (description: string) => {
19
- function cutString(s:string, n:number) {
20
- if (s && s.length > 150) {
21
- const text = s.replace(/(\n)/g," ")
22
- const cut = text.indexOf('. ', n);
23
- if (cut == -1) return text;
24
- return `${text.substring(0, cut)}.`
25
- } else {
26
- return s || ''
27
- }
28
- }
29
-
30
- return cutString(description, 150) || ''
31
- }
32
-
33
- export const countWords = (str: string) => {
34
- return str.trim().split(/\s+/).length;
35
- }
36
-
37
- export const firstSentence = (str: string) => {
38
- return str.split('\.');
39
- }
40
-
41
- export const removeSemicolon = (name: string) => {
42
- return name.replace(';', '')
1
+
2
+ import i18next, { t } from "i18next";
3
+
4
+ // import { t } from "i18next";
5
+
6
+ export const getTranslation = (translationKey:string) => {
7
+ // console.log('search translation for', translationKey, t(translationKey))
8
+ return i18next.exists(translationKey) ? t(translationKey) : `missing ${translationKey}`
9
+ }
10
+
11
+ export const text2paragraphs = (text:string, firstLineBottomMargin:boolean=false) => {
12
+ // return '<p class="mb-2">' + text.split(/[\n\r]+/g).join('</p><p>') + '</p>'
13
+ let out = '<p' + (firstLineBottomMargin ? 'class="mb-3"' : '') + '>' + text.split("\n").join('</p><p>') + '<\/p>';
14
+ return out.split('<p><\/p><p>').join('<p class="mt-3">');
15
+ }
16
+
17
+
18
+ export const getShorterDescription = (description: string) => {
19
+ function cutString(s:string, n:number) {
20
+ if (s && s.length > 150) {
21
+ const text = s.replace(/(\n)/g," ")
22
+ const cut = text.indexOf('. ', n);
23
+ if (cut == -1) return text;
24
+ return `${text.substring(0, cut)}.`
25
+ } else {
26
+ return s || ''
27
+ }
28
+ }
29
+
30
+ return cutString(description, 150) || ''
31
+ }
32
+
33
+ export const countWords = (str: string) => {
34
+ return str.trim().split(/\s+/).length;
35
+ }
36
+
37
+ export const firstSentence = (str: string) => {
38
+ return str.split('\.');
39
+ }
40
+
41
+ export const removeSemicolon = (name: string) => {
42
+ return name.replace(';', '')
43
43
  }
@@ -1,8 +1,8 @@
1
- module.exports = {
2
- // darkMode: "class",
3
- content: ["./src/**/*.{astro,html,js,jsx,svelte,ts,tsx,vue}"],
4
- theme: {
5
- extend: {},
6
- },
7
- plugins: [],
8
- };
1
+ module.exports = {
2
+ // darkMode: "class",
3
+ content: ["./src/**/*.{astro,html,js,jsx,svelte,ts,tsx,vue}"],
4
+ theme: {
5
+ extend: {},
6
+ },
7
+ plugins: [],
8
+ };
package/tsconfig.json CHANGED
@@ -1,12 +1,29 @@
1
- {
2
- "include": ["env.d.ts", "src/**/*", "src/**/*.vue", "src/**/*.astro", "src/**/*.d.ts"],
3
- "compilerOptions": {
4
- "target": "esnext",
5
- "useDefineForClassFields": true,
6
- "module": "esnext",
7
- "moduleResolution": "node",
8
- "jsx": "preserve",
9
- "allowJs": true,
10
- "types": ["vite/client", "@astrojs/ts"]
11
- }
1
+ {
2
+ "include": ["env.d.ts", "src/**/*", "src/**/*.vue", "src/**/*.astro", "src/**/*.d.ts"],
3
+ "compilerOptions": {
4
+ "baseUrl": "src",
5
+
6
+ // Enable JSON imports.
7
+ "resolveJsonModule": true,
8
+
9
+ // Enable stricter transpilation for better output.
10
+ "isolatedModules": true,
11
+
12
+ // Astro will directly run your TypeScript code, no transpilation needed.
13
+ "noEmit": true,
14
+
15
+ "target": "esnext",
16
+ "useDefineForClassFields": true,
17
+ "module": "esnext",
18
+ "moduleResolution": "node",
19
+ "jsx": "preserve",
20
+ "allowJs": true,
21
+ "types": ["vitest, vite/client", "@astrojs/ts","unplugin-vue-macros/macros-global", "unplugin-icons/types/astro"],
22
+ "paths": {
23
+ "@components/*": ["components/*"],
24
+ "@utils/*": ["utils/*"],
25
+ "@types/*": ["types/*"]
26
+ }
27
+ },
28
+ "exclude": ["dist", "node_modules"]
12
29
  }