@rakeyshgidwani/roger-ui-bank-theme-stan-design 0.1.5 → 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,498 @@
1
+ /* Table Component Styles */
2
+ /* Semantic CSS architecture following BEM methodology */
3
+
4
+ /* ============================================================================ */
5
+ /* TABLE CONTAINER */
6
+ /* ============================================================================ */
7
+
8
+ .table {
9
+ --table-bg: var(--cs-colors-surface-background);
10
+ --table-border: var(--cs-colors-surface-border);
11
+ --table-radius: var(--cs-border-radius-md);
12
+ --table-shadow: var(--cs-shadows-sm);
13
+ --table-spacing: var(--cs-spacing-scale-4);
14
+ --table-row-hover: var(--cs-colors-interactive-hover);
15
+ --table-row-selected: var(--cs-colors-primary-50);
16
+ }
17
+
18
+ .table__container {
19
+ position: relative;
20
+ background-color: var(--table-bg);
21
+ border: var(--cs-border-width-normal) solid var(--table-border);
22
+ border-radius: var(--table-radius);
23
+ box-shadow: var(--table-shadow);
24
+ overflow: hidden;
25
+ }
26
+
27
+ /* Table container sizes */
28
+ .table__container--sm {
29
+ font-size: var(--cs-fonts-primary-sizes-sm);
30
+ }
31
+
32
+ .table__container--md {
33
+ font-size: var(--cs-fonts-primary-sizes-base);
34
+ }
35
+
36
+ .table__container--lg {
37
+ font-size: var(--cs-fonts-primary-sizes-lg);
38
+ }
39
+
40
+ /* Table variants */
41
+ .table__container--bordered {
42
+ border-width: var(--cs-border-width-thick);
43
+ border-color: var(--cs-colors-primary-500);
44
+ }
45
+
46
+ .table__container--striped .table__row:nth-child(even) {
47
+ background-color: var(--cs-colors-surface-surface);
48
+ }
49
+
50
+ /* ============================================================================ */
51
+ /* TABLE HEADER */
52
+ /* ============================================================================ */
53
+
54
+ .table__header {
55
+ display: flex;
56
+ align-items: center;
57
+ justify-content: space-between;
58
+ padding: var(--table-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
+ .table__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
+ .table__actions {
71
+ display: flex;
72
+ align-items: center;
73
+ gap: var(--cs-spacing-scale-2);
74
+ }
75
+
76
+ .table__search {
77
+ position: relative;
78
+ max-width: var(--cs-spacing-scale-64);
79
+ }
80
+
81
+ .table__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(--table-border);
85
+ border-radius: var(--cs-border-radius-md);
86
+ font-size: var(--cs-fonts-primary-sizes-sm);
87
+ background-color: var(--table-bg);
88
+ transition: var(--cs-transitions-properties-colors);
89
+ }
90
+
91
+ .table__search-input:focus {
92
+ outline: none;
93
+ border-color: var(--cs-colors-primary-500);
94
+ box-shadow: var(--cs-shadows-focus);
95
+ }
96
+
97
+ .table__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
+ /* ============================================================================ */
109
+ /* TABLE STRUCTURE */
110
+ /* ============================================================================ */
111
+
112
+ .table__wrapper {
113
+ overflow-x: auto;
114
+ overflow-y: hidden;
115
+ }
116
+
117
+ .table__element {
118
+ width: 100%;
119
+ border-collapse: separate;
120
+ border-spacing: 0;
121
+ font-size: inherit;
122
+ }
123
+
124
+ /* ============================================================================ */
125
+ /* TABLE HEAD */
126
+ /* ============================================================================ */
127
+
128
+ .table__head {
129
+ background-color: var(--cs-colors-surface-surface);
130
+ }
131
+
132
+ .table__head-row {
133
+ border-bottom: var(--cs-border-width-thick) solid var(--cs-colors-surface-divider);
134
+ }
135
+
136
+ .table__head-cell {
137
+ padding: var(--cs-spacing-scale-3) var(--table-spacing);
138
+ text-align: left;
139
+ font-weight: var(--cs-fonts-primary-weights-semibold);
140
+ color: var(--cs-colors-text-primary);
141
+ background-color: var(--cs-colors-surface-surface);
142
+ border-bottom: var(--cs-border-width-thick) solid var(--cs-colors-surface-divider);
143
+ position: sticky;
144
+ top: 0;
145
+ z-index: 10;
146
+ }
147
+
148
+ .table__head-cell--sortable {
149
+ cursor: pointer;
150
+ user-select: none;
151
+ transition: var(--cs-transitions-properties-colors);
152
+ position: relative;
153
+ }
154
+
155
+ .table__head-cell--sortable:hover {
156
+ background-color: var(--table-row-hover);
157
+ }
158
+
159
+ .table__head-cell--sortable:focus {
160
+ outline: var(--cs-border-width-thick) solid var(--cs-colors-interactive-focus);
161
+ outline-offset: calc(-1 * var(--cs-border-width-thick));
162
+ }
163
+
164
+ .table__sort-indicator {
165
+ display: inline-flex;
166
+ align-items: center;
167
+ gap: var(--cs-spacing-scale-1);
168
+ }
169
+
170
+ .table__sort-icon {
171
+ width: var(--cs-spacing-scale-4);
172
+ height: var(--cs-spacing-scale-4);
173
+ color: var(--cs-colors-text-muted);
174
+ transition: var(--cs-transitions-properties-transform);
175
+ }
176
+
177
+ .table__sort-icon--asc {
178
+ transform: rotate(0deg);
179
+ color: var(--cs-colors-primary-600);
180
+ }
181
+
182
+ .table__sort-icon--desc {
183
+ transform: rotate(180deg);
184
+ color: var(--cs-colors-primary-600);
185
+ }
186
+
187
+ /* Size variants for table head */
188
+ .table__container--sm .table__head-cell {
189
+ padding: var(--cs-spacing-scale-2) var(--cs-spacing-scale-3);
190
+ font-size: var(--cs-fonts-primary-sizes-xs);
191
+ }
192
+
193
+ .table__container--lg .table__head-cell {
194
+ padding: var(--cs-spacing-scale-4) var(--cs-spacing-scale-6);
195
+ font-size: var(--cs-fonts-primary-sizes-base);
196
+ }
197
+
198
+ /* ============================================================================ */
199
+ /* TABLE BODY */
200
+ /* ============================================================================ */
201
+
202
+ .table__body {
203
+ background-color: var(--table-bg);
204
+ }
205
+
206
+ .table__row {
207
+ border-bottom: var(--cs-border-width-normal) solid var(--cs-colors-surface-divider);
208
+ transition: var(--cs-transitions-properties-colors);
209
+ }
210
+
211
+ .table__row:hover {
212
+ background-color: var(--table-row-hover);
213
+ }
214
+
215
+ .table__row--selected {
216
+ background-color: var(--table-row-selected);
217
+ }
218
+
219
+ .table__row--clickable {
220
+ cursor: pointer;
221
+ }
222
+
223
+ .table__row--expanded {
224
+ border-bottom: none;
225
+ }
226
+
227
+ .table__cell {
228
+ padding: var(--cs-spacing-scale-3) var(--table-spacing);
229
+ border-bottom: var(--cs-border-width-normal) solid var(--cs-colors-surface-divider);
230
+ color: var(--cs-colors-text-primary);
231
+ vertical-align: top;
232
+ }
233
+
234
+ .table__cell--center {
235
+ text-align: center;
236
+ }
237
+
238
+ .table__cell--right {
239
+ text-align: right;
240
+ }
241
+
242
+ .table__cell--nowrap {
243
+ white-space: nowrap;
244
+ }
245
+
246
+ /* Size variants for table cells */
247
+ .table__container--sm .table__cell {
248
+ padding: var(--cs-spacing-scale-2) var(--cs-spacing-scale-3);
249
+ }
250
+
251
+ .table__container--lg .table__cell {
252
+ padding: var(--cs-spacing-scale-4) var(--cs-spacing-scale-6);
253
+ }
254
+
255
+ /* ============================================================================ */
256
+ /* TABLE SELECTION */
257
+ /* ============================================================================ */
258
+
259
+ .table__checkbox {
260
+ width: var(--cs-spacing-scale-4);
261
+ height: var(--cs-spacing-scale-4);
262
+ cursor: pointer;
263
+ }
264
+
265
+ .table__checkbox-cell {
266
+ width: var(--cs-spacing-scale-12);
267
+ padding-left: var(--table-spacing);
268
+ padding-right: var(--cs-spacing-scale-2);
269
+ }
270
+
271
+ /* ============================================================================ */
272
+ /* TABLE EXPANSION */
273
+ /* ============================================================================ */
274
+
275
+ .table__expand-button {
276
+ display: inline-flex;
277
+ align-items: center;
278
+ justify-content: center;
279
+ width: var(--cs-spacing-scale-6);
280
+ height: var(--cs-spacing-scale-6);
281
+ border: none;
282
+ background: none;
283
+ cursor: pointer;
284
+ border-radius: var(--cs-border-radius-sm);
285
+ transition: var(--cs-transitions-properties-colors);
286
+ }
287
+
288
+ .table__expand-button:hover {
289
+ background-color: var(--table-row-hover);
290
+ }
291
+
292
+ .table__expand-button:focus {
293
+ outline: var(--cs-border-width-thick) solid var(--cs-colors-interactive-focus);
294
+ outline-offset: var(--cs-spacing-scale-0-5);
295
+ }
296
+
297
+ .table__expand-icon {
298
+ width: var(--cs-spacing-scale-4);
299
+ height: var(--cs-spacing-scale-4);
300
+ color: var(--cs-colors-text-secondary);
301
+ transition: var(--cs-transitions-properties-transform);
302
+ }
303
+
304
+ .table__expand-icon--expanded {
305
+ transform: rotate(90deg);
306
+ }
307
+
308
+ .table__expanded-content {
309
+ padding: var(--table-spacing);
310
+ background-color: var(--cs-colors-surface-surface);
311
+ border-top: var(--cs-border-width-normal) solid var(--cs-colors-surface-divider);
312
+ }
313
+
314
+ /* ============================================================================ */
315
+ /* TABLE STATES */
316
+ /* ============================================================================ */
317
+
318
+ .table__loading {
319
+ display: flex;
320
+ align-items: center;
321
+ justify-content: center;
322
+ padding: var(--cs-spacing-scale-16) var(--table-spacing);
323
+ color: var(--cs-colors-text-secondary);
324
+ }
325
+
326
+ .table__loading-spinner {
327
+ width: var(--cs-spacing-scale-8);
328
+ height: var(--cs-spacing-scale-8);
329
+ border: var(--cs-border-width-heavy) solid var(--cs-colors-surface-divider);
330
+ border-top: var(--cs-border-width-heavy) solid var(--cs-colors-primary-500);
331
+ border-radius: var(--cs-border-radius-full);
332
+ animation: table-loading-spin var(--cs-transitions-durations-slow) linear infinite;
333
+ margin-right: var(--cs-spacing-scale-3);
334
+ }
335
+
336
+ @keyframes table-loading-spin {
337
+ 0% { transform: rotate(0deg); }
338
+ 100% { transform: rotate(360deg); }
339
+ }
340
+
341
+ .table__error {
342
+ display: flex;
343
+ align-items: center;
344
+ justify-content: center;
345
+ padding: var(--cs-spacing-scale-16) var(--table-spacing);
346
+ color: var(--cs-colors-semantic-error-500);
347
+ text-align: center;
348
+ }
349
+
350
+ .table__empty {
351
+ display: flex;
352
+ flex-direction: column;
353
+ align-items: center;
354
+ justify-content: center;
355
+ padding: var(--cs-spacing-scale-16) var(--table-spacing);
356
+ color: var(--cs-colors-text-muted);
357
+ text-align: center;
358
+ }
359
+
360
+ .table__empty-icon {
361
+ width: var(--cs-spacing-scale-16);
362
+ height: var(--cs-spacing-scale-16);
363
+ margin-bottom: var(--cs-spacing-scale-4);
364
+ opacity: 0.5;
365
+ }
366
+
367
+ /* ============================================================================ */
368
+ /* TABLE FOOTER */
369
+ /* ============================================================================ */
370
+
371
+ .table__footer {
372
+ display: flex;
373
+ align-items: center;
374
+ justify-content: space-between;
375
+ padding: var(--table-spacing);
376
+ border-top: var(--cs-border-width-normal) solid var(--cs-colors-surface-divider);
377
+ background-color: var(--cs-colors-surface-surface);
378
+ }
379
+
380
+ .table__footer-info {
381
+ color: var(--cs-colors-text-secondary);
382
+ font-size: var(--cs-fonts-primary-sizes-sm);
383
+ }
384
+
385
+ .table__footer-actions {
386
+ display: flex;
387
+ align-items: center;
388
+ gap: var(--cs-spacing-scale-2);
389
+ }
390
+
391
+ /* ============================================================================ */
392
+ /* RESPONSIVE DESIGN */
393
+ /* ============================================================================ */
394
+
395
+ @media (max-width: 768px) {
396
+ .table__header {
397
+ flex-direction: column;
398
+ align-items: stretch;
399
+ gap: var(--cs-spacing-scale-3);
400
+ }
401
+
402
+ .table__search {
403
+ max-width: none;
404
+ }
405
+
406
+ .table__wrapper {
407
+ overflow-x: auto;
408
+ -webkit-overflow-scrolling: touch;
409
+ }
410
+
411
+ .table__container--sm .table__head-cell,
412
+ .table__container--sm .table__cell {
413
+ padding: var(--cs-spacing-scale-1) var(--cs-spacing-scale-2);
414
+ }
415
+
416
+ .table__footer {
417
+ flex-direction: column;
418
+ align-items: stretch;
419
+ gap: var(--cs-spacing-scale-3);
420
+ }
421
+ }
422
+
423
+ @media (max-width: 640px) {
424
+ .table__head-cell,
425
+ .table__cell {
426
+ padding: var(--cs-spacing-scale-2);
427
+ font-size: var(--cs-fonts-primary-sizes-sm);
428
+ }
429
+
430
+ .table__checkbox-cell {
431
+ width: var(--cs-spacing-scale-10);
432
+ }
433
+ }
434
+
435
+ /* ============================================================================ */
436
+ /* ACCESSIBILITY */
437
+ /* ============================================================================ */
438
+
439
+ .table__container:focus-within {
440
+ outline: var(--cs-border-width-thick) solid var(--cs-colors-interactive-focus);
441
+ outline-offset: var(--cs-spacing-scale-0-5);
442
+ }
443
+
444
+ .table__row:focus {
445
+ outline: var(--cs-border-width-thick) solid var(--cs-colors-interactive-focus);
446
+ outline-offset: calc(-1 * var(--cs-border-width-thick));
447
+ }
448
+
449
+ /* High contrast mode support */
450
+ @media (prefers-contrast: high) {
451
+ .table__container {
452
+ border-width: var(--cs-border-width-thick);
453
+ }
454
+
455
+ .table__head-cell,
456
+ .table__cell {
457
+ border-width: var(--cs-border-width-normal);
458
+ }
459
+ }
460
+
461
+ /* Reduced motion support */
462
+ @media (prefers-reduced-motion: reduce) {
463
+ .table__row,
464
+ .table__head-cell--sortable,
465
+ .table__expand-icon,
466
+ .table__sort-icon {
467
+ transition: none;
468
+ }
469
+
470
+ .table__loading-spinner {
471
+ animation: none;
472
+ }
473
+ }
474
+
475
+ /* ============================================================================ */
476
+ /* PRINT STYLES */
477
+ /* ============================================================================ */
478
+
479
+ @media print {
480
+ .table__container {
481
+ box-shadow: none;
482
+ border: var(--cs-border-width-normal) solid #000;
483
+ }
484
+
485
+ .table__actions,
486
+ .table__footer {
487
+ display: none;
488
+ }
489
+
490
+ .table__loading,
491
+ .table__error {
492
+ display: none;
493
+ }
494
+
495
+ .table__row:hover {
496
+ background-color: transparent;
497
+ }
498
+ }