osi-cards-lib 1.5.30 → 1.5.32

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 (88) hide show
  1. package/README.md +58 -20
  2. package/package.json +13 -25
  3. package/postcss.config.js +81 -0
  4. package/section-registry.json +3864 -0
  5. package/section-registry.schema.json +264 -0
  6. package/fesm2022/osi-cards-lib.mjs +0 -31878
  7. package/fesm2022/osi-cards-lib.mjs.map +0 -1
  8. package/index.d.ts +0 -11522
  9. package/scripts/setup-angular-styles.js +0 -169
  10. package/styles/_components.scss +0 -38
  11. package/styles/_index.scss +0 -25
  12. package/styles/_osi-cards-mixins.scss +0 -459
  13. package/styles/_osi-cards-tokens.scss +0 -333
  14. package/styles/_styles-scoped.scss +0 -81
  15. package/styles/_styles.scss +0 -26
  16. package/styles/bundles/_ai-card.scss +0 -245
  17. package/styles/bundles/_all.scss +0 -68
  18. package/styles/bundles/_base.scss +0 -60
  19. package/styles/bundles/_card-skeleton.scss +0 -290
  20. package/styles/bundles/_index.scss +0 -25
  21. package/styles/bundles/_sections.scss +0 -48
  22. package/styles/bundles/_tokens-only.scss +0 -139
  23. package/styles/components/_ai-card-renderer.scss +0 -104
  24. package/styles/components/_badges.scss +0 -317
  25. package/styles/components/_card-actions.scss +0 -169
  26. package/styles/components/_card-footer.scss +0 -47
  27. package/styles/components/_component-styles.scss +0 -205
  28. package/styles/components/_empty-state.scss +0 -630
  29. package/styles/components/_hero-card.scss +0 -422
  30. package/styles/components/_image-fallback.scss +0 -28
  31. package/styles/components/_streaming-effects.scss +0 -518
  32. package/styles/components/cards/_ai-card.scss +0 -718
  33. package/styles/components/sections/_all-sections.generated.scss +0 -41
  34. package/styles/components/sections/_all-sections.scss +0 -1086
  35. package/styles/components/sections/_balanced-compact-system.scss +0 -186
  36. package/styles/components/sections/_compact-mixins.scss +0 -180
  37. package/styles/components/sections/_component-mixins.scss +0 -454
  38. package/styles/components/sections/_design-system.scss +0 -477
  39. package/styles/components/sections/_design-tokens.scss +0 -308
  40. package/styles/components/sections/_enhanced-design-variables.scss +0 -147
  41. package/styles/components/sections/_master-compact-system.scss +0 -302
  42. package/styles/components/sections/_master-dense-system.scss +0 -239
  43. package/styles/components/sections/_minimalistic-design.scss +0 -268
  44. package/styles/components/sections/_modern-effects.scss +0 -392
  45. package/styles/components/sections/_modern-sections.scss +0 -351
  46. package/styles/components/sections/_perfect-system.scss +0 -204
  47. package/styles/components/sections/_section-animations.scss +0 -331
  48. package/styles/components/sections/_section-shell.scss +0 -337
  49. package/styles/components/sections/_section-types.generated.scss +0 -30
  50. package/styles/components/sections/_sections-all.scss +0 -26
  51. package/styles/components/sections/_sections-base.scss +0 -334
  52. package/styles/components/sections/_typography-system.scss +0 -327
  53. package/styles/components/sections/_ultra-compact-tokens.scss +0 -375
  54. package/styles/components/sections/_unified-section-style.scss +0 -157
  55. package/styles/components/sections/_utility-classes.scss +0 -567
  56. package/styles/components/sections/_visual-effects-library.scss +0 -374
  57. package/styles/core/_animations.scss +0 -1498
  58. package/styles/core/_bootstrap-reset.scss +0 -445
  59. package/styles/core/_color-helpers.scss +0 -46
  60. package/styles/core/_global-unified.scss +0 -118
  61. package/styles/core/_global.scss +0 -73
  62. package/styles/core/_mixins.scss +0 -491
  63. package/styles/core/_surface-layers.scss +0 -76
  64. package/styles/core/_utilities.scss +0 -326
  65. package/styles/core/_variables-unified.scss +0 -57
  66. package/styles/core/_variables.scss +0 -36
  67. package/styles/core/variables/_colors-source.scss +0 -34
  68. package/styles/core/variables/_colors-unified.scss +0 -26
  69. package/styles/core/variables/_colors.scss +0 -21
  70. package/styles/critical.scss +0 -353
  71. package/styles/design-system/_compact-theme.scss +0 -159
  72. package/styles/design-system/_section-base.scss +0 -426
  73. package/styles/design-system/_tokens.scss +0 -237
  74. package/styles/design-system/_unified-sections.scss +0 -215
  75. package/styles/layout/_feature-grid.scss +0 -322
  76. package/styles/layout/_masonry.scss +0 -734
  77. package/styles/layout/_tilt.scss +0 -244
  78. package/styles/micro-interactions.scss +0 -583
  79. package/styles/mixins/_section-mixins.scss +0 -280
  80. package/styles/non-critical.scss +0 -643
  81. package/styles/reset/_framework-reset.scss +0 -457
  82. package/styles/reset/_index.scss +0 -14
  83. package/styles/reset/_shadow-reset.scss +0 -383
  84. package/styles/responsive.scss +0 -326
  85. package/styles/themes.scss +0 -573
  86. package/styles/tokens/_index.scss +0 -92
  87. package/styles/tokens/_master.scss +0 -1404
  88. package/styles/tokens/_section-tokens.generated.scss +0 -140
@@ -1,643 +0,0 @@
1
- /**
2
- * OSI Cards - Non-Critical CSS
3
- *
4
- * This stylesheet contains styles that can be loaded asynchronously after
5
- * the critical CSS. Includes animations, effects, and enhanced styling.
6
- *
7
- * Load this stylesheet with a lower priority:
8
- *
9
- * @example
10
- * ```html
11
- * <link rel="preload" href="non-critical.css" as="style" onload="this.rel='stylesheet'">
12
- * <noscript><link rel="stylesheet" href="non-critical.css"></noscript>
13
- * ```
14
- */
15
-
16
- // =============================================================================
17
- // EXTENDED CSS CUSTOM PROPERTIES
18
- // =============================================================================
19
-
20
- :root {
21
- // Extended spacing
22
- --osi-spacing-xl: 32px;
23
- --osi-spacing-2xl: 48px;
24
- --osi-spacing-3xl: 64px;
25
-
26
- // Extended shadows
27
- --osi-shadow-lg: 0 10px 25px rgba(0, 0, 0, 0.15);
28
- --osi-shadow-xl: 0 20px 50px rgba(0, 0, 0, 0.2);
29
- --osi-shadow-glow: 0 0 40px rgba(var(--osi-color-brand-rgb), 0.3);
30
-
31
- // Animation timing
32
- --osi-transition-fast: 150ms ease;
33
- --osi-transition-normal: 200ms ease;
34
- --osi-transition-slow: 300ms ease;
35
-
36
- // Extended colors
37
- --osi-color-success: #28a745;
38
- --osi-color-warning: #ffc107;
39
- --osi-color-error: #dc3545;
40
- --osi-color-info: #17a2b8;
41
-
42
- // Trend colors
43
- --osi-color-trend-up: #28a745;
44
- --osi-color-trend-down: #dc3545;
45
- --osi-color-trend-stable: #6c757d;
46
- }
47
-
48
- // =============================================================================
49
- // ANIMATION KEYFRAMES
50
- // =============================================================================
51
-
52
- @keyframes osi-fade-in {
53
- from {
54
- opacity: 0;
55
- }
56
- to {
57
- opacity: 1;
58
- }
59
- }
60
-
61
- @keyframes osi-fade-in-up {
62
- from {
63
- opacity: 0;
64
- transform: translate3d(0, 10px, 0);
65
- }
66
- to {
67
- opacity: 1;
68
- transform: translate3d(0, 0, 0);
69
- }
70
- }
71
-
72
- @keyframes osi-fade-in-scale {
73
- from {
74
- opacity: 0;
75
- transform: translate3d(0, 0, 0) scale(0.95);
76
- }
77
- to {
78
- opacity: 1;
79
- transform: translate3d(0, 0, 0) scale(1);
80
- }
81
- }
82
-
83
- @keyframes osi-skeleton-shimmer {
84
- 0% {
85
- background-position: -200% 0;
86
- }
87
- 100% {
88
- background-position: 200% 0;
89
- }
90
- }
91
-
92
- @keyframes osi-pulse {
93
- 0%,
94
- 100% {
95
- opacity: 1;
96
- }
97
- 50% {
98
- opacity: 0.5;
99
- }
100
- }
101
-
102
- @keyframes osi-spin {
103
- from {
104
- transform: rotate(0deg);
105
- }
106
- to {
107
- transform: rotate(360deg);
108
- }
109
- }
110
-
111
- @keyframes osi-bounce {
112
- 0%,
113
- 20%,
114
- 53%,
115
- 100% {
116
- animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
117
- transform: translate3d(0, 0, 0);
118
- }
119
- 40%,
120
- 43% {
121
- animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
122
- transform: translate3d(0, -15px, 0);
123
- }
124
- 70% {
125
- animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
126
- transform: translate3d(0, -7px, 0);
127
- }
128
- 90% {
129
- transform: translate3d(0, -3px, 0);
130
- }
131
- }
132
-
133
- @keyframes osi-float {
134
- 0%,
135
- 100% {
136
- transform: translate3d(0, 0, 0);
137
- }
138
- 50% {
139
- transform: translate3d(0, -5px, 0);
140
- }
141
- }
142
-
143
- // =============================================================================
144
- // CARD ENHANCED STYLES
145
- // =============================================================================
146
-
147
- .osi-card {
148
- // Add transitions for non-critical interactions
149
- transition:
150
- box-shadow var(--osi-transition-normal),
151
- transform var(--osi-transition-normal);
152
-
153
- &:hover {
154
- box-shadow: var(--osi-shadow-lg);
155
- }
156
-
157
- &--elevated {
158
- box-shadow: var(--osi-shadow-lg);
159
-
160
- &:hover {
161
- box-shadow: var(--osi-shadow-xl);
162
- }
163
- }
164
-
165
- &--with-glow {
166
- &:hover {
167
- box-shadow: var(--osi-shadow-glow);
168
- }
169
- }
170
- }
171
-
172
- .osi-card-surface {
173
- transition: transform var(--osi-transition-normal);
174
- }
175
-
176
- // =============================================================================
177
- // CARD ANIMATIONS
178
- // =============================================================================
179
-
180
- .osi-card-enter {
181
- animation: osi-fade-in-scale 0.3s ease-out forwards;
182
- }
183
-
184
- .osi-card-exit {
185
- animation: osi-fade-in-scale 0.2s ease-in reverse forwards;
186
- }
187
-
188
- // Staggered entrance for multiple cards
189
- @for $i from 1 through 10 {
190
- .osi-card:nth-child(#{$i}) {
191
- animation-delay: #{($i - 1) * 0.05}s;
192
- }
193
- }
194
-
195
- // =============================================================================
196
- // TILT EFFECT STYLES
197
- // =============================================================================
198
-
199
- .osi-card--tilt-enabled {
200
- perspective: 1000px;
201
-
202
- .osi-card-surface {
203
- transform-style: preserve-3d;
204
- transition: transform 0.1s ease-out;
205
- }
206
-
207
- &:hover .osi-card-surface {
208
- // Tilt handled via JS, but add smooth transition
209
- }
210
- }
211
-
212
- .osi-tilt-glow {
213
- position: absolute;
214
- inset: 0;
215
- border-radius: inherit;
216
- pointer-events: none;
217
- opacity: 0;
218
- transition: opacity var(--osi-transition-normal);
219
- background: radial-gradient(
220
- circle at var(--mouse-x, 50%) var(--mouse-y, 50%),
221
- rgba(var(--osi-color-brand-rgb), 0.15) 0%,
222
- transparent 60%
223
- );
224
- }
225
-
226
- .osi-card--tilt-enabled:hover .osi-tilt-glow {
227
- opacity: 1;
228
- }
229
-
230
- .osi-tilt-reflection {
231
- position: absolute;
232
- inset: 0;
233
- border-radius: inherit;
234
- pointer-events: none;
235
- background: linear-gradient(135deg, rgba(255, 255, 255, 0.1) 0%, transparent 50%);
236
- opacity: 0;
237
- transition: opacity var(--osi-transition-normal);
238
- }
239
-
240
- .osi-card--tilt-enabled:hover .osi-tilt-reflection {
241
- opacity: 0.5;
242
- }
243
-
244
- // =============================================================================
245
- // SECTION ANIMATIONS
246
- // =============================================================================
247
-
248
- .osi-section {
249
- opacity: 0;
250
- animation: osi-fade-in-up 0.3s ease-out forwards;
251
-
252
- @for $i from 1 through 15 {
253
- &:nth-child(#{$i}) {
254
- animation-delay: #{($i - 1) * 0.08}s;
255
- }
256
- }
257
- }
258
-
259
- .osi-section--streaming {
260
- .osi-section-title::after {
261
- content: "";
262
- display: inline-block;
263
- width: 3px;
264
- height: 1em;
265
- background: var(--osi-color-brand);
266
- margin-left: 4px;
267
- animation: osi-pulse 0.8s infinite;
268
- }
269
- }
270
-
271
- // =============================================================================
272
- // FIELD ANIMATIONS
273
- // =============================================================================
274
-
275
- .osi-field {
276
- opacity: 0;
277
- animation: osi-fade-in 0.2s ease-out forwards;
278
-
279
- @for $i from 1 through 20 {
280
- &:nth-child(#{$i}) {
281
- animation-delay: #{($i - 1) * 0.04}s;
282
- }
283
- }
284
- }
285
-
286
- .osi-field--streaming {
287
- .osi-field-value {
288
- background: linear-gradient(
289
- 90deg,
290
- var(--osi-color-background-soft) 0%,
291
- var(--osi-color-border) 50%,
292
- var(--osi-color-background-soft) 100%
293
- );
294
- background-size: 200% 100%;
295
- animation: osi-skeleton-shimmer 1.5s infinite;
296
- border-radius: var(--osi-border-radius-sm);
297
- }
298
- }
299
-
300
- // =============================================================================
301
- // ITEM ANIMATIONS
302
- // =============================================================================
303
-
304
- .osi-item {
305
- opacity: 0;
306
- animation: osi-fade-in-up 0.25s ease-out forwards;
307
-
308
- @for $i from 1 through 20 {
309
- &:nth-child(#{$i}) {
310
- animation-delay: #{($i - 1) * 0.04}s;
311
- }
312
- }
313
-
314
- &:hover {
315
- background: var(--osi-color-background-soft);
316
- border-radius: var(--osi-border-radius-md);
317
- }
318
- }
319
-
320
- .osi-item--clickable {
321
- cursor: pointer;
322
- transition: background var(--osi-transition-fast);
323
-
324
- &:hover {
325
- background: var(--osi-color-background-soft);
326
- }
327
- }
328
-
329
- // =============================================================================
330
- // BUTTON ENHANCED STYLES
331
- // =============================================================================
332
-
333
- .osi-action-button {
334
- transition:
335
- background var(--osi-transition-fast),
336
- color var(--osi-transition-fast),
337
- border-color var(--osi-transition-fast),
338
- transform var(--osi-transition-fast),
339
- box-shadow var(--osi-transition-fast);
340
-
341
- &:hover {
342
- transform: translateY(-1px);
343
- }
344
-
345
- &:active {
346
- transform: translateY(0);
347
- }
348
-
349
- &--primary {
350
- &:hover {
351
- background: var(--osi-color-brand-dark);
352
- box-shadow: 0 4px 12px rgba(var(--osi-color-brand-rgb), 0.3);
353
- }
354
- }
355
-
356
- &--secondary {
357
- &:hover {
358
- background: var(--osi-color-border);
359
- }
360
- }
361
-
362
- &--outline {
363
- &:hover {
364
- background: rgba(var(--osi-color-brand-rgb), 0.1);
365
- }
366
- }
367
-
368
- &--ghost {
369
- &:hover {
370
- background: var(--osi-color-background-soft);
371
- color: var(--osi-color-text);
372
- }
373
- }
374
-
375
- // Loading state
376
- &--loading {
377
- position: relative;
378
- color: transparent;
379
-
380
- &::after {
381
- content: "";
382
- position: absolute;
383
- width: 16px;
384
- height: 16px;
385
- border: 2px solid currentColor;
386
- border-top-color: transparent;
387
- border-radius: 50%;
388
- animation: osi-spin 0.6s linear infinite;
389
- }
390
- }
391
- }
392
-
393
- // =============================================================================
394
- // SKELETON ANIMATIONS
395
- // =============================================================================
396
-
397
- .osi-skeleton {
398
- background: linear-gradient(
399
- 90deg,
400
- var(--osi-color-background-soft) 0%,
401
- var(--osi-color-border) 50%,
402
- var(--osi-color-background-soft) 100%
403
- );
404
- background-size: 200% 100%;
405
- animation: osi-skeleton-shimmer 1.5s ease-in-out infinite;
406
- }
407
-
408
- // =============================================================================
409
- // EMPTY STATE STYLES
410
- // =============================================================================
411
-
412
- .osi-empty-state {
413
- display: flex;
414
- flex-direction: column;
415
- align-items: center;
416
- justify-content: center;
417
- padding: var(--osi-spacing-2xl);
418
- text-align: center;
419
- min-height: 300px;
420
- }
421
-
422
- .osi-empty-state-title {
423
- font-size: var(--osi-font-size-xl);
424
- font-weight: 600;
425
- margin-bottom: var(--osi-spacing-md);
426
- animation: osi-fade-in 0.3s ease-out;
427
- }
428
-
429
- .osi-empty-state-message {
430
- font-size: var(--osi-font-size-base);
431
- color: var(--osi-color-text-secondary);
432
- animation: osi-fade-in 0.3s ease-out 0.1s both;
433
- }
434
-
435
- // =============================================================================
436
- // PARTICLE ANIMATION STYLES
437
- // =============================================================================
438
-
439
- .osi-particles-container {
440
- position: absolute;
441
- inset: 0;
442
- pointer-events: none;
443
- overflow: hidden;
444
- }
445
-
446
- .osi-particle {
447
- position: absolute;
448
- width: 8px;
449
- height: 8px;
450
- border-radius: 50%;
451
- background: var(--osi-color-brand);
452
- opacity: 0.3;
453
- animation: osi-float 3s ease-in-out infinite;
454
-
455
- @for $i from 1 through 20 {
456
- &:nth-child(#{$i}) {
457
- animation-delay: #{$i * 0.15}s;
458
- left: #{random(100)}%;
459
- top: #{random(100)}%;
460
- }
461
- }
462
- }
463
-
464
- // =============================================================================
465
- // TREND INDICATORS
466
- // =============================================================================
467
-
468
- .osi-trend {
469
- display: inline-flex;
470
- align-items: center;
471
- gap: var(--osi-spacing-xs);
472
- font-size: var(--osi-font-size-sm);
473
- font-weight: 500;
474
-
475
- &--up {
476
- color: var(--osi-color-trend-up);
477
- }
478
-
479
- &--down {
480
- color: var(--osi-color-trend-down);
481
- }
482
-
483
- &--stable {
484
- color: var(--osi-color-trend-stable);
485
- }
486
- }
487
-
488
- .osi-trend-icon {
489
- transition: transform var(--osi-transition-fast);
490
- }
491
-
492
- .osi-trend:hover .osi-trend-icon {
493
- transform: scale(1.1);
494
- }
495
-
496
- // =============================================================================
497
- // PROGRESS BAR
498
- // =============================================================================
499
-
500
- .osi-progress {
501
- height: 6px;
502
- background: var(--osi-color-background-soft);
503
- border-radius: 3px;
504
- overflow: hidden;
505
- }
506
-
507
- .osi-progress-bar {
508
- height: 100%;
509
- background: var(--osi-color-brand);
510
- border-radius: inherit;
511
- transition: width var(--osi-transition-slow);
512
- }
513
-
514
- // =============================================================================
515
- // TOOLTIP STYLES
516
- // =============================================================================
517
-
518
- .osi-tooltip {
519
- position: absolute;
520
- z-index: var(--osi-z-index-dropdown);
521
- padding: var(--osi-spacing-sm) var(--osi-spacing-md);
522
- background: var(--osi-color-text);
523
- color: var(--osi-color-background);
524
- font-size: var(--osi-font-size-sm);
525
- border-radius: var(--osi-border-radius-sm);
526
- box-shadow: var(--osi-shadow-md);
527
- opacity: 0;
528
- transform: translateY(4px);
529
- transition:
530
- opacity var(--osi-transition-fast),
531
- transform var(--osi-transition-fast);
532
- pointer-events: none;
533
-
534
- &--visible {
535
- opacity: 1;
536
- transform: translateY(0);
537
- }
538
- }
539
-
540
- // =============================================================================
541
- // STATUS BADGES
542
- // =============================================================================
543
-
544
- .osi-status-badge {
545
- display: inline-flex;
546
- align-items: center;
547
- gap: var(--osi-spacing-xs);
548
- padding: 2px var(--osi-spacing-sm);
549
- font-size: 0.75rem;
550
- font-weight: 500;
551
- border-radius: 9999px;
552
- text-transform: uppercase;
553
- letter-spacing: 0.05em;
554
-
555
- &--completed {
556
- background: rgba(40, 167, 69, 0.1);
557
- color: var(--osi-color-success);
558
- }
559
-
560
- &--in-progress {
561
- background: rgba(255, 193, 7, 0.1);
562
- color: var(--osi-color-warning);
563
- }
564
-
565
- &--pending {
566
- background: var(--osi-color-background-soft);
567
- color: var(--osi-color-text-secondary);
568
- }
569
-
570
- &--error {
571
- background: rgba(220, 53, 69, 0.1);
572
- color: var(--osi-color-error);
573
- }
574
- }
575
-
576
- // =============================================================================
577
- // FULLSCREEN MODE
578
- // =============================================================================
579
-
580
- .osi-card--fullscreen {
581
- position: fixed;
582
- inset: 0;
583
- z-index: var(--osi-z-index-modal);
584
- border-radius: 0;
585
- animation: osi-fade-in-scale 0.2s ease-out;
586
-
587
- .osi-card-surface {
588
- border-radius: 0;
589
- }
590
- }
591
-
592
- .osi-fullscreen-backdrop {
593
- position: fixed;
594
- inset: 0;
595
- background: rgba(0, 0, 0, 0.5);
596
- z-index: calc(var(--osi-z-index-modal) - 1);
597
- animation: osi-fade-in 0.2s ease-out;
598
- }
599
-
600
- // =============================================================================
601
- // PRINT STYLES
602
- // =============================================================================
603
-
604
- @media print {
605
- .osi-card {
606
- box-shadow: none;
607
- border: 1px solid var(--osi-color-border);
608
- break-inside: avoid;
609
- }
610
-
611
- .osi-card-actions,
612
- .osi-tilt-glow,
613
- .osi-tilt-reflection,
614
- .osi-particles-container {
615
- display: none !important;
616
- }
617
-
618
- .osi-section,
619
- .osi-field,
620
- .osi-item {
621
- animation: none !important;
622
- opacity: 1 !important;
623
- }
624
- }
625
-
626
- // =============================================================================
627
- // HIGH CONTRAST MODE
628
- // =============================================================================
629
-
630
- @media (forced-colors: active) {
631
- .osi-card {
632
- border: 2px solid CanvasText;
633
- }
634
-
635
- .osi-action-button {
636
- border: 2px solid ButtonText;
637
- }
638
-
639
- .osi-skeleton {
640
- background: Canvas;
641
- border: 1px solid CanvasText;
642
- }
643
- }