@rakeyshgidwani/roger-ui-bank-theme-stan-design 0.1.6 → 0.1.7

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 (82) hide show
  1. package/CHANGELOG.md +1 -1
  2. package/dist/index.d.ts +7 -0
  3. package/dist/index.esm.js +18 -1
  4. package/dist/index.js +18 -1
  5. package/dist/setupTests.d.ts +124 -0
  6. package/dist/setupTests.esm.js +122 -0
  7. package/dist/setupTests.js +122 -0
  8. package/dist/styles.css +1 -1
  9. package/package.json +1 -1
  10. package/src/index.css +1046 -0
  11. package/src/index.ts +18 -0
  12. package/src/plugins/theme-css-generator.ts +354 -0
  13. package/src/setupTests.ts +124 -0
  14. package/src/stories/README.md +39 -0
  15. package/src/stories/components/ThemeDebugger.tsx +143 -0
  16. package/src/stories/index.ts +29 -0
  17. package/src/stories/storybook-theme-imports.css +51 -0
  18. package/src/styles/base/fonts.css +30 -0
  19. package/src/styles/base/generated-theme-variables.css +573 -0
  20. package/src/styles/base/index.css +7 -0
  21. package/src/styles/base/reset.css +48 -0
  22. package/src/styles/base/theme.css +1068 -0
  23. package/src/styles/base/typography.css +68 -0
  24. package/src/styles/base/variables.css +5 -0
  25. package/src/styles/components/CLAUDE.md +62 -0
  26. package/src/styles/components/base/badge.css +428 -0
  27. package/src/styles/components/base/button.css +774 -0
  28. package/src/styles/components/base/card.css +601 -0
  29. package/src/styles/components/base/checkbox.css +442 -0
  30. package/src/styles/components/base/index.css +9 -0
  31. package/src/styles/components/base/input.css +887 -0
  32. package/src/styles/components/base/label.css +296 -0
  33. package/src/styles/components/data-display/chart.css +353 -0
  34. package/src/styles/components/data-display/data-grid.css +619 -0
  35. package/src/styles/components/data-display/index.css +9 -0
  36. package/src/styles/components/data-display/list.css +560 -0
  37. package/src/styles/components/data-display/table.css +498 -0
  38. package/src/styles/components/data-display/timeline.css +764 -0
  39. package/src/styles/components/data-display/tree.css +881 -0
  40. package/src/styles/components/feedback/alert.css +358 -0
  41. package/src/styles/components/feedback/index.css +7 -0
  42. package/src/styles/components/feedback/progress.css +435 -0
  43. package/src/styles/components/feedback/skeleton.css +337 -0
  44. package/src/styles/components/feedback/toast.css +564 -0
  45. package/src/styles/components/index.css +17 -0
  46. package/src/styles/components/navigation/breadcrumb.css +465 -0
  47. package/src/styles/components/navigation/index.css +9 -0
  48. package/src/styles/components/navigation/menu.css +572 -0
  49. package/src/styles/components/navigation/pagination.css +635 -0
  50. package/src/styles/components/navigation/sidebar.css +807 -0
  51. package/src/styles/components/navigation/stepper.css +519 -0
  52. package/src/styles/components/navigation/tabs.css +404 -0
  53. package/src/styles/components/overlay/backdrop.css +243 -0
  54. package/src/styles/components/overlay/index.css +8 -0
  55. package/src/styles/components/overlay/modal.css +482 -0
  56. package/src/styles/components/overlay/popover.css +607 -0
  57. package/src/styles/components/overlay/portal.css +213 -0
  58. package/src/styles/components/overlay/tooltip.css +488 -0
  59. package/src/styles/generated-theme-variables.css +573 -0
  60. package/src/styles/index.css +5 -0
  61. package/src/styles/layers/index.css +54 -0
  62. package/src/styles/layers/overrides.css +108 -0
  63. package/src/styles/layers/validation.css +159 -0
  64. package/src/styles/layers/validation.js +310 -0
  65. package/src/styles/themes/default.css +450 -0
  66. package/src/styles/themes/enterprise.css +370 -0
  67. package/src/styles/themes/harvey.css +436 -0
  68. package/src/styles/themes/index.css +4 -0
  69. package/src/styles/themes/stan-design.css +572 -0
  70. package/src/styles/utilities/advanced-transition-system.css +467 -0
  71. package/src/styles/utilities/battery-conscious-animations.css +289 -0
  72. package/src/styles/utilities/enterprise-mobile-experience.css +817 -0
  73. package/src/styles/utilities/hardware-acceleration.css +121 -0
  74. package/src/styles/utilities/index.css +20 -0
  75. package/src/styles/utilities/mobile-skeleton-loading.css +596 -0
  76. package/src/styles/utilities/semantic-input-system.css +451 -0
  77. package/src/styles/utilities/touch-friendly-interface.css +247 -0
  78. package/src/styles/utilities/touch-optimization.css +165 -0
  79. package/src/test-utils/index.ts +7 -0
  80. package/src/test-utils/theme-testing.tsx +219 -0
  81. package/src/testing/test-automation.ts +627 -0
  82. package/src/testing/test-utils.tsx +367 -0
@@ -0,0 +1,560 @@
1
+ /* List Component Styles */
2
+ /* Semantic CSS architecture following BEM methodology */
3
+
4
+ /* ============================================================================ */
5
+ /* LIST CONTAINER */
6
+ /* ============================================================================ */
7
+
8
+ .list {
9
+ --list-bg: var(--cs-colors-surface-background);
10
+ --list-border: var(--cs-colors-surface-border);
11
+ --list-radius: var(--cs-border-radius-md);
12
+ --list-shadow: var(--cs-shadows-sm);
13
+ --list-spacing: var(--cs-spacing-scale-4);
14
+ --list-item-hover: var(--cs-colors-interactive-hover);
15
+ --list-item-selected: var(--cs-colors-primary-50);
16
+ }
17
+
18
+ .list__container {
19
+ position: relative;
20
+ background-color: var(--list-bg);
21
+ border: var(--cs-border-width-normal) solid var(--list-border);
22
+ border-radius: var(--list-radius);
23
+ box-shadow: var(--list-shadow);
24
+ overflow: hidden;
25
+ }
26
+
27
+ /* List container sizes */
28
+ .list__container--sm {
29
+ font-size: var(--cs-fonts-primary-sizes-sm);
30
+ }
31
+
32
+ .list__container--md {
33
+ font-size: var(--cs-fonts-primary-sizes-base);
34
+ }
35
+
36
+ .list__container--lg {
37
+ font-size: var(--cs-fonts-primary-sizes-lg);
38
+ }
39
+
40
+ /* List variants */
41
+ .list__container--bordered {
42
+ border-width: var(--cs-border-width-thick);
43
+ border-color: var(--cs-colors-primary-500);
44
+ }
45
+
46
+ .list__container--striped .list__item:nth-child(even) {
47
+ background-color: var(--cs-colors-surface-surface);
48
+ }
49
+
50
+ /* ============================================================================ */
51
+ /* LIST HEADER */
52
+ /* ============================================================================ */
53
+
54
+ .list__header {
55
+ display: flex;
56
+ align-items: center;
57
+ justify-content: space-between;
58
+ padding: var(--list-spacing);
59
+ border-bottom: var(--cs-border-width-normal) solid var(--cs-colors-surface-divider);
60
+ background-color: var(--cs-colors-surface-surface);
61
+ }
62
+
63
+ .list__title {
64
+ font-size: var(--cs-fonts-primary-sizes-lg);
65
+ font-weight: var(--cs-fonts-primary-weights-semibold);
66
+ color: var(--cs-colors-text-primary);
67
+ margin: 0;
68
+ }
69
+
70
+ .list__actions {
71
+ display: flex;
72
+ align-items: center;
73
+ gap: var(--cs-spacing-scale-2);
74
+ }
75
+
76
+ .list__search {
77
+ position: relative;
78
+ max-width: var(--cs-spacing-scale-64);
79
+ }
80
+
81
+ .list__search-input {
82
+ width: 100%;
83
+ padding: var(--cs-spacing-scale-2) var(--cs-spacing-scale-10) var(--cs-spacing-scale-2) var(--cs-spacing-scale-3);
84
+ border: var(--cs-border-width-normal) solid var(--list-border);
85
+ border-radius: var(--cs-border-radius-md);
86
+ font-size: var(--cs-fonts-primary-sizes-sm);
87
+ background-color: var(--list-bg);
88
+ transition: var(--cs-transitions-colors);
89
+ }
90
+
91
+ .list__search-input:focus {
92
+ outline: none;
93
+ border-color: var(--cs-colors-primary-500);
94
+ box-shadow: var(--cs-shadows-focus);
95
+ }
96
+
97
+ .list__search-icon {
98
+ position: absolute;
99
+ right: var(--cs-spacing-scale-3);
100
+ top: 50%;
101
+ transform: translateY(-50%);
102
+ width: var(--cs-spacing-scale-4);
103
+ height: var(--cs-spacing-scale-4);
104
+ color: var(--cs-colors-text-muted);
105
+ pointer-events: none;
106
+ }
107
+
108
+ .list__filters {
109
+ display: flex;
110
+ align-items: center;
111
+ gap: var(--cs-spacing-scale-2);
112
+ margin-top: var(--cs-spacing-scale-3);
113
+ padding-top: var(--cs-spacing-scale-3);
114
+ border-top: var(--cs-border-width-normal) solid var(--cs-colors-surface-divider);
115
+ }
116
+
117
+ /* ============================================================================ */
118
+ /* LIST ITEMS */
119
+ /* ============================================================================ */
120
+
121
+ .list__wrapper {
122
+ max-height: var(--cs-spacing-scale-96);
123
+ overflow-y: auto;
124
+ }
125
+
126
+ .list__items {
127
+ list-style: none;
128
+ margin: 0;
129
+ padding: 0;
130
+ }
131
+
132
+ .list__item {
133
+ display: flex;
134
+ align-items: center;
135
+ padding: var(--cs-spacing-scale-3) var(--list-spacing);
136
+ border-bottom: var(--cs-border-width-normal) solid var(--cs-colors-surface-divider);
137
+ transition: var(--cs-transitions-colors);
138
+ cursor: pointer;
139
+ position: relative;
140
+ }
141
+
142
+ .list__item:last-child {
143
+ border-bottom: none;
144
+ }
145
+
146
+ .list__item:hover {
147
+ background-color: var(--list-item-hover);
148
+ }
149
+
150
+ .list__item--selected {
151
+ background-color: var(--list-item-selected);
152
+ }
153
+
154
+ .list__item--disabled {
155
+ opacity: 0.5;
156
+ cursor: not-allowed;
157
+ pointer-events: none;
158
+ }
159
+
160
+ .list__item--no-dividers {
161
+ border-bottom: none;
162
+ }
163
+
164
+ /* Size variants for list items */
165
+ .list__container--sm .list__item {
166
+ padding: var(--cs-spacing-scale-2) var(--cs-spacing-scale-3);
167
+ }
168
+
169
+ .list__container--lg .list__item {
170
+ padding: var(--cs-spacing-scale-4) var(--cs-spacing-scale-6);
171
+ }
172
+
173
+ /* ============================================================================ */
174
+ /* LIST ITEM CONTENT */
175
+ /* ============================================================================ */
176
+
177
+ .list__item-checkbox {
178
+ width: var(--cs-spacing-scale-4);
179
+ height: var(--cs-spacing-scale-4);
180
+ margin-right: var(--cs-spacing-scale-3);
181
+ cursor: pointer;
182
+ }
183
+
184
+ .list__item-avatar {
185
+ width: var(--cs-spacing-scale-10);
186
+ height: var(--cs-spacing-scale-10);
187
+ border-radius: var(--cs-border-radius-full);
188
+ object-fit: cover;
189
+ margin-right: var(--cs-spacing-scale-3);
190
+ flex-shrink: 0;
191
+ }
192
+
193
+ .list__container--sm .list__item-avatar {
194
+ width: var(--cs-spacing-scale-8);
195
+ height: var(--cs-spacing-scale-8);
196
+ }
197
+
198
+ .list__container--lg .list__item-avatar {
199
+ width: var(--cs-spacing-scale-12);
200
+ height: var(--cs-spacing-scale-12);
201
+ }
202
+
203
+ .list__item-icon {
204
+ width: var(--cs-spacing-scale-5);
205
+ height: var(--cs-spacing-scale-5);
206
+ margin-right: var(--cs-spacing-scale-3);
207
+ color: var(--cs-colors-text-secondary);
208
+ flex-shrink: 0;
209
+ }
210
+
211
+ .list__container--sm .list__item-icon {
212
+ width: var(--cs-spacing-scale-4);
213
+ height: var(--cs-spacing-scale-4);
214
+ }
215
+
216
+ .list__container--lg .list__item-icon {
217
+ width: var(--cs-spacing-scale-6);
218
+ height: var(--cs-spacing-scale-6);
219
+ }
220
+
221
+ .list__item-content {
222
+ flex: 1;
223
+ min-width: 0;
224
+ }
225
+
226
+ .list__item-title {
227
+ font-weight: var(--cs-fonts-primary-weights-medium);
228
+ color: var(--cs-colors-text-primary);
229
+ margin: 0;
230
+ line-height: var(--cs-fonts-primary-line-heights-tight);
231
+ overflow: hidden;
232
+ text-overflow: ellipsis;
233
+ white-space: nowrap;
234
+ }
235
+
236
+ .list__item-subtitle {
237
+ font-size: var(--cs-fonts-primary-sizes-sm);
238
+ color: var(--cs-colors-text-secondary);
239
+ margin: var(--cs-spacing-scale-1) 0 0;
240
+ line-height: var(--cs-fonts-primary-line-heights-none);
241
+ overflow: hidden;
242
+ text-overflow: ellipsis;
243
+ white-space: nowrap;
244
+ }
245
+
246
+ .list__item-description {
247
+ font-size: var(--cs-fonts-primary-sizes-sm);
248
+ color: var(--cs-colors-text-secondary);
249
+ margin: var(--cs-spacing-scale-1) 0 0;
250
+ line-height: var(--cs-fonts-primary-line-heights-tight);
251
+ display: -webkit-box;
252
+ -webkit-line-clamp: 2;
253
+ -webkit-box-orient: vertical;
254
+ overflow: hidden;
255
+ }
256
+
257
+ /* ============================================================================ */
258
+ /* LIST ITEM METADATA */
259
+ /* ============================================================================ */
260
+
261
+ .list__item-metadata {
262
+ display: flex;
263
+ flex-direction: column;
264
+ align-items: flex-end;
265
+ gap: var(--cs-spacing-scale-1);
266
+ margin-left: var(--cs-spacing-scale-3);
267
+ flex-shrink: 0;
268
+ }
269
+
270
+ .list__item-timestamp {
271
+ font-size: var(--cs-fonts-primary-sizes-xs);
272
+ color: var(--cs-colors-text-muted);
273
+ white-space: nowrap;
274
+ }
275
+
276
+ .list__item-status {
277
+ display: inline-flex;
278
+ align-items: center;
279
+ padding: var(--cs-spacing-scale-1) var(--cs-spacing-scale-2);
280
+ border-radius: var(--cs-border-radius-full);
281
+ font-size: var(--cs-fonts-primary-sizes-xs);
282
+ font-weight: var(--cs-fonts-primary-weights-medium);
283
+ text-transform: uppercase;
284
+ letter-spacing: 0.025em;
285
+ }
286
+
287
+ .list__item-status--active {
288
+ background-color: var(--cs-colors-semantic-success-100);
289
+ color: var(--cs-colors-semantic-success-800);
290
+ }
291
+
292
+ .list__item-status--inactive {
293
+ background-color: var(--cs-colors-gray-100);
294
+ color: var(--cs-colors-gray-800);
295
+ }
296
+
297
+ .list__item-status--warning {
298
+ background-color: var(--cs-colors-semantic-warning-100);
299
+ color: var(--cs-colors-semantic-warning-800);
300
+ }
301
+
302
+ .list__item-status--error {
303
+ background-color: var(--cs-colors-semantic-error-100);
304
+ color: var(--cs-colors-semantic-error-800);
305
+ }
306
+
307
+ .list__item-badge {
308
+ display: inline-flex;
309
+ align-items: center;
310
+ justify-content: center;
311
+ min-width: var(--cs-spacing-scale-5);
312
+ height: var(--cs-spacing-scale-5);
313
+ padding: 0 var(--cs-spacing-scale-1);
314
+ background-color: var(--cs-colors-primary-500);
315
+ color: var(--cs-colors-text-onPrimary);
316
+ border-radius: var(--cs-border-radius-full);
317
+ font-size: var(--cs-fonts-primary-sizes-xs);
318
+ font-weight: var(--cs-fonts-primary-weights-medium);
319
+ }
320
+
321
+ /* ============================================================================ */
322
+ /* LIST ITEM ACTIONS */
323
+ /* ============================================================================ */
324
+
325
+ .list__item-actions {
326
+ display: flex;
327
+ align-items: center;
328
+ gap: var(--cs-spacing-scale-1);
329
+ margin-left: var(--cs-spacing-scale-2);
330
+ opacity: 0;
331
+ transition: var(--cs-transitions-opacity);
332
+ }
333
+
334
+ .list__item:hover .list__item-actions,
335
+ .list__item--selected .list__item-actions {
336
+ opacity: 1;
337
+ }
338
+
339
+ .list__item-action {
340
+ display: inline-flex;
341
+ align-items: center;
342
+ justify-content: center;
343
+ width: var(--cs-spacing-scale-8);
344
+ height: var(--cs-spacing-scale-8);
345
+ border: none;
346
+ background: none;
347
+ cursor: pointer;
348
+ border-radius: var(--cs-border-radius-sm);
349
+ transition: var(--cs-transitions-colors);
350
+ color: var(--cs-colors-text-secondary);
351
+ }
352
+
353
+ .list__item-action:hover {
354
+ background-color: var(--list-item-hover);
355
+ color: var(--cs-colors-text-primary);
356
+ }
357
+
358
+ .list__item-action:focus {
359
+ outline: var(--cs-border-width-thick) solid var(--cs-colors-interactive-focus);
360
+ outline-offset: 2px;
361
+ }
362
+
363
+ .list__item-action--primary {
364
+ color: var(--cs-colors-primary-600);
365
+ }
366
+
367
+ .list__item-action--danger {
368
+ color: var(--cs-colors-semantic-error);
369
+ }
370
+
371
+ .list__item-action-icon {
372
+ width: var(--cs-spacing-scale-4);
373
+ height: var(--cs-spacing-scale-4);
374
+ }
375
+
376
+ /* ============================================================================ */
377
+ /* LIST STATES */
378
+ /* ============================================================================ */
379
+
380
+ .list__loading {
381
+ display: flex;
382
+ align-items: center;
383
+ justify-content: center;
384
+ padding: var(--cs-spacing-scale-16) var(--list-spacing);
385
+ color: var(--cs-colors-text-secondary);
386
+ }
387
+
388
+ .list__loading-spinner {
389
+ width: var(--cs-spacing-scale-8);
390
+ height: var(--cs-spacing-scale-8);
391
+ border: var(--cs-border-width-thick) solid var(--cs-colors-surface-divider);
392
+ border-top: var(--cs-border-width-thick) solid var(--cs-colors-primary-500);
393
+ border-radius: var(--cs-border-radius-full);
394
+ animation: list-loading-spin 1s linear infinite;
395
+ margin-right: var(--cs-spacing-scale-3);
396
+ }
397
+
398
+ @keyframes list-loading-spin {
399
+ 0% { transform: rotate(0deg); }
400
+ 100% { transform: rotate(360deg); }
401
+ }
402
+
403
+ .list__error {
404
+ display: flex;
405
+ align-items: center;
406
+ justify-content: center;
407
+ padding: var(--cs-spacing-scale-16) var(--list-spacing);
408
+ color: var(--cs-colors-semantic-error);
409
+ text-align: center;
410
+ }
411
+
412
+ .list__empty {
413
+ display: flex;
414
+ flex-direction: column;
415
+ align-items: center;
416
+ justify-content: center;
417
+ padding: var(--cs-spacing-scale-16) var(--list-spacing);
418
+ color: var(--cs-colors-text-muted);
419
+ text-align: center;
420
+ }
421
+
422
+ .list__empty-icon {
423
+ width: var(--cs-spacing-scale-16);
424
+ height: var(--cs-spacing-scale-16);
425
+ margin-bottom: var(--cs-spacing-scale-4);
426
+ opacity: 0.5;
427
+ }
428
+
429
+ /* ============================================================================ */
430
+ /* LIST FOOTER */
431
+ /* ============================================================================ */
432
+
433
+ .list__footer {
434
+ display: flex;
435
+ align-items: center;
436
+ justify-content: space-between;
437
+ padding: var(--list-spacing);
438
+ border-top: var(--cs-border-width-normal) solid var(--cs-colors-surface-divider);
439
+ background-color: var(--cs-colors-surface-surface);
440
+ }
441
+
442
+ .list__footer-info {
443
+ color: var(--cs-colors-text-secondary);
444
+ font-size: var(--cs-fonts-primary-sizes-sm);
445
+ }
446
+
447
+ .list__footer-actions {
448
+ display: flex;
449
+ align-items: center;
450
+ gap: var(--cs-spacing-scale-2);
451
+ }
452
+
453
+ /* ============================================================================ */
454
+ /* RESPONSIVE DESIGN */
455
+ /* ============================================================================ */
456
+
457
+ @media (max-width: 768px) {
458
+ .list__header {
459
+ flex-direction: column;
460
+ align-items: stretch;
461
+ gap: var(--cs-spacing-scale-3);
462
+ }
463
+
464
+ .list__search {
465
+ max-width: none;
466
+ }
467
+
468
+ .list__item-content {
469
+ margin-right: var(--cs-spacing-scale-2);
470
+ }
471
+
472
+ .list__item-actions {
473
+ opacity: 1;
474
+ }
475
+
476
+ .list__footer {
477
+ flex-direction: column;
478
+ align-items: stretch;
479
+ gap: var(--cs-spacing-scale-3);
480
+ }
481
+ }
482
+
483
+ @media (max-width: 640px) {
484
+ .list__item {
485
+ padding: var(--cs-spacing-scale-2) var(--cs-spacing-scale-3);
486
+ }
487
+
488
+ .list__item-metadata {
489
+ flex-direction: row;
490
+ align-items: center;
491
+ }
492
+
493
+ .list__item-description {
494
+ -webkit-line-clamp: 1;
495
+ }
496
+ }
497
+
498
+ /* ============================================================================ */
499
+ /* ACCESSIBILITY */
500
+ /* ============================================================================ */
501
+
502
+ .list__container:focus-within {
503
+ outline: var(--cs-border-width-thick) solid var(--cs-colors-interactive-focus);
504
+ outline-offset: 2px;
505
+ }
506
+
507
+ .list__item:focus {
508
+ outline: var(--cs-border-width-thick) solid var(--cs-colors-interactive-focus);
509
+ outline-offset: -2px;
510
+ }
511
+
512
+ /* High contrast mode support */
513
+ @media (prefers-contrast: high) {
514
+ .list__container {
515
+ border-width: var(--cs-border-width-thick);
516
+ }
517
+
518
+ .list__item {
519
+ border-bottom-width: var(--cs-border-width-normal);
520
+ }
521
+ }
522
+
523
+ /* Reduced motion support */
524
+ @media (prefers-reduced-motion: reduce) {
525
+ .list__item,
526
+ .list__item-actions,
527
+ .list__item-action {
528
+ transition: none;
529
+ }
530
+
531
+ .list__loading-spinner {
532
+ animation: none;
533
+ }
534
+ }
535
+
536
+ /* ============================================================================ */
537
+ /* PRINT STYLES */
538
+ /* ============================================================================ */
539
+
540
+ @media print {
541
+ .list__container {
542
+ box-shadow: none;
543
+ border: var(--cs-border-width-normal) solid #000;
544
+ }
545
+
546
+ .list__actions,
547
+ .list__footer,
548
+ .list__item-actions {
549
+ display: none;
550
+ }
551
+
552
+ .list__loading,
553
+ .list__error {
554
+ display: none;
555
+ }
556
+
557
+ .list__item:hover {
558
+ background-color: transparent;
559
+ }
560
+ }