spoko-design-system 1.4.0 → 1.4.2

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,4 +1,4 @@
1
- name: Code Quality
1
+ name: Code Quality & Analysis
2
2
 
3
3
  on:
4
4
  push:
@@ -36,4 +36,37 @@ jobs:
36
36
  run: pnpm run lint
37
37
 
38
38
  - name: Type check
39
- run: pnpm run check
39
+ run: pnpm run check
40
+
41
+ sonarcloud:
42
+ name: SonarCloud Analysis
43
+ runs-on: ubuntu-latest
44
+
45
+ steps:
46
+ - name: Checkout code
47
+ uses: actions/checkout@v5
48
+ with:
49
+ fetch-depth: 0 # Shallow clones should be disabled for better analysis
50
+
51
+ - name: Setup pnpm
52
+ uses: pnpm/action-setup@v4
53
+ with:
54
+ version: 10.17.1
55
+
56
+ - name: Setup Node.js
57
+ uses: actions/setup-node@v5
58
+ with:
59
+ node-version: '22'
60
+ cache: 'pnpm'
61
+
62
+ - name: Install dependencies
63
+ run: pnpm install --frozen-lockfile
64
+
65
+ - name: Build project
66
+ run: pnpm run build
67
+
68
+ - name: SonarCloud Scan
69
+ uses: SonarSource/sonarcloud-github-action@master
70
+ env:
71
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # Needed to get PR information, if any
72
+ SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
package/CHANGELOG.md CHANGED
@@ -1,3 +1,11 @@
1
+ ## [1.4.2](https://github.com/polo-blue/sds/compare/v1.4.1...v1.4.2) (2025-10-25)
2
+
3
+ ### Bug Fixes
4
+
5
+ * resolve UnoCSS icon loading errors and add missing icons ([b5cb48f](https://github.com/polo-blue/sds/commit/b5cb48f06c03b616adce28efb36438411038574b))
6
+
7
+ ## [1.4.1](https://github.com/polo-blue/sds/compare/v1.4.0...v1.4.1) (2025-10-20)
8
+
1
9
  ## [1.4.0](https://github.com/polo-blue/sds/compare/v1.3.7...v1.4.0) (2025-10-20)
2
10
 
3
11
  ### Features
package/icon.config.ts CHANGED
@@ -125,7 +125,10 @@ export const iconConfig: IconConfig = {
125
125
  "car",
126
126
  "credit-card",
127
127
  "barcode",
128
- "qr"
128
+ "qr",
129
+ "left-arrow-alt",
130
+ "right-arrow-alt",
131
+ "arrow-back"
129
132
  ],
130
133
 
131
134
  carbon: [
@@ -248,6 +251,8 @@ export const iconConfig: IconConfig = {
248
251
  "messenger",
249
252
  "instagram",
250
253
  "telegram",
254
+ "youtube",
255
+ "vimeo",
251
256
  "carrd"
252
257
  ],
253
258
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "spoko-design-system",
3
- "version": "1.4.0",
3
+ "version": "1.4.2",
4
4
  "private": false,
5
5
  "main": "./index.ts",
6
6
  "module": "./index.ts",
@@ -156,6 +156,12 @@ export function createSdsConfig(customConfig: CustomConfig = {}) {
156
156
  'origin-top-left',
157
157
  'transform-gpu',
158
158
 
159
+ // Dynamic icons from ProductDetailsList component
160
+ 'i-lucide-book-text',
161
+ 'i-lucide-link',
162
+ 'i-simple-icons-youtube',
163
+ 'i-simple-icons-vimeo',
164
+
159
165
  // All peer selectors from the list (needed for floating labels)
160
166
  ...peerSelectorClasses,
161
167
  ],
@@ -172,7 +178,8 @@ export function createSdsConfig(customConfig: CustomConfig = {}) {
172
178
  while ((match = classRegex.exec(code)) !== null) {
173
179
  match[1].split(/\s+/).forEach(cls => {
174
180
  // Only add classes that don't look like malformed icon names
175
- if (cls && !cls.match(/^(lucide|simple-icons)-\w+-[A-Z]/) && !cls.includes('Grouping')) {
181
+ // Filter out patterns like i-lucide-link-Validate, i-simple-icons-youtube-case, etc.
182
+ if (cls && !cls.match(/^i-(lucide|simple-icons|mdi|ant-design|bi|bx|carbon|el|eos-icons|fluent|flowbite|la|octicon|uil|icon-park-outline|ph|ic|material-symbols-light|et|system-uicons|vscode-icons|streamline-freehand-color)-\w+-(case|return|if|const|Validate|items|validatedItems|Grouping|function|switch|default)/i) && !cls.includes('Grouping')) {
176
183
  result.add(cls);
177
184
  }
178
185
  });
@@ -183,7 +190,7 @@ export function createSdsConfig(customConfig: CustomConfig = {}) {
183
190
  const dynamicClassRegex = /class:\w+\s*=\s*["'`]([^"'`]+)["'`]/g;
184
191
  while ((match = dynamicClassRegex.exec(code)) !== null) {
185
192
  match[1].split(/\s+/).forEach(cls => {
186
- if (cls && !cls.match(/^(lucide|simple-icons)-\w+-[A-Z]/) && !cls.includes('Grouping')) {
193
+ if (cls && !cls.match(/^i-(lucide|simple-icons|mdi|ant-design|bi|bx|carbon|el|eos-icons|fluent|flowbite|la|octicon|uil|icon-park-outline|ph|ic|material-symbols-light|et|system-uicons|vscode-icons|streamline-freehand-color)-\w+-(case|return|if|const|Validate|items|validatedItems|Grouping|function|switch|default)/i) && !cls.includes('Grouping')) {
187
194
  result.add(cls);
188
195
  }
189
196
  });
@@ -1,39 +0,0 @@
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@v5
15
- with:
16
- fetch-depth: 0 # Shallow clones should be disabled for better analysis
17
-
18
- - name: Setup pnpm
19
- uses: pnpm/action-setup@v4
20
- with:
21
- version: 10.17.1
22
-
23
- - name: Setup Node.js
24
- uses: actions/setup-node@v5
25
- with:
26
- node-version: '22'
27
- cache: 'pnpm'
28
-
29
- - name: Install dependencies
30
- run: pnpm install --frozen-lockfile
31
-
32
- - name: Build project
33
- run: pnpm run build
34
-
35
- - name: SonarCloud Scan
36
- uses: SonarSource/sonarcloud-github-action@master
37
- env:
38
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # Needed to get PR information, if any
39
- SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}