shirkasoft-ui-components 1.1.2 → 1.2.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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "shirkasoft-ui-components",
3
- "version": "1.1.2",
3
+ "version": "1.2.0",
4
4
  "description": "Angular UI Components Library — themeable via CSS custom properties",
5
5
  "keywords": [
6
6
  "angular",
@@ -27,7 +27,7 @@
27
27
  "@angular/router": "^21.2.0",
28
28
  "rxjs": "^7.8.0",
29
29
  "@jsverse/transloco": ">= 8.0.0",
30
- "@lucide/angular": "^1.17.0",
30
+ "@lucide/angular": "^1.30.0",
31
31
  "chart.js": "^4.4.0"
32
32
  },
33
33
  "dependencies": {
package/src/theme.css CHANGED
@@ -76,6 +76,9 @@
76
76
  --shk-tooltip-text: #fff;
77
77
  --shk-scrollbar-thumb: #cbd5e1;
78
78
  --shk-scrollbar-thumb-hover: #94a3b8;
79
+
80
+ --shk-skeleton-bg: var(--shk-surface-200);
81
+ --shk-skeleton-highlight: rgba(255, 255, 255, 0.6);
79
82
  }
80
83
 
81
84
  .dark {
@@ -132,17 +135,33 @@
132
135
 
133
136
  --shk-scrollbar-thumb: #475569;
134
137
  --shk-scrollbar-thumb-hover: #64748b;
138
+
139
+ --shk-skeleton-bg: var(--shk-surface-100);
140
+ --shk-skeleton-highlight: rgba(255, 255, 255, 0.08);
135
141
  }
136
142
 
137
143
  /* ============================================================
138
144
  Background
139
145
  ============================================================ */
140
- ._shk-bg-white { background-color: #fff; }
141
- ._shk-bg-overlay { background-color: var(--shk-bg-overlay); }
146
+ ._shk-bg-white {
147
+ background-color: #fff;
148
+ }
149
+ ._shk-bg-overlay {
150
+ background-color: var(--shk-bg-overlay);
151
+ }
142
152
 
143
- ._shk-bg-primary { background-color: var(--shk-primary-600); }
144
- ._shk-bg-primary-soft { background-color: var(--shk-primary-50); }
145
- ._shk-bg-primary-border { background-color: var(--shk-primary-200); }
153
+ ._shk-bg-primary {
154
+ background-color: var(--shk-primary-600);
155
+ }
156
+ ._shk-bg-primary-soft {
157
+ background-color: var(--shk-primary-50);
158
+ }
159
+ ._shk-bg-primary-border {
160
+ background-color: var(--shk-primary-200);
161
+ }
162
+ .dark ._shk-bg-primary-soft {
163
+ background-color: color-mix(in srgb, var(--shk-primary-900) 30%, transparent);
164
+ }
146
165
 
147
166
  /* Active nav child in dark mode (30% primary-900 over transparent).
148
167
  Must be a single token (no spaces) so it works with [class.X] bindings. */
@@ -150,86 +169,268 @@
150
169
  background-color: color-mix(in srgb, var(--shk-primary-900) 30%, transparent);
151
170
  }
152
171
 
153
- ._shk-bg-surface-50 { background-color: var(--shk-surface-50); }
154
- ._shk-bg-surface-100 { background-color: var(--shk-surface-100); }
155
- ._shk-bg-surface-200 { background-color: var(--shk-surface-200); }
156
- ._shk-bg-surface-300 { background-color: var(--shk-surface-300); }
157
- ._shk-bg-surface-700 { background-color: var(--shk-surface-700); }
158
- ._shk-bg-surface-800 { background-color: var(--shk-surface-800); }
172
+ ._shk-bg-surface-50 {
173
+ background-color: var(--shk-surface-50);
174
+ }
175
+ ._shk-bg-surface-100 {
176
+ background-color: var(--shk-surface-100);
177
+ }
178
+ ._shk-bg-surface-200 {
179
+ background-color: var(--shk-surface-200);
180
+ }
181
+ ._shk-bg-surface-300 {
182
+ background-color: var(--shk-surface-300);
183
+ }
184
+ ._shk-bg-surface-700 {
185
+ background-color: var(--shk-surface-700);
186
+ }
187
+ ._shk-bg-surface-800 {
188
+ background-color: var(--shk-surface-800);
189
+ }
190
+
191
+ ._shk-bg-red-soft {
192
+ background-color: var(--shk-error-50);
193
+ }
194
+ ._shk-bg-green-soft {
195
+ background-color: var(--shk-success-50);
196
+ }
197
+ ._shk-bg-blue-soft {
198
+ background-color: var(--shk-info-50);
199
+ }
200
+ ._shk-bg-yellow-soft {
201
+ background-color: var(--shk-warning-50);
202
+ }
203
+ ._shk-bg-amber-soft {
204
+ background-color: var(--shk-amber-50);
205
+ }
159
206
 
160
- ._shk-bg-red-soft { background-color: var(--shk-error-50); }
161
- ._shk-bg-green-soft { background-color: var(--shk-success-50); }
162
- ._shk-bg-blue-soft { background-color: var(--shk-info-50); }
163
- ._shk-bg-yellow-soft { background-color: var(--shk-warning-50); }
164
- ._shk-bg-amber-soft { background-color: var(--shk-amber-50); }
207
+ ._shk-bg-red-600 {
208
+ background-color: var(--shk-error-600);
209
+ }
210
+ ._shk-bg-amber-600 {
211
+ background-color: var(--shk-amber-600);
212
+ }
165
213
 
166
- ._shk-bg-red-600 { background-color: var(--shk-error-600); }
167
- ._shk-bg-amber-600 { background-color: var(--shk-amber-600); }
214
+ ._shk-bg-tooltip {
215
+ background-color: var(--shk-tooltip-bg);
216
+ }
168
217
 
169
- ._shk-bg-tooltip { background-color: var(--shk-tooltip-bg); }
218
+ ._shk-bg-emerald {
219
+ background-color: var(--shk-emerald-600);
220
+ }
221
+ ._shk-bg-emerald-hover {
222
+ background-color: var(--shk-emerald-700);
223
+ }
170
224
 
171
- ._shk-bg-emerald { background-color: var(--shk-emerald-600); }
172
- ._shk-bg-emerald-hover { background-color: var(--shk-emerald-700); }
225
+ /* ============================================================
226
+ Tags (PrimeNG look)
227
+ ============================================================ */
228
+ ._shk-tag-secondary {
229
+ background-color: var(--shk-surface-100);
230
+ color: var(--shk-surface-600);
231
+ border: 1px solid color-mix(in srgb, var(--shk-surface-400) 25%, transparent);
232
+ }
233
+ ._shk-tag-success {
234
+ background-color: var(--shk-success-50);
235
+ color: var(--shk-success-600);
236
+ border: 1px solid color-mix(in srgb, var(--shk-success-600) 15%, #fff);
237
+ }
238
+ ._shk-tag-warn,
239
+ ._shk-tag-warning {
240
+ background-color: var(--shk-warning-50);
241
+ color: var(--shk-warning-600);
242
+ border: 1px solid color-mix(in srgb, var(--shk-warning-600) 25%, #fff);
243
+ }
244
+ ._shk-tag-info {
245
+ background-color: var(--shk-info-50);
246
+ color: var(--shk-info-600);
247
+ border: 1px solid color-mix(in srgb, var(--shk-info-600) 20%, #fff);
248
+ }
249
+ ._shk-tag-danger {
250
+ background-color: var(--shk-error-50);
251
+ color: var(--shk-error-600);
252
+ border: 1px solid color-mix(in srgb, var(--shk-error-600) 20%, #fff);
253
+ }
254
+ ._shk-tag-contrast {
255
+ background-color: var(--shk-surface-900);
256
+ color: var(--shk-surface-50);
257
+ }
258
+ ._shk-tag-default {
259
+ background-color: var(--shk-surface-100);
260
+ color: var(--shk-surface-700);
261
+ }
262
+ .dark ._shk-tag-secondary {
263
+ background-color: var(--shk-surface-700);
264
+ color: var(--shk-surface-300);
265
+ border-color: color-mix(in srgb, var(--shk-surface-400) 20%, transparent);
266
+ }
267
+ .dark ._shk-tag-success {
268
+ background-color: var(--shk-success-50);
269
+ color: var(--shk-success-400);
270
+ border-color: color-mix(in srgb, var(--shk-success-400) 25%, transparent);
271
+ }
272
+ .dark ._shk-tag-warn,
273
+ .dark ._shk-tag-warning {
274
+ background-color: var(--shk-warning-50);
275
+ color: var(--shk-warning-400);
276
+ border-color: color-mix(in srgb, var(--shk-warning-400) 25%, transparent);
277
+ }
278
+ .dark ._shk-tag-info {
279
+ background-color: var(--shk-info-50);
280
+ color: var(--shk-info-400);
281
+ border-color: color-mix(in srgb, var(--shk-info-400) 25%, transparent);
282
+ }
283
+ .dark ._shk-tag-danger {
284
+ background-color: var(--shk-error-50);
285
+ color: var(--shk-error-400);
286
+ border-color: color-mix(in srgb, var(--shk-error-400) 25%, transparent);
287
+ }
288
+ .dark ._shk-tag-contrast {
289
+ background-color: var(--shk-surface-100);
290
+ color: var(--shk-surface-900);
291
+ }
292
+ .dark ._shk-tag-default {
293
+ background-color: var(--shk-surface-700);
294
+ color: var(--shk-surface-300);
295
+ }
173
296
 
174
297
  /* ============================================================
175
298
  Text
176
299
  ============================================================ */
177
- ._shk-text-white { color: #fff; }
178
- ._shk-text-tooltip { color: var(--shk-tooltip-text); }
179
-
180
- ._shk-text-surface-200 { color: var(--shk-surface-200); }
181
- ._shk-text-surface-300 { color: var(--shk-surface-300); }
182
- ._shk-text-surface-400 { color: var(--shk-surface-400); }
183
- ._shk-text-surface-500 { color: var(--shk-surface-500); }
184
- ._shk-text-surface-600 { color: var(--shk-surface-600); }
185
- ._shk-text-surface-700 { color: var(--shk-surface-700); }
186
- ._shk-text-surface-800 { color: var(--shk-surface-800); }
187
- ._shk-text-surface-900 { color: var(--shk-surface-900); }
188
-
189
- ._shk-text-primary { color: var(--shk-primary-600); }
190
- ._shk-text-primary-700 { color: var(--shk-primary-700); }
191
-
192
- ._shk-text-red-500 { color: var(--shk-error-500); }
193
- ._shk-text-red-600 { color: var(--shk-error-600); }
194
- ._shk-text-red-800 { color: var(--shk-error-800); }
195
- ._shk-text-green-600 { color: var(--shk-success-600); }
196
- ._shk-text-green-800 { color: var(--shk-success-800); }
197
- ._shk-text-blue-600 { color: var(--shk-info-600); }
198
- ._shk-text-blue-800 { color: var(--shk-info-800); }
199
- ._shk-text-yellow-600 { color: var(--shk-warning-600); }
200
- ._shk-text-yellow-800 { color: var(--shk-warning-800); }
201
- ._shk-text-amber-600 { color: var(--shk-amber-600); }
300
+ ._shk-text-white {
301
+ color: #fff;
302
+ }
303
+ ._shk-text-tooltip {
304
+ color: var(--shk-tooltip-text);
305
+ }
306
+
307
+ ._shk-text-surface-200 {
308
+ color: var(--shk-surface-200);
309
+ }
310
+ ._shk-text-surface-300 {
311
+ color: var(--shk-surface-300);
312
+ }
313
+ ._shk-text-surface-400 {
314
+ color: var(--shk-surface-400);
315
+ }
316
+ ._shk-text-surface-500 {
317
+ color: var(--shk-surface-500);
318
+ }
319
+ ._shk-text-surface-600 {
320
+ color: var(--shk-surface-600);
321
+ }
322
+ ._shk-text-surface-700 {
323
+ color: var(--shk-surface-700);
324
+ }
325
+ ._shk-text-surface-800 {
326
+ color: var(--shk-surface-800);
327
+ }
328
+ ._shk-text-surface-900 {
329
+ color: var(--shk-surface-900);
330
+ }
331
+
332
+ ._shk-text-primary {
333
+ color: var(--shk-primary-600);
334
+ }
335
+ ._shk-text-primary-700 {
336
+ color: var(--shk-primary-700);
337
+ }
338
+
339
+ ._shk-text-red-500 {
340
+ color: var(--shk-error-500);
341
+ }
342
+ ._shk-text-red-600 {
343
+ color: var(--shk-error-600);
344
+ }
345
+ ._shk-text-red-800 {
346
+ color: var(--shk-error-800);
347
+ }
348
+ ._shk-text-green-600 {
349
+ color: var(--shk-success-600);
350
+ }
351
+ ._shk-text-green-800 {
352
+ color: var(--shk-success-800);
353
+ }
354
+ ._shk-text-blue-600 {
355
+ color: var(--shk-info-600);
356
+ }
357
+ ._shk-text-blue-800 {
358
+ color: var(--shk-info-800);
359
+ }
360
+ ._shk-text-yellow-600 {
361
+ color: var(--shk-warning-600);
362
+ }
363
+ ._shk-text-yellow-800 {
364
+ color: var(--shk-warning-800);
365
+ }
366
+ ._shk-text-amber-600 {
367
+ color: var(--shk-amber-600);
368
+ }
202
369
 
203
370
  /* ============================================================
204
371
  Border
205
372
  ============================================================ */
206
- ._shk-border { border-color: var(--shk-surface-200); }
207
- ._shk-border-surface-300 { border-color: var(--shk-surface-300); }
208
- ._shk-border-surface-700 { border-color: var(--shk-surface-700); }
373
+ ._shk-border {
374
+ border-color: var(--shk-surface-200);
375
+ }
376
+ ._shk-border-surface-300 {
377
+ border-color: var(--shk-surface-300);
378
+ }
379
+ ._shk-border-surface-700 {
380
+ border-color: var(--shk-surface-700);
381
+ }
209
382
 
210
- ._shk-border-primary { border-color: var(--shk-primary-600); }
211
- ._shk-border-primary-200 { border-color: var(--shk-primary-200); }
212
- ._shk-border-primary-500 { border-color: var(--shk-primary-500); }
383
+ ._shk-border-primary {
384
+ border-color: var(--shk-primary-600);
385
+ }
386
+ ._shk-border-primary-200 {
387
+ border-color: var(--shk-primary-200);
388
+ }
389
+ ._shk-border-primary-500 {
390
+ border-color: var(--shk-primary-500);
391
+ }
213
392
 
214
- ._shk-border-red { border-color: var(--shk-error-500); }
215
- ._shk-border-red-400 { border-color: var(--shk-error-400); }
216
- ._shk-border-green-400 { border-color: var(--shk-success-400); }
217
- ._shk-border-blue-400 { border-color: var(--shk-info-400); }
218
- ._shk-border-yellow-400 { border-color: var(--shk-warning-400); }
393
+ ._shk-border-red {
394
+ border-color: var(--shk-error-500);
395
+ }
396
+ ._shk-border-red-400 {
397
+ border-color: var(--shk-error-400);
398
+ }
399
+ ._shk-border-green-400 {
400
+ border-color: var(--shk-success-400);
401
+ }
402
+ ._shk-border-blue-400 {
403
+ border-color: var(--shk-info-400);
404
+ }
405
+ ._shk-border-yellow-400 {
406
+ border-color: var(--shk-warning-400);
407
+ }
219
408
 
220
409
  /* ============================================================
221
410
  Icon colors
222
411
  ============================================================ */
223
- ._shk-icon-muted { color: var(--shk-surface-400); }
224
- ._shk-icon-subtle { color: var(--shk-surface-300); }
412
+ ._shk-icon-muted {
413
+ color: var(--shk-surface-400);
414
+ }
415
+ ._shk-icon-subtle {
416
+ color: var(--shk-surface-300);
417
+ }
225
418
 
226
419
  /* ============================================================
227
420
  Gradients (top accent bar)
228
421
  ============================================================ */
229
- ._shk-gradient-emerald { background-image: linear-gradient(to right, var(--shk-emerald-400), var(--shk-emerald-600)); }
230
- ._shk-gradient-red { background-image: linear-gradient(to right, var(--shk-error-400), var(--shk-error-600)); }
231
- ._shk-gradient-blue { background-image: linear-gradient(to right, var(--shk-info-400), var(--shk-info-600)); }
232
- ._shk-gradient-amber { background-image: linear-gradient(to right, var(--shk-amber-400), var(--shk-amber-600)); }
422
+ ._shk-gradient-emerald {
423
+ background-image: linear-gradient(to right, var(--shk-emerald-400), var(--shk-emerald-600));
424
+ }
425
+ ._shk-gradient-red {
426
+ background-image: linear-gradient(to right, var(--shk-error-400), var(--shk-error-600));
427
+ }
428
+ ._shk-gradient-blue {
429
+ background-image: linear-gradient(to right, var(--shk-info-400), var(--shk-info-600));
430
+ }
431
+ ._shk-gradient-amber {
432
+ background-image: linear-gradient(to right, var(--shk-amber-400), var(--shk-amber-600));
433
+ }
233
434
 
234
435
  /* ============================================================
235
436
  Scrollbar (table, sidebar, dropdowns, …)