spoko-design-system 1.0.0 → 1.1.0
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/.claude/settings.local.json +11 -1
- package/.github/workflows/code-quality.yml +51 -0
- package/.github/workflows/sonarcloud.yml +51 -0
- package/.prettierignore +15 -0
- package/.prettierrc +25 -0
- package/.vscode/extensions.json +0 -1
- package/.vscode/settings.json +0 -4
- package/CHANGELOG.md +14 -0
- package/README.md +19 -3
- package/astro.config.mjs +0 -2
- package/eslint.config.js +64 -0
- package/icon.config.ts +32 -2
- package/package.json +14 -9
- package/sonar-project.properties +19 -0
- package/src/components/Category/CategoriesCarousel.astro +2 -3
- package/src/components/Category/CategoryDetails.astro +4 -5
- package/src/components/Faq.astro +1 -2
- package/src/components/Header/Header.astro +33 -33
- package/src/components/Headline.vue +24 -4
- package/src/components/Product/ProductLink.astro +7 -12
- package/src/components/ProductTile.astro +1 -2
- package/src/layouts/Layout.astro +0 -3
- package/src/layouts/MainLayout.astro +0 -3
- package/src/pages/components/buttons.mdx +0 -1
- package/src/pages/components/hand-drive.mdx +0 -27
- package/src/pages/index.astro +170 -39
- package/src/utils/category/getMainCategoryList.ts +8 -17
- package/src/utils/product/getPriceFormatted.ts +6 -9
- package/src/utils/product/getProductChecklist.ts +1 -2
- package/src/utils/text/formatLocaleNumber.ts +2 -3
- package/uno-config/index.ts +13 -19
- package/.astro/icon.d.ts +0 -11909
- package/astro-i18next.config.mjs +0 -18
- package/astro-i18next.config.ts +0 -11
- package/public/locales/en/translation.json +0 -13
- package/public/locales/pl/translation.json +0 -13
package/.astro/data-store.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
[["Map",1,2],"meta::meta",["Map",3,4,5,6],"astro-version","5.13.
|
|
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}}"]
|
package/.astro/settings.json
CHANGED
|
@@ -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": []
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
name: Code Quality
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches: [ main ]
|
|
6
|
+
pull_request:
|
|
7
|
+
branches: [ main ]
|
|
8
|
+
|
|
9
|
+
jobs:
|
|
10
|
+
lint-and-format:
|
|
11
|
+
name: Lint and Format Check
|
|
12
|
+
runs-on: ubuntu-latest
|
|
13
|
+
|
|
14
|
+
steps:
|
|
15
|
+
- name: Checkout code
|
|
16
|
+
uses: actions/checkout@v4
|
|
17
|
+
|
|
18
|
+
- name: Setup Node.js
|
|
19
|
+
uses: actions/setup-node@v4
|
|
20
|
+
with:
|
|
21
|
+
node-version: '22'
|
|
22
|
+
|
|
23
|
+
- name: Setup pnpm
|
|
24
|
+
uses: pnpm/action-setup@v4
|
|
25
|
+
with:
|
|
26
|
+
version: '10.16.1'
|
|
27
|
+
|
|
28
|
+
- name: Get pnpm store directory
|
|
29
|
+
shell: bash
|
|
30
|
+
run: |
|
|
31
|
+
echo "STORE_PATH=$(pnpm store path --silent)" >> $GITHUB_ENV
|
|
32
|
+
|
|
33
|
+
- name: Setup pnpm cache
|
|
34
|
+
uses: actions/cache@v4
|
|
35
|
+
with:
|
|
36
|
+
path: ${{ env.STORE_PATH }}
|
|
37
|
+
key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }}
|
|
38
|
+
restore-keys: |
|
|
39
|
+
${{ runner.os }}-pnpm-store-
|
|
40
|
+
|
|
41
|
+
- name: Install dependencies
|
|
42
|
+
run: pnpm install --frozen-lockfile
|
|
43
|
+
|
|
44
|
+
- name: Check Prettier formatting
|
|
45
|
+
run: pnpm exec prettier --check "src/**/*.{js,ts,jsx,tsx,vue,astro,json,css,md}"
|
|
46
|
+
|
|
47
|
+
- name: Run ESLint
|
|
48
|
+
run: pnpm exec eslint "src/**/*.{js,ts,jsx,tsx,vue,astro}"
|
|
49
|
+
|
|
50
|
+
- name: Type check
|
|
51
|
+
run: pnpm exec astro check
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
name: SonarCloud Analysis
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches: [ main ]
|
|
6
|
+
pull_request:
|
|
7
|
+
branches: [ main ]
|
|
8
|
+
|
|
9
|
+
jobs:
|
|
10
|
+
sonarcloud:
|
|
11
|
+
name: SonarCloud
|
|
12
|
+
runs-on: ubuntu-latest
|
|
13
|
+
steps:
|
|
14
|
+
- uses: actions/checkout@v4
|
|
15
|
+
with:
|
|
16
|
+
fetch-depth: 0 # Shallow clones should be disabled for better analysis
|
|
17
|
+
|
|
18
|
+
- name: Setup Node.js
|
|
19
|
+
uses: actions/setup-node@v4
|
|
20
|
+
with:
|
|
21
|
+
node-version: '22'
|
|
22
|
+
|
|
23
|
+
- name: Setup pnpm
|
|
24
|
+
uses: pnpm/action-setup@v4
|
|
25
|
+
with:
|
|
26
|
+
version: '10.16.1'
|
|
27
|
+
|
|
28
|
+
- name: Get pnpm store directory
|
|
29
|
+
shell: bash
|
|
30
|
+
run: |
|
|
31
|
+
echo "STORE_PATH=$(pnpm store path --silent)" >> $GITHUB_ENV
|
|
32
|
+
|
|
33
|
+
- name: Setup pnpm cache
|
|
34
|
+
uses: actions/cache@v4
|
|
35
|
+
with:
|
|
36
|
+
path: ${{ env.STORE_PATH }}
|
|
37
|
+
key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }}
|
|
38
|
+
restore-keys: |
|
|
39
|
+
${{ runner.os }}-pnpm-store-
|
|
40
|
+
|
|
41
|
+
- name: Install dependencies
|
|
42
|
+
run: pnpm install --frozen-lockfile
|
|
43
|
+
|
|
44
|
+
- name: Build project
|
|
45
|
+
run: pnpm run build
|
|
46
|
+
|
|
47
|
+
- name: SonarCloud Scan
|
|
48
|
+
uses: SonarSource/sonarcloud-github-action@master
|
|
49
|
+
env:
|
|
50
|
+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # Needed to get PR information, if any
|
|
51
|
+
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
|
package/.prettierignore
ADDED
package/.prettierrc
ADDED
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
{
|
|
2
|
+
"semi": true,
|
|
3
|
+
"singleQuote": true,
|
|
4
|
+
"tabWidth": 2,
|
|
5
|
+
"trailingComma": "es5",
|
|
6
|
+
"printWidth": 100,
|
|
7
|
+
"useTabs": false,
|
|
8
|
+
"bracketSpacing": true,
|
|
9
|
+
"arrowParens": "avoid",
|
|
10
|
+
"endOfLine": "lf",
|
|
11
|
+
"overrides": [
|
|
12
|
+
{
|
|
13
|
+
"files": "*.astro",
|
|
14
|
+
"options": {
|
|
15
|
+
"parser": "astro"
|
|
16
|
+
}
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
"files": "*.vue",
|
|
20
|
+
"options": {
|
|
21
|
+
"parser": "vue"
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
]
|
|
25
|
+
}
|
package/.vscode/extensions.json
CHANGED
package/.vscode/settings.json
CHANGED
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,17 @@
|
|
|
1
|
+
## [1.1.0](https://github.com/polo-blue/sds/compare/v1.0.1...v1.1.0) (2025-09-23)
|
|
2
|
+
|
|
3
|
+
### Features
|
|
4
|
+
|
|
5
|
+
* add SonarCloud and ESLint/Prettier code quality workflows ([349ad03](https://github.com/polo-blue/sds/commit/349ad034e4ca90c73d77927dfe8e6b66bde3fd37))
|
|
6
|
+
|
|
7
|
+
## [1.0.1](https://github.com/polo-blue/sds/compare/v1.0.0...v1.0.1) (2025-09-23)
|
|
8
|
+
|
|
9
|
+
### Bug Fixes
|
|
10
|
+
|
|
11
|
+
* improve design system and add icon collections documentation ([007c465](https://github.com/polo-blue/sds/commit/007c46522f48bad8d0a04fbe811066edf6c3c78f))
|
|
12
|
+
* remove invalid vscode-icons to resolve build errors ([ab1fea5](https://github.com/polo-blue/sds/commit/ab1fea51182b35159953ae0005bb8c226fe14e9d))
|
|
13
|
+
* update icons and improve UnoCSS extractor ([aca7861](https://github.com/polo-blue/sds/commit/aca786103a56f5a180a15d6db044068bab596f62))
|
|
14
|
+
|
|
1
15
|
## 1.0.0 (2025-09-23)
|
|
2
16
|
|
|
3
17
|
### 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
|
-
###
|
|
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
|
-
- 📦 [
|
|
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/eslint.config.js
ADDED
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import js from '@eslint/js';
|
|
2
|
+
import typescript from '@typescript-eslint/eslint-plugin';
|
|
3
|
+
import typescriptParser from '@typescript-eslint/parser';
|
|
4
|
+
import vue from 'eslint-plugin-vue';
|
|
5
|
+
import astro from 'eslint-plugin-astro';
|
|
6
|
+
|
|
7
|
+
export default [
|
|
8
|
+
js.configs.recommended,
|
|
9
|
+
|
|
10
|
+
// TypeScript files
|
|
11
|
+
{
|
|
12
|
+
files: ['**/*.ts', '**/*.tsx'],
|
|
13
|
+
languageOptions: {
|
|
14
|
+
parser: typescriptParser,
|
|
15
|
+
parserOptions: {
|
|
16
|
+
ecmaVersion: 'latest',
|
|
17
|
+
sourceType: 'module',
|
|
18
|
+
},
|
|
19
|
+
},
|
|
20
|
+
plugins: {
|
|
21
|
+
'@typescript-eslint': typescript,
|
|
22
|
+
},
|
|
23
|
+
rules: {
|
|
24
|
+
...typescript.configs.recommended.rules,
|
|
25
|
+
'@typescript-eslint/no-unused-vars': 'warn',
|
|
26
|
+
'@typescript-eslint/no-explicit-any': 'warn',
|
|
27
|
+
},
|
|
28
|
+
},
|
|
29
|
+
|
|
30
|
+
// Vue files
|
|
31
|
+
{
|
|
32
|
+
files: ['**/*.vue'],
|
|
33
|
+
languageOptions: {
|
|
34
|
+
parser: vue.parser,
|
|
35
|
+
parserOptions: {
|
|
36
|
+
parser: typescriptParser,
|
|
37
|
+
ecmaVersion: 'latest',
|
|
38
|
+
sourceType: 'module',
|
|
39
|
+
},
|
|
40
|
+
},
|
|
41
|
+
plugins: {
|
|
42
|
+
vue,
|
|
43
|
+
},
|
|
44
|
+
rules: {
|
|
45
|
+
...vue.configs.recommended.rules,
|
|
46
|
+
'vue/multi-word-component-names': 'off',
|
|
47
|
+
'vue/no-unused-vars': 'warn',
|
|
48
|
+
},
|
|
49
|
+
},
|
|
50
|
+
|
|
51
|
+
// Astro files
|
|
52
|
+
...astro.configs.recommended,
|
|
53
|
+
|
|
54
|
+
// Global ignores
|
|
55
|
+
{
|
|
56
|
+
ignores: [
|
|
57
|
+
'dist/**',
|
|
58
|
+
'node_modules/**',
|
|
59
|
+
'.astro/**',
|
|
60
|
+
'pnpm-lock.yaml',
|
|
61
|
+
'**/*.d.ts',
|
|
62
|
+
],
|
|
63
|
+
},
|
|
64
|
+
];
|
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
|
-
//
|
|
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.
|
|
3
|
+
"version": "1.1.0",
|
|
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"
|
|
@@ -111,11 +109,18 @@
|
|
|
111
109
|
"@semantic-release/git": "^10.0.1",
|
|
112
110
|
"@types/gtag.js": "^0.0.20",
|
|
113
111
|
"@types/node": "^24.5.2",
|
|
112
|
+
"@typescript-eslint/eslint-plugin": "^8.44.1",
|
|
113
|
+
"@typescript-eslint/parser": "^8.44.1",
|
|
114
114
|
"@unocss/transformer-variant-group": "66.5.1",
|
|
115
115
|
"@vitejs/plugin-vue": "^6.0.1",
|
|
116
116
|
"@vue/compiler-sfc": "^3.5.21",
|
|
117
|
+
"@vue/eslint-config-typescript": "^14.6.0",
|
|
117
118
|
"astro": "^5.13.10",
|
|
118
119
|
"conventional-changelog-conventionalcommits": "^8.0.0",
|
|
120
|
+
"eslint": "^9.36.0",
|
|
121
|
+
"eslint-plugin-astro": "^1.3.1",
|
|
122
|
+
"eslint-plugin-vue": "^10.5.0",
|
|
123
|
+
"prettier": "^3.6.2",
|
|
119
124
|
"semantic-release": "^24.2.9",
|
|
120
125
|
"unocss": "^0.65.0",
|
|
121
126
|
"vite": "^7.1.7"
|
|
@@ -133,7 +138,7 @@
|
|
|
133
138
|
]
|
|
134
139
|
},
|
|
135
140
|
"engines": {
|
|
136
|
-
"node": ">=
|
|
137
|
-
"pnpm": ">=
|
|
141
|
+
"node": ">=22.17.0",
|
|
142
|
+
"pnpm": ">=10.16.1"
|
|
138
143
|
}
|
|
139
144
|
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
sonar.projectKey=polo-blue_sds
|
|
2
|
+
sonar.organization=polo-blue
|
|
3
|
+
|
|
4
|
+
# This is the name and version displayed in the SonarCloud UI.
|
|
5
|
+
sonar.projectName=Spoko Design System
|
|
6
|
+
sonar.projectVersion=1.0.0
|
|
7
|
+
|
|
8
|
+
# Path is relative to the sonar-project.properties file. Replace "\" by "/" on Windows.
|
|
9
|
+
sonar.sources=src,uno-config,icon.config.ts,astro.config.mjs
|
|
10
|
+
sonar.exclusions=**/node_modules/**,**/dist/**,**/*.spec.ts,**/*.test.ts,**/coverage/**,**/.astro/**
|
|
11
|
+
|
|
12
|
+
# Language
|
|
13
|
+
sonar.javascript.lcov.reportPaths=coverage/lcov.info
|
|
14
|
+
sonar.typescript.lcov.reportPaths=coverage/lcov.info
|
|
15
|
+
|
|
16
|
+
# Additional settings
|
|
17
|
+
sonar.sourceEncoding=UTF-8
|
|
18
|
+
sonar.javascript.file.suffixes=.js,.jsx
|
|
19
|
+
sonar.typescript.file.suffixes=.ts,.tsx,.vue,.astro
|
|
@@ -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={
|
|
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
|
-
{
|
|
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 =
|
|
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">
|
|
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">
|
|
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">
|
|
80
|
+
<span class="sr-only"> catalog</span>
|
|
82
81
|
</h1>
|
|
83
82
|
)}
|
|
84
83
|
</div>
|
package/src/components/Faq.astro
CHANGED
|
@@ -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
|
-
|
|
24
|
+
Frequently Asked Questions
|
|
26
25
|
</div>
|
|
27
26
|
<div class="flex flex-col divide-y dark:divide-gray-700">
|
|
28
27
|
{
|