spoko-design-system 1.0.0 → 1.0.1

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.
@@ -1 +1 @@
1
- [["Map",1,2],"meta::meta",["Map",3,4,5,6],"astro-version","5.13.2","astro-config-digest","{\"root\":{},\"srcDir\":{},\"publicDir\":{},\"outDir\":{},\"cacheDir\":{},\"site\":\"https://sds.spoko.space/\",\"compressHTML\":true,\"base\":\"/\",\"trailingSlash\":\"ignore\",\"output\":\"static\",\"scopedStyleStrategy\":\"attribute\",\"build\":{\"format\":\"directory\",\"client\":{},\"server\":{},\"assets\":\"_astro\",\"serverEntry\":\"entry.mjs\",\"redirects\":true,\"inlineStylesheets\":\"auto\",\"concurrency\":1},\"server\":{\"open\":false,\"host\":false,\"port\":1234,\"streaming\":true,\"allowedHosts\":[]},\"redirects\":{},\"image\":{\"endpoint\":{\"route\":\"/_image\"},\"service\":{\"entrypoint\":\"astro/assets/services/sharp\",\"config\":{}},\"domains\":[\"placehold.co\",\"api.polo.blue\",\"polo.blue\",\"media.istockphoto.com\",\"freepik.com\",\"img.freepik.com\",\"polo6r.pl\"],\"remotePatterns\":[],\"responsiveStyles\":false},\"devToolbar\":{\"enabled\":true},\"markdown\":{\"syntaxHighlight\":{\"type\":\"shiki\",\"excludeLangs\":[\"math\"]},\"shikiConfig\":{\"langs\":[],\"langAlias\":{},\"theme\":\"github-dark\",\"themes\":{},\"wrap\":false,\"transformers\":[]},\"remarkPlugins\":[],\"rehypePlugins\":[],\"remarkRehype\":{},\"gfm\":true,\"smartypants\":true},\"security\":{\"checkOrigin\":true},\"env\":{\"schema\":{},\"validateSecrets\":false},\"experimental\":{\"clientPrerender\":false,\"contentIntellisense\":false,\"headingIdCompat\":false,\"preserveScriptOrder\":false,\"liveContentCollections\":false,\"csp\":false,\"staticImportMetaEnv\":false,\"chromeDevtoolsWorkspace\":false},\"legacy\":{\"collections\":false}}"]
1
+ [["Map",1,2],"meta::meta",["Map",3,4,5,6],"astro-version","5.13.10","astro-config-digest","{\"root\":{},\"srcDir\":{},\"publicDir\":{},\"outDir\":{},\"cacheDir\":{},\"site\":\"https://sds.spoko.space/\",\"compressHTML\":true,\"base\":\"/\",\"trailingSlash\":\"ignore\",\"output\":\"static\",\"scopedStyleStrategy\":\"attribute\",\"build\":{\"format\":\"directory\",\"client\":{},\"server\":{},\"assets\":\"_astro\",\"serverEntry\":\"entry.mjs\",\"redirects\":true,\"inlineStylesheets\":\"auto\",\"concurrency\":1},\"server\":{\"open\":false,\"host\":false,\"port\":1234,\"streaming\":true,\"allowedHosts\":[]},\"redirects\":{},\"image\":{\"endpoint\":{\"route\":\"/_image\"},\"service\":{\"entrypoint\":\"astro/assets/services/sharp\",\"config\":{}},\"domains\":[\"placehold.co\",\"api.polo.blue\",\"polo.blue\",\"media.istockphoto.com\",\"freepik.com\",\"img.freepik.com\",\"polo6r.pl\"],\"remotePatterns\":[],\"responsiveStyles\":false},\"devToolbar\":{\"enabled\":true},\"markdown\":{\"syntaxHighlight\":{\"type\":\"shiki\",\"excludeLangs\":[\"math\"]},\"shikiConfig\":{\"langs\":[],\"langAlias\":{},\"theme\":\"github-dark\",\"themes\":{},\"wrap\":false,\"transformers\":[]},\"remarkPlugins\":[],\"rehypePlugins\":[],\"remarkRehype\":{},\"gfm\":true,\"smartypants\":true},\"security\":{\"checkOrigin\":true},\"env\":{\"schema\":{},\"validateSecrets\":false},\"experimental\":{\"clientPrerender\":false,\"contentIntellisense\":false,\"headingIdCompat\":false,\"preserveScriptOrder\":false,\"liveContentCollections\":false,\"csp\":false,\"staticImportMetaEnv\":false,\"chromeDevtoolsWorkspace\":false},\"legacy\":{\"collections\":false}}"]
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "_variables": {
3
- "lastUpdateCheck": 1757938917015
3
+ "lastUpdateCheck": 1758628311891
4
4
  }
5
5
  }
@@ -5,7 +5,17 @@
5
5
  "Bash(npm run dev:*)",
6
6
  "Bash(tasklist)",
7
7
  "Bash(findstr:*)",
8
- "Bash(git add:*)"
8
+ "Bash(git add:*)",
9
+ "Bash(npm install:*)",
10
+ "Bash(pnpm add:*)",
11
+ "Bash(pnpm i:*)",
12
+ "Bash(pnpm install:*)",
13
+ "Bash(pnpm dev:*)",
14
+ "Bash(node:*)",
15
+ "WebFetch(domain:polo.blue)",
16
+ "Bash(git commit:*)",
17
+ "Bash(git push:*)",
18
+ "Bash(pnpm run:*)"
9
19
  ],
10
20
  "deny": [],
11
21
  "ask": []
@@ -1,5 +1,4 @@
1
1
  {
2
2
  "recommendations": ["astro-build.astro-vscode"],
3
3
  "unwantedRecommendations": [],
4
- "lokalise.i18n-ally"
5
4
  }
@@ -1,6 +1,2 @@
1
1
  {
2
- "i18n-ally.sourceLanguage": "en",
3
- "i18n-ally.keystyle": "nested",
4
- "i18n-ally.localesPaths": "public/locales",
5
- "i18n-ally.sortKeys": true,
6
2
  }
package/CHANGELOG.md CHANGED
@@ -1,3 +1,11 @@
1
+ ## [1.0.1](https://github.com/polo-blue/sds/compare/v1.0.0...v1.0.1) (2025-09-23)
2
+
3
+ ### Bug Fixes
4
+
5
+ * improve design system and add icon collections documentation ([007c465](https://github.com/polo-blue/sds/commit/007c46522f48bad8d0a04fbe811066edf6c3c78f))
6
+ * remove invalid vscode-icons to resolve build errors ([ab1fea5](https://github.com/polo-blue/sds/commit/ab1fea51182b35159953ae0005bb8c226fe14e9d))
7
+ * update icons and improve UnoCSS extractor ([aca7861](https://github.com/polo-blue/sds/commit/aca786103a56f5a180a15d6db044068bab596f62))
8
+
1
9
  ## 1.0.0 (2025-09-23)
2
10
 
3
11
  ### Features
package/README.md CHANGED
@@ -39,15 +39,14 @@ Most of the components from this repository can be seen in my projects:
39
39
  - https://polo6r.pl
40
40
 
41
41
 
42
- ### Feateures
42
+ ### Features
43
43
  - ⚡️[Vue 3](https://github.com/vuejs/core), [Vite](https://github.com/vitejs/vite), [pnpm](https://pnpm.io/) - born with fastness
44
44
  - 🎨 [UnoCSS](https://github.com/antfu/unocss) - the instant on-demand atomic CSS engine
45
45
  - 😃 [astro-icon](https://github.com/natemoo-re/astro-icon) - for local icons, sprites and `@iconify-json/*` sets
46
46
  - 🍔 [astro-navbar](https://github.com/surjithctly/astro-navbar) - fully responsive and accessible headless navigation bar
47
- - 🌍 [astro-i18next](https://github.com/yassinedoghri/astro-i18next) - Astro integration of i18next
48
47
  - 🔎 [astro-pagefind](https://github.com/shishkin/astro-pagefind) - Astro integration for Pagefind static site search
49
48
  - 🗒 [astrojs/mdx](https://github.com/withastro/astro/tree/main/packages/integrations/mdx/) - markdown support
50
- - 📦 [astro-compress](https://github.com/astro-community/AstroCompress) - compression utilities to your Astro project
49
+ - 📦 [Playform compression](https://github.com/Playform/compress) - compression utilities to your Astro project
51
50
  - 📲 [PWA](https://github.com/vite-pwa/astro) - Zero-config PWA Integration for Astro
52
51
  - 🏷️ [astro-meta-tags](https://github.com/patrick91/astro-meta-tags) - Meta Tags inside for Astro Dev Toolbar
53
52
  - 🖨 Static-site generation (SSG)
@@ -55,6 +54,23 @@ Most of the components from this repository can be seen in my projects:
55
54
  - 🌠 [View Transitions API](https://docs.astro.build/en/guides/view-transitions/#full-site-view-transitions-spa-mode) - [View Transition API](https://developer.mozilla.org/en-US/docs/Web/API/Document/startViewTransition) - makes it easy to change the DOM in a single step, while creating an animated transition between the two states. It's available in Chrome 111+ ([more details](https://developer.chrome.com/docs/web-platform/view-transitions?hl=en))
56
55
  - ☁️ Deploy on Netlify
57
56
 
57
+ ### Icon Collections
58
+
59
+ The design system includes carefully curated icon collections from Iconify:
60
+
61
+ - 🎨 [Material Design Icons](https://icon-sets.iconify.design/mdi/) - comprehensive icon set for UI elements
62
+ - 🚗 [Ant Design Icons](https://icon-sets.iconify.design/ant-design/) - clean outlined icons
63
+ - 📱 [Bootstrap Icons](https://icon-sets.iconify.design/bi/) - simple and consistent icons
64
+ - 🎯 [Boxicons](https://icon-sets.iconify.design/bx/) - high quality web icons
65
+ - 🌍 [Carbon Icons](https://icon-sets.iconify.design/carbon/) - IBM's design language icons
66
+ - 🎪 [Lucide Icons](https://icon-sets.iconify.design/lucide/) - beautiful & consistent icon toolkit
67
+ - 🎨 [Streamline Freehand Color](https://icon-sets.iconify.design/streamline-freehand-color/) - hand-drawn style colored icons
68
+ - 📟 [VS Code Icons](https://icon-sets.iconify.design/vscode-icons/) - file type and technology icons
69
+ - 🏢 [Simple Icons](https://icon-sets.iconify.design/simple-icons/) - brand icons for popular services
70
+ - ⚡ [Fluent UI Icons](https://icon-sets.iconify.design/fluent/) - Microsoft's design system icons
71
+
72
+ See the complete list and configuration in [`icon.config.ts`](./icon.config.ts).
73
+
58
74
  ### Adding new sections
59
75
 
60
76
  Although it's not required, you can create folders for new sections.
package/astro.config.mjs CHANGED
@@ -3,7 +3,6 @@ import { iconConfig } from './icon.config';
3
3
  import vue from "@astrojs/vue";
4
4
  import mdx from '@astrojs/mdx';
5
5
  import UnoCSS from '@unocss/astro';
6
- import astroI18next from "astro-i18next";
7
6
  import icon from "astro-icon";
8
7
  import sitemap from "@astrojs/sitemap";
9
8
  import pagefind from "astro-pagefind";
@@ -28,7 +27,6 @@ export default defineConfig({
28
27
  // Enable Vue to support Vue3 components
29
28
  vue(),
30
29
  mdx(),
31
- astroI18next(),
32
30
  AstroPWA({
33
31
  mode: 'production',
34
32
  base: '/',
package/icon.config.ts CHANGED
@@ -3,10 +3,13 @@
3
3
  interface IconConfig {
4
4
  include: {
5
5
  [key: string]: string[];
6
- }
6
+ };
7
+ collections?: {
8
+ [key: string]: () => Promise<any>;
9
+ };
7
10
  }
8
11
 
9
- // Lista wszystkich wspieranych kolekcji
12
+ // List of all supported collections
10
13
  export const iconCollections = [
11
14
  'ant-design',
12
15
  'bi',
@@ -32,6 +35,8 @@ export const iconCollections = [
32
35
  'system-uicons',
33
36
  'uil',
34
37
  'lucide',
38
+ 'vscode-icons',
39
+ 'streamline-freehand-color',
35
40
  ] as const;
36
41
 
37
42
  export type IconCollectionName = typeof iconCollections[number];
@@ -230,6 +235,7 @@ export const iconConfig: IconConfig = {
230
235
  ],
231
236
 
232
237
  "simple-icons": [
238
+ "astro",
233
239
  "ebay",
234
240
  "allegro",
235
241
  "volkswagen",
@@ -291,7 +297,31 @@ export const iconConfig: IconConfig = {
291
297
 
292
298
  'system-uicons': [
293
299
  'document-justified'
300
+ ],
301
+
302
+ 'vscode-icons': [
303
+ 'file-type-astro',
304
+ 'file-type-unocss',
305
+ 'file-type-vue',
306
+ 'file-type-typescript',
307
+ 'file-type-node',
308
+ 'file-type-npm'
309
+ ],
310
+
311
+ 'streamline-freehand-color': [
312
+ 'data-transfer-document-module',
313
+ 'design-process-drawing-board',
314
+ 'app-window-source-code',
315
+ 'app-window-layout',
316
+ 'database',
317
+ 'module-building-blocks',
318
+ 'layouts-array-1',
319
+ 'archive-box',
320
+ 'donation-charity-donate-box'
294
321
  ]
322
+ },
323
+ collections: {
324
+ "streamline-freehand-color": () => import("@iconify-json/streamline-freehand-color/icons.json")
295
325
  }
296
326
  };
297
327
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "spoko-design-system",
3
- "version": "1.0.0",
3
+ "version": "1.0.1",
4
4
  "private": false,
5
5
  "main": "./index.ts",
6
6
  "module": "./index.ts",
@@ -75,8 +75,12 @@
75
75
  "@iconify-json/octicon": "^1.2.14",
76
76
  "@iconify-json/ph": "^1.2.2",
77
77
  "@iconify-json/simple-icons": "^1.2.52",
78
+ "@iconify-json/streamline": "^1.2.5",
79
+ "@iconify-json/streamline-emojis": "^1.2.4",
80
+ "@iconify-json/streamline-freehand-color": "^1.2.2",
78
81
  "@iconify-json/system-uicons": "^1.2.4",
79
82
  "@iconify-json/uil": "^1.2.3",
83
+ "@iconify-json/vscode-icons": "^1.2.2",
80
84
  "@iconify/json": "^2.2.386",
81
85
  "@iconify/vue": "^5.0.0",
82
86
  "@playform/compress": "^0.2.0",
@@ -90,18 +94,12 @@
90
94
  "@unocss/reset": "66.5.1",
91
95
  "@vite-pwa/astro": "^1.1.0",
92
96
  "@vueuse/core": "^13.9.0",
93
- "astro-i18next": "1.0.0-beta.21",
94
97
  "astro-icon": "^1.1.5",
95
98
  "astro-meta-tags": "^0.4.0",
96
99
  "astro-navbar": "^2.4.0",
97
100
  "astro-pagefind": "^1.8.5",
98
101
  "astro-remote": "^0.3.4",
99
102
  "dotenv": "^17.2.2",
100
- "i18next": "^25.5.2",
101
- "i18next-browser-languagedetector": "^8.2.0",
102
- "i18next-fs-backend": "^2.6.0",
103
- "i18next-http-backend": "^3.0.2",
104
- "i18next-vue": "^5.3.0",
105
103
  "swiper": "^12.0.2",
106
104
  "unocss": "66.5.1",
107
105
  "vue": "^3.5.21"
@@ -133,7 +131,7 @@
133
131
  ]
134
132
  },
135
133
  "engines": {
136
- "node": ">=18.14.1",
137
- "pnpm": ">=9.15.3"
134
+ "node": ">=22.17.0",
135
+ "pnpm": ">=10.16.1"
138
136
  }
139
137
  }
@@ -5,7 +5,6 @@ import { getTranslatedLink } from "@utils/text/getTranslatedLink"
5
5
  import { getMainCategoryList } from "@utils/category/getMainCategoryList"
6
6
  import { Image } from 'astro:assets'
7
7
 
8
- import i18next, { t } from "i18next";
9
8
  const categories = await getMainCategoryList()
10
9
  const imgDomain = 'https://api.polo.blue/img/';
11
10
 
@@ -50,7 +49,7 @@ const activeIndex = activeCategorySlug && categories ? categories.map(a => a.slu
50
49
 
51
50
  <Image
52
51
  src={`${imgDomain}${category.photo}`}
53
- alt={t(`cat.${category.slug}.desc`).split('. ', 1)[0]}
52
+ alt={category.name}
54
53
  height="70"
55
54
  width="70"
56
55
  format="avif"
@@ -63,7 +62,7 @@ const activeIndex = activeCategorySlug && categories ? categories.map(a => a.slu
63
62
  <div class="cat-name"
64
63
  // itemprop="name"
65
64
  >
66
- { t(`cat.${category.slug}.name`) }
65
+ { category.name }
67
66
  </div>
68
67
  </a>
69
68
  </swiper-slide>
@@ -2,7 +2,6 @@
2
2
  import CategorySidebarToggler from './CategorySidebarToggler.vue';
3
3
  import CategoryViewToggler from './CategoryViewToggler.astro';
4
4
  import { Icon } from 'astro-icon/components';
5
- import { t } from "i18next";
6
5
 
7
6
  const {
8
7
  category,
@@ -15,7 +14,7 @@ const {
15
14
  viewerLabels
16
15
  } = Astro.props;
17
16
 
18
- const baseURL = locale === 'en' ? '' : `/${locale}`;
17
+ const baseURL = '';
19
18
  ---
20
19
 
21
20
  <div
@@ -58,7 +57,7 @@ const baseURL = locale === 'en' ? '' : `/${locale}`;
58
57
  <span class="text-neutral-lighter text-lg inline-block px-1 font-headlight">/</span>
59
58
  {!subsubtitle ? (
60
59
  <h1 class="text-lg py-2.5 sm:py-0 whitespace-nowrap underline underline-offset-6 decoration-blue-300 decoration-0.5">
61
- {subtitle} <span class="sr-only"> {t('catalog.extra-short')}</span>
60
+ {subtitle} <span class="sr-only"> catalog</span>
62
61
  </h1>
63
62
  ) : (
64
63
  <>
@@ -69,7 +68,7 @@ const baseURL = locale === 'en' ? '' : `/${locale}`;
69
68
  </div>
70
69
  <span class="text-neutral-lighter text-lg inline-block px-1 font-headlight">/</span>
71
70
  <h1 class="text-lg py-2.5 sm:py-0 whitespace-nowrap underline underline-offset-6 decoration-blue-300 decoration-0.5">
72
- {subsubtitle} <span class="sr-only"> {t('catalog.extra-short')}</span>
71
+ {subsubtitle} <span class="sr-only"> catalog</span>
73
72
  </h1>
74
73
  </>
75
74
  )}
@@ -78,7 +77,7 @@ const baseURL = locale === 'en' ? '' : `/${locale}`;
78
77
  <h1 class="text-lg py-2.5 sm:py-0 whitespace-nowrap">
79
78
  {category.name}
80
79
  {titleSmall && <small>{titleSmall}</small>}
81
- <span class="sr-only"> {t('catalog.extra-short')}</span>
80
+ <span class="sr-only"> catalog</span>
82
81
  </h1>
83
82
  )}
84
83
  </div>
@@ -6,7 +6,6 @@
6
6
 
7
7
  */
8
8
 
9
- import {t } from "i18next"
10
9
  import FaqItem from "../components/FaqItem.astro"
11
10
 
12
11
  interface Props {
@@ -22,7 +21,7 @@ const { questions } = Astro.props
22
21
 
23
22
  <div class="flex flex-col mt-6 mb-4 w-full px-4 md:px-0" itemscope itemtype="https://schema.org/FAQPage" >
24
23
  <div class="mb-6 text-4xl font-headbold sm:text-4xl text-blue-802 faq-heading">
25
- {t('faq.title')}
24
+ Frequently Asked Questions
26
25
  </div>
27
26
  <div class="flex flex-col divide-y dark:divide-gray-700">
28
27
  {
@@ -69,32 +69,32 @@ import Search from "astro-pagefind/components/Search";
69
69
  @apply font-textlight text-base;
70
70
  }
71
71
 
72
- .pagefind-ui__search-input {
73
- height: 40px !important;
72
+ .pagefind-ui .pagefind-ui__search-input {
73
+ height: 40px;
74
74
  border: 0;
75
- @apply rounded-none sm:rounded-3xl h-10 w-full;
75
+ @apply rounded-none sm:rounded-3xl w-full;
76
76
  }
77
77
 
78
- .pagefind-ui__result-excerpt,
79
- .pagefind-ui__button {
80
- font-size: 14px !important;
78
+ .pagefind-ui .pagefind-ui__result-excerpt,
79
+ .pagefind-ui .pagefind-ui__button {
80
+ font-size: 14px;
81
81
  }
82
82
 
83
- .pagefind-ui__filter-name {
84
- font-size: 12px !important;
83
+ .pagefind-ui .pagefind-ui__filter-name {
84
+ font-size: 12px;
85
85
  }
86
86
 
87
- .pagefind-ui__drawer:not(.pagefind-ui__hidden) {
87
+ .pagefind-ui .pagefind-ui__drawer:not(.pagefind-ui__hidden) {
88
88
  @apply p-4;
89
89
  }
90
90
 
91
- .pagefind-ui__result-link {
91
+ .pagefind-ui .pagefind-ui__result-link {
92
92
  color: var(--pagefind-ui-primary);
93
93
  font-family: vw_headlight;
94
94
  font-size: 1rem;
95
95
  }
96
96
 
97
- .pagefind-ui__result-link::before {
97
+ .pagefind-ui .pagefind-ui__result-link::before {
98
98
  top: 0;
99
99
  bottom: 0;
100
100
  left: 0;
@@ -103,107 +103,107 @@ import Search from "astro-pagefind/components/Search";
103
103
  position: absolute;
104
104
  }
105
105
 
106
- .pagefind-ui__result-excerpt {
106
+ .pagefind-ui .pagefind-ui__result-excerpt {
107
107
  color: var(--pagefind-ui-text);
108
108
  order: 3;
109
109
  }
110
110
 
111
- .pagefind-ui__drawer {
111
+ .pagefind-ui .pagefind-ui__drawer {
112
112
  @apply bg-white md:fixed shadow-lg rounded-b-lg border-t border-t-transparent overflow-auto top-17 md:max-w-[calc(100vw-10%)] max-h-[calc(100vh-10%)] gap-[30px];
113
113
  }
114
114
 
115
- .pagefind-ui__search-clear {
115
+ .pagefind-ui .pagefind-ui__search-clear {
116
116
  height: 38px;
117
117
  top: 0;
118
118
  @apply sm:rounded-3xl;
119
119
  }
120
120
 
121
- .pagefind-ui__search-input {
121
+ .pagefind-ui .pagefind-ui__search-input {
122
122
  font-size: 1rem;
123
123
  font-weight: 400;
124
124
  padding: 0 2.5rem 2px;
125
125
  }
126
126
 
127
- .pagefind-ui__form::before {
127
+ .pagefind-ui .pagefind-ui__form::before {
128
128
  top: 14px;
129
129
  left: 16px;
130
130
  width: 14px;
131
131
  height: 14px;
132
132
  }
133
133
 
134
- .pagefind-ui__result {
134
+ .pagefind-ui .pagefind-ui__result {
135
135
  padding: 0.875rem 0;
136
136
  gap: 1rem;
137
137
  @apply relative;
138
138
  }
139
139
 
140
- .pagefind-ui__filter-block {
140
+ .pagefind-ui .pagefind-ui__filter-block {
141
141
  padding: 0.875rem 0;
142
142
  border-width: 1px;
143
143
  }
144
144
 
145
- .pagefind-ui__filter-group {
145
+ .pagefind-ui .pagefind-ui__filter-group {
146
146
  gap: 0.5rem;
147
147
  padding-top: 0.875rem;
148
148
  }
149
149
 
150
- .pagefind-ui__filter-value {
150
+ .pagefind-ui .pagefind-ui__filter-value {
151
151
  gap: 10px;
152
152
  }
153
153
 
154
- .pagefind-ui__filter-checkbox {
154
+ .pagefind-ui .pagefind-ui__filter-checkbox {
155
155
  border-radius: 3px;
156
156
  margin-top: 1px;
157
157
  min-width: calc(16px * var(--pagefind-ui-scale));
158
158
  }
159
159
 
160
- .pagefind-ui__result-image {
160
+ .pagefind-ui .pagefind-ui__result-image {
161
161
  @apply drop-shadow-sm w-full h-full object-contain rounded-none;
162
162
  }
163
163
 
164
- .pagefind-ui__filter-panel {
164
+ .pagefind-ui .pagefind-ui__filter-panel {
165
165
  @apply hidden;
166
166
  }
167
167
 
168
- .pagefind-ui__filter-label {
168
+ .pagefind-ui .pagefind-ui__filter-label {
169
169
  font-size: 0.9rem;
170
170
  }
171
171
 
172
- .pagefind-ui__button {
172
+ .pagefind-ui .pagefind-ui__button {
173
173
  font-weight: 400;
174
174
  height: 40px;
175
175
  }
176
176
 
177
- .pagefind-ui__result-tag {
177
+ .pagefind-ui .pagefind-ui__result-tag {
178
178
  background: inherit;
179
179
  padding: 0;
180
180
  color: #9ca3af;
181
181
  }
182
182
 
183
- .pagefind-ui__result-thumb {
183
+ .pagefind-ui .pagefind-ui__result-thumb {
184
184
  max-width: 120px;
185
185
  }
186
186
 
187
- .pagefind-ui__result-tags {
187
+ .pagefind-ui .pagefind-ui__result-tags {
188
188
  margin-top: 0.4rem;
189
189
  order: 2;
190
190
  }
191
191
 
192
- .pagefind-ui__filter-name::after {
192
+ .pagefind-ui .pagefind-ui__filter-name::after {
193
193
  color: var(--pagefind-ui-primary);
194
194
  }
195
195
 
196
- .pagefind-ui__result-title {
196
+ .pagefind-ui .pagefind-ui__result-title {
197
197
  font-size: inherit;
198
198
  line-height: 1;
199
199
  }
200
200
 
201
- .pagefind-ui__filter-panel,
202
- .pagefind-ui__results-area {
201
+ .pagefind-ui .pagefind-ui__filter-panel,
202
+ .pagefind-ui .pagefind-ui__results-area {
203
203
  margin-top: 0;
204
204
  }
205
205
 
206
- .pagefind-ui__message {
206
+ .pagefind-ui .pagefind-ui__message {
207
207
  padding: 0.875rem 0;
208
208
  }
209
209
 
@@ -23,7 +23,7 @@ const props = defineProps({
23
23
  default: 'regular'
24
24
  },
25
25
  underline: {
26
- type: Boolean,
26
+ type: [Boolean, String] as PropType<boolean | 'center'>,
27
27
  required: false,
28
28
  default: false
29
29
  }
@@ -61,8 +61,8 @@ const typographyClass = getTypographyClass()
61
61
  </script>
62
62
 
63
63
  <template>
64
- <component :is="props.as" class="mb-2.5 flex sm:block md:flex items-center leading-none"
65
- :class="`${typographyClass} ${props.textSize ? `text-${props.textSize}` : 'text-xl'} ${props.underline ? 'headline--underline' : ''}`">
64
+ <component :is="props.as" class="mb-2.5 leading-none"
65
+ :class="`${typographyClass} ${props.textSize ? `text-${props.textSize}` : 'text-xl'} ${props.underline === true ? 'headline--underline' : ''} ${props.underline === 'center' ? 'headline--underline-center block text-center' : 'flex sm:block md:flex items-center'}`">
66
66
  <slot />
67
67
  </component>
68
68
  </template>
@@ -82,7 +82,27 @@ const typographyClass = getTypographyClass()
82
82
  @apply content-empty absolute left-0 bottom-px h-px;
83
83
  width: 95%;
84
84
  max-width: 255px;
85
- background-color: #64748b
85
+ background-color: #64748b;
86
+ }
87
+ }
88
+
89
+ .headline--underline-center {
90
+ @apply relative pb-4;
91
+
92
+ &:before {
93
+ @apply content-empty absolute left-1/2 bottom-px h-px;
94
+ width: 95%;
95
+ max-width: 255px;
96
+ background-color: #64748b;
97
+ transform: translateX(-50%);
98
+ }
99
+
100
+ &:after {
101
+ @apply content-empty absolute bottom-0;
102
+ height: 3px;
103
+ width: 55px;
104
+ background-color: var(--clr-primary-400);
105
+ left: calc(50% - min(47.5%, 127.5px));
86
106
  }
87
107
  }
88
108
  </style>
@@ -27,7 +27,6 @@ import { getProductUrl } from "@utils/product/getProductUrl";
27
27
  import { getShopProductUrl } from "@utils/product/getShopProductUrl";
28
28
  import { getProductTranslation } from "@utils/product/getProductTranslation";
29
29
  import { getImageUrl } from '@utils/getImageUrl';
30
- import i18next, { t } from "i18next";
31
30
  import { ProductImage, ProductNumber, removeSemicolon, getPriceFormatted } from "spoko-design-system";
32
31
 
33
32
  // Użycie productObject jeśli przekazane, inaczej pobranie produktu na podstawie productId
@@ -40,18 +39,14 @@ const thumb = product ? (
40
39
  : await getImageUrl(product.photo || "", `'ProductLink' ${product.number}`)
41
40
  ) : "";
42
41
 
43
- // Tłumaczenie nazwy produktu jeśli dostępne
44
- const productTranslation = i18next.exists(`parts.${product?.number}.name`)
45
- ? null
46
- : productId ? await getProductTranslation(productId, product?.number || "") : null;
42
+ // Product translation removed - using English only
43
+ const productTranslation = productId ? await getProductTranslation(productId, product?.number || "") : null;
47
44
 
48
- // const productName = product ? (
49
- // isShopProduct
50
- // ? (locale === "pl" ? product.name_pl : product.name_en)
51
- // : productTranslation?.name || t(`parts.${product.number}.name`)
52
- // ) : "";
53
-
54
- const productName = product.name || 'NO NAME';
45
+ const productName = product ? (
46
+ isShopProduct
47
+ ? product.name_en || product.name
48
+ : productTranslation?.name || product.name
49
+ ) : 'NO NAME';
55
50
 
56
51
  const nameFormatted = removeSemicolon(productName.toString());
57
52
  ---
@@ -2,7 +2,6 @@
2
2
  const { productObject, locale, index } = Astro.props;
3
3
  import Image from "./Image.astro"
4
4
  import ProductNumber from "./Product/ProductNumber.astro"
5
- import { t } from "i18next";
6
5
  ---
7
6
 
8
7
  { productObject &&
@@ -36,7 +35,7 @@ import { t } from "i18next";
36
35
  { productObject.name }
37
36
  </a>
38
37
 
39
- <ProductNumber productNumber={productObject.number} copyDisabled={false} buttonTexts={{ copy: t('copy'), copied: t('copied') }} />
38
+ <ProductNumber productNumber={productObject.number} copyDisabled={false} buttonTexts={{ copy: 'Copy', copied: 'Copied' }} />
40
39
 
41
40
  { index !== null &&
42
41
  ( <meta itemprop="position" content={String(index)} />
@@ -3,11 +3,8 @@ import HeadCommon from "./partials/HeadCommon.astro";
3
3
  import FooterCommon from "./partials/FooterCommon.astro";
4
4
  import HeadSEO from "../layouts/partials/HeadSEO.astro";
5
5
  import * as CONFIG from "../config";
6
- import { t, changeLanguage } from "i18next";
7
6
  import "../styles/main.css";
8
7
  import Copyright from "../components/Copyright.astro";
9
- const locale = "en";
10
- changeLanguage(locale);
11
8
  const { content = {} } = Astro.props;
12
9
  const canonicalURL = new URL(Astro.url.pathname, Astro.site).toString();
13
10
  ---
@@ -5,11 +5,8 @@ import Header from "../components/Header/Header.astro";
5
5
  import PageContent from "../components/PageContent.astro";
6
6
  import LeftSidebar from "../components/LeftSidebar.astro";
7
7
  import * as CONFIG from "../config";
8
- import { t, changeLanguage } from "i18next";
9
8
  import "../styles/main.css";
10
9
  import Copyright from "../components/Copyright.astro";
11
- const locale = "en";
12
- changeLanguage(locale);
13
10
  const { content = {} } = Astro.props;
14
11
  const currentPage = Astro.url.pathname;
15
12
  const canonicalURL = new URL(Astro.url.pathname, Astro.site).toString();
@@ -5,7 +5,6 @@ layout: "../../layouts/MainLayout.astro"
5
5
  import Button from '../../components/Button.vue'
6
6
  import ButtonCopy from '../../components/ButtonCopy.astro'
7
7
  import { Icon } from 'astro-icon/components';
8
- import { t } from "i18next";
9
8
 
10
9
  # All buttons
11
10