osi-cards-lib 1.5.42 → 1.5.43

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 (38) hide show
  1. package/README.md +1 -1
  2. package/fesm2022/osi-cards-lib.mjs +5176 -3720
  3. package/fesm2022/osi-cards-lib.mjs.map +1 -1
  4. package/index.d.ts +134 -272
  5. package/package.json +4 -3
  6. package/styles/bundles/_ai-card.scss +10 -3
  7. package/styles/bundles/_card-skeleton.scss +1 -1
  8. package/styles/components/_ai-card-renderer.scss +0 -2
  9. package/styles/components/_card-actions.scss +2 -4
  10. package/styles/components/sections/_all-sections.generated.scss +0 -3
  11. package/styles/components/sections/_all-sections.scss +88 -64
  12. package/styles/components/sections/_compact-mixins.scss +9 -8
  13. package/styles/components/sections/_component-mixins.scss +40 -11
  14. package/styles/components/sections/_design-system.scss +96 -11
  15. package/styles/components/sections/_master-compact-system.scss +0 -17
  16. package/styles/components/sections/_minimalistic-design.scss +1 -4
  17. package/styles/components/sections/_modern-effects.scss +1 -3
  18. package/styles/components/sections/_modern-sections.scss +13 -69
  19. package/styles/components/sections/_section-animations.scss +158 -77
  20. package/styles/components/sections/_section-shell.scss +38 -9
  21. package/styles/components/sections/_section-types.generated.scss +0 -3
  22. package/styles/components/sections/_sections-all.scss +7 -0
  23. package/styles/components/sections/_sections-base.scss +340 -64
  24. package/styles/components/sections/_unified-section-style.scss +17 -44
  25. package/styles/components/sections/_visual-effects-library.scss +3 -3
  26. package/styles/core/_global-unified.scss +2 -6
  27. package/styles/core/_mixins.scss +1 -1
  28. package/styles/core/_surface-layers.scss +20 -11
  29. package/styles/design-system/_section-base.scss +9 -32
  30. package/styles/design-system/_tokens.scss +67 -5
  31. package/styles/design-system/_unified-sections.scss +21 -21
  32. package/styles/layout/_masonry.scss +22 -22
  33. package/styles/layout/_tilt.scss +3 -3
  34. package/styles/mixins/_section-mixins.scss +2 -2
  35. package/styles/reset/_shadow-reset.scss +3 -7
  36. package/styles/responsive.scss +9 -7
  37. package/styles/tokens/_master.scss +259 -66
  38. package/styles/tokens/_section-tokens.generated.scss +0 -7
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "osi-cards-lib",
3
- "version": "1.5.42",
3
+ "version": "1.5.43",
4
4
  "description": "Standalone OSI Cards library for Angular applications with CSS Layer support for easy style overrides",
5
5
  "keywords": [
6
6
  "angular",
@@ -38,8 +38,9 @@
38
38
  "tslib": "^2.3.0"
39
39
  },
40
40
  "optionalDependencies": {
41
- "chart.js": "^4.4.0",
42
- "leaflet": "^1.9.4"
41
+ "frappe-charts": "^1.7.3",
42
+ "leaflet": "^1.9.4",
43
+ "marked": "^17.0.0"
43
44
  },
44
45
  "exports": {
45
46
  "./package.json": {
@@ -170,7 +170,13 @@
170
170
  .ai-card-surface {
171
171
  // Use theme variables, but ensure they're applied with proper specificity
172
172
  // The theme mixins set these, but we need to ensure they're not overridden
173
- border: var(--osi-card-border, 1px solid rgba(255, 255, 255, 0.08)) !important;
173
+ border: var(--osi-card-border, 1px solid rgba(255, 121, 0, 0.2)) !important;
174
+ @supports (color: color-mix(in srgb, black 50%, white)) {
175
+ border: var(
176
+ --osi-card-border,
177
+ 1px solid color-mix(in srgb, var(--color-brand, #ff7900) 20%, transparent)
178
+ ) !important;
179
+ }
174
180
  background: var(--osi-card-background, rgba(20, 20, 20, 0.6)) !important;
175
181
  backdrop-filter: var(--osi-card-backdrop-filter, blur(12px)) !important;
176
182
  -webkit-backdrop-filter: var(--osi-card-backdrop-filter, blur(12px)) !important;
@@ -179,12 +185,13 @@
179
185
  }
180
186
 
181
187
  .ai-card-surface:hover {
182
- border: var(--osi-card-border-hover, 1px solid rgba(255, 121, 0, 0.5)) !important;
188
+ border: var(--osi-card-border-hover, 1px solid var(--color-brand, #ff7900)) !important;
183
189
  background: var(--osi-card-background-hover, rgba(30, 30, 30, 0.8)) !important;
184
190
  box-shadow: var(
185
191
  --osi-card-shadow-hover,
186
192
  0 20px 40px -5px rgba(0, 0, 0, 0.4),
187
- 0 0 0 1px rgba(255, 121, 0, 0.2)
193
+ 0 0 24px rgba(255, 121, 0, 0.5),
194
+ 0 0 0 1px rgba(255, 121, 0, 0.3)
188
195
  ) !important;
189
196
  }
190
197
 
@@ -98,7 +98,7 @@
98
98
  }
99
99
 
100
100
  .skeleton-title {
101
- font-size: var(--card-header-title-font-size, 1.25rem);
101
+ font-size: var(--card-header-title-font-size, 1.125rem);
102
102
  font-weight: var(--card-header-title-font-weight, 700);
103
103
  color: var(--foreground, #1c1c1f);
104
104
  min-height: 2rem;
@@ -38,8 +38,6 @@
38
38
  gap: var(--spacing-4xl) !important;
39
39
  }
40
40
 
41
- /* Overview grid uses compact spacing defined in _overview.scss */
42
-
43
41
  /* Global card styling enforced via variables - remove !important overrides */
44
42
  /* All cards now inherit from centralized --card-* variables */
45
43
 
@@ -86,8 +86,7 @@ app-card-actions {
86
86
  }
87
87
 
88
88
  .osi-action-button--primary:focus-visible {
89
- outline: var(--border-width-accent-sm) solid var(--color-brand) !important;
90
- outline-offset: var(--border-width-accent-sm) !important;
89
+ outline: none !important;
91
90
  }
92
91
 
93
92
  // Secondary Button - Orange Border (Outline) with WHITE text
@@ -115,8 +114,7 @@ app-card-actions {
115
114
  }
116
115
 
117
116
  .osi-action-button--secondary:focus-visible {
118
- outline: var(--border-width-accent-sm) solid var(--color-brand) !important;
119
- outline-offset: var(--border-width-accent-sm) !important;
117
+ outline: none !important;
120
118
  }
121
119
 
122
120
  // Button Content Elements - Always white
@@ -20,16 +20,13 @@
20
20
  @use "../../../components/sections/chart-section/chart-section"; // chart
21
21
  @use "../../../components/sections/contact-card-section/contact-card-section"; // contact-card
22
22
  @use "../../../components/sections/event-section/event-section"; // event
23
- @use "../../../components/sections/fallback-section/fallback-section"; // fallback
24
23
  @use "../../../components/sections/faq-section/faq-section"; // faq
25
24
  @use "../../../components/sections/financials-section/financials-section"; // financials
26
25
  @use "../../../components/sections/gallery-section/gallery-section"; // gallery
27
- @use "../../../components/sections/info-section/info-section"; // info
28
26
  @use "../../../components/sections/list-section/list-section"; // list
29
27
  @use "../../../components/sections/map-section/map-section"; // map
30
28
  @use "../../../components/sections/network-card-section/network-card-section"; // network-card
31
29
  @use "../../../components/sections/news-section/news-section"; // news
32
- @use "../../../components/sections/overview-section/overview-section"; // overview
33
30
  @use "../../../components/sections/product-section/product-section"; // product
34
31
  @use "../../../components/sections/quotation-section/quotation-section"; // quotation
35
32
  @use "../../../components/sections/social-media-section/social-media-section"; // social-media
@@ -18,8 +18,8 @@
18
18
 
19
19
  .section-card,
20
20
  .unified-card {
21
- @include unified-card;
22
- @include stream-animation;
21
+ @include card;
22
+ @include item-animation;
23
23
  }
24
24
 
25
25
  // =====================================================================
@@ -31,8 +31,8 @@
31
31
  }
32
32
 
33
33
  .analytics-metric {
34
- @include unified-card;
35
- @include stream-animation;
34
+ @include card;
35
+ @include item-animation;
36
36
  }
37
37
 
38
38
  .analytics-metric__label {
@@ -72,8 +72,8 @@
72
72
  }
73
73
 
74
74
  .financial-card {
75
- @include unified-card;
76
- @include stream-animation;
75
+ @include card;
76
+ @include item-animation;
77
77
  }
78
78
 
79
79
  .financial-card__label {
@@ -108,8 +108,8 @@
108
108
  }
109
109
 
110
110
  .overview-card {
111
- @include unified-card;
112
- @include stream-animation;
111
+ @include card;
112
+ @include item-animation;
113
113
  flex-direction: row;
114
114
  align-items: center;
115
115
  justify-content: space-between;
@@ -135,23 +135,56 @@
135
135
  // =====================================================================
136
136
 
137
137
  .info-matrix {
138
- @include stack(var(--gap-xs));
138
+ @include stack(var(--gap-sm));
139
+ // Ensure proper spacing and visual separation
140
+ padding: var(--space-2) 0;
139
141
  }
140
142
 
141
143
  .info-row {
142
- @include unified-card;
143
- @include stream-animation;
144
+ // Remove nested card styling - use cleaner, flatter design
145
+ display: flex;
144
146
  flex-direction: row;
145
147
  align-items: center;
146
148
  justify-content: space-between;
147
- padding: var(--space-2) var(--space-3);
149
+ padding: var(--space-3) var(--space-4);
148
150
  gap: var(--space-4);
151
+ border-bottom: 1px solid var(--border, rgba(0, 0, 0, 0.08));
152
+ transition: all 0.2s ease;
153
+ background: transparent;
154
+ border-radius: 0;
155
+ box-shadow: none;
156
+ position: relative;
157
+
158
+ // Remove nested white box effect
159
+ &:last-child {
160
+ border-bottom: none;
161
+ }
162
+
163
+ // Subtle hover effect
164
+ &:hover {
165
+ background: var(--osi-section-item-background-hover, rgba(0, 0, 0, 0.02));
166
+ }
167
+
168
+ // Focus state for accessibility
169
+ &:focus-within {
170
+ outline: 2px solid var(--accent, var(--osi-accent));
171
+ outline-offset: -2px;
172
+ border-radius: var(--radius-sm, 4px);
173
+ }
174
+
175
+ @include item-animation;
149
176
  }
150
177
 
151
178
  .info-row__label {
152
179
  @include type-label;
153
180
  margin-bottom: 0;
154
- min-width: 80px;
181
+ min-width: 100px;
182
+ font-weight: 600;
183
+ color: var(--osi-muted-foreground, var(--muted-foreground));
184
+ font-size: 0.8125rem;
185
+ letter-spacing: 0.01em;
186
+ // Remove orange color - use muted foreground for better hierarchy
187
+ opacity: 0.85;
155
188
  }
156
189
 
157
190
  .info-row__value {
@@ -159,6 +192,12 @@
159
192
  text-align: right;
160
193
  flex: 1;
161
194
  color: var(--foreground);
195
+ font-weight: 500;
196
+ font-size: 0.9375rem;
197
+ line-height: 1.4;
198
+ // Ensure proper text wrapping
199
+ word-break: break-word;
200
+ overflow-wrap: break-word;
162
201
  }
163
202
 
164
203
  .info-empty {
@@ -174,8 +213,8 @@
174
213
  }
175
214
 
176
215
  .news-item {
177
- @include unified-card;
178
- @include stream-animation;
216
+ @include card;
217
+ @include item-animation;
179
218
  }
180
219
 
181
220
  .news-item__header {
@@ -219,8 +258,8 @@
219
258
  }
220
259
 
221
260
  .contact-card {
222
- @include unified-card;
223
- @include stream-animation;
261
+ @include card;
262
+ @include item-animation;
224
263
  flex-direction: row;
225
264
  align-items: flex-start;
226
265
  gap: var(--space-3);
@@ -283,8 +322,8 @@
283
322
  }
284
323
 
285
324
  .event-card {
286
- @include unified-card;
287
- @include stream-animation;
325
+ @include card;
326
+ @include item-animation;
288
327
  flex-direction: row;
289
328
  align-items: flex-start;
290
329
  gap: var(--space-3);
@@ -343,8 +382,8 @@
343
382
  }
344
383
 
345
384
  .quotation-card {
346
- @include unified-card;
347
- @include stream-animation;
385
+ @include card;
386
+ @include item-animation;
348
387
  }
349
388
 
350
389
  .quotation-card__icon {
@@ -356,7 +395,6 @@
356
395
  font-style: italic;
357
396
  line-height: 1.6;
358
397
  padding-left: var(--space-3);
359
- border-left: 2px solid var(--accent);
360
398
  color: var(--foreground);
361
399
  }
362
400
 
@@ -387,8 +425,8 @@
387
425
  }
388
426
 
389
427
  .reference-card {
390
- @include unified-card;
391
- @include stream-animation;
428
+ @include card;
429
+ @include item-animation;
392
430
  }
393
431
 
394
432
  .reference-card__header {
@@ -439,8 +477,8 @@
439
477
  }
440
478
 
441
479
  .network-card {
442
- @include unified-card;
443
- @include stream-animation;
480
+ @include card;
481
+ @include item-animation;
444
482
  }
445
483
 
446
484
  .network-card__icon {
@@ -476,8 +514,8 @@
476
514
  }
477
515
 
478
516
  .product-card {
479
- @include unified-card;
480
- @include stream-animation;
517
+ @include card;
518
+ @include item-animation;
481
519
  }
482
520
 
483
521
  .product-card__header {
@@ -531,8 +569,8 @@
531
569
  }
532
570
 
533
571
  .solution-card {
534
- @include unified-card;
535
- @include stream-animation;
572
+ @include card;
573
+ @include item-animation;
536
574
  }
537
575
 
538
576
  .solution-card__icon {
@@ -597,8 +635,8 @@
597
635
  }
598
636
 
599
637
  .timeline-item {
600
- @include unified-card;
601
- @include stream-animation;
638
+ @include card;
639
+ @include item-animation;
602
640
  position: relative;
603
641
 
604
642
  &::before {
@@ -642,8 +680,8 @@
642
680
  }
643
681
 
644
682
  .brand-color-tile {
645
- @include unified-card;
646
- @include stream-animation;
683
+ @include card;
684
+ @include item-animation;
647
685
  padding: 0;
648
686
  overflow: hidden;
649
687
  }
@@ -681,8 +719,8 @@
681
719
  }
682
720
 
683
721
  .social-post {
684
- @include unified-card;
685
- @include stream-animation;
722
+ @include card;
723
+ @include item-animation;
686
724
  }
687
725
 
688
726
  .social-post__header {
@@ -726,8 +764,8 @@
726
764
  }
727
765
 
728
766
  .gallery-item {
729
- @include unified-card;
730
- @include stream-animation;
767
+ @include card;
768
+ @include item-animation;
731
769
  padding: 0;
732
770
  overflow: hidden;
733
771
  aspect-ratio: 4/3;
@@ -763,8 +801,8 @@
763
801
  }
764
802
 
765
803
  .video-card {
766
- @include unified-card;
767
- @include stream-animation;
804
+ @include card;
805
+ @include item-animation;
768
806
  padding: 0;
769
807
  overflow: hidden;
770
808
  }
@@ -837,7 +875,7 @@
837
875
  // =====================================================================
838
876
 
839
877
  .chart-container {
840
- @include unified-card;
878
+ @include card;
841
879
  min-height: 180px;
842
880
 
843
881
  canvas {
@@ -886,8 +924,8 @@
886
924
  }
887
925
 
888
926
  .list-card {
889
- @include unified-card;
890
- @include stream-animation;
927
+ @include card;
928
+ @include item-animation;
891
929
  flex-direction: row;
892
930
  align-items: center;
893
931
  gap: var(--space-3);
@@ -926,7 +964,7 @@
926
964
  // =====================================================================
927
965
 
928
966
  .map-container {
929
- @include unified-card;
967
+ @include card;
930
968
  padding: var(--space-5);
931
969
  min-height: 120px;
932
970
  display: flex;
@@ -942,8 +980,8 @@
942
980
  }
943
981
 
944
982
  .map-card {
945
- @include unified-card;
946
- @include stream-animation;
983
+ @include card;
984
+ @include item-animation;
947
985
  }
948
986
 
949
987
  .map-card__icon {
@@ -987,8 +1025,8 @@
987
1025
  }
988
1026
 
989
1027
  .faq-card {
990
- @include unified-card;
991
- @include stream-animation;
1028
+ @include card;
1029
+ @include item-animation;
992
1030
  }
993
1031
 
994
1032
  .faq-card__question {
@@ -1000,7 +1038,6 @@
1000
1038
  @include type-subtitle;
1001
1039
  margin: 0;
1002
1040
  padding-left: var(--space-3);
1003
- border-left: 2px solid var(--accent);
1004
1041
  opacity: 0.9;
1005
1042
  }
1006
1043
 
@@ -1017,8 +1054,8 @@
1017
1054
  }
1018
1055
 
1019
1056
  .pricing-card {
1020
- @include unified-card;
1021
- @include stream-animation;
1057
+ @include card;
1058
+ @include item-animation;
1022
1059
  text-align: center;
1023
1060
  }
1024
1061
 
@@ -1063,19 +1100,6 @@
1063
1100
  @include empty-state;
1064
1101
  }
1065
1102
 
1066
- // =====================================================================
1067
- // FALLBACK SECTION
1068
- // =====================================================================
1069
-
1070
- .fallback-empty {
1071
- @include empty-state;
1072
- }
1073
-
1074
- .fallback-message {
1075
- @include type-subtitle;
1076
- margin: 0;
1077
- }
1078
-
1079
1103
  // =====================================================================
1080
1104
  // SECTION BODY
1081
1105
  // =====================================================================
@@ -48,21 +48,22 @@
48
48
  // COMPACT CARD VARIANTS
49
49
  // =====================================================================
50
50
 
51
+ // =====================================================================
52
+ // CARD VARIANT: COMPACT
53
+ // =====================================================================
54
+ // Compact spacing variant using standardized tokens
55
+
51
56
  @mixin card-compact {
52
- @include base.card;
53
- padding: var(--spacing-compact-base) var(--spacing-compact-md);
54
- gap: var(--spacing-compact-sm);
55
- min-height: var(--section-card-compact-height);
57
+ @include base.card("compact");
58
+ // Gap already set by base.card with compact spacing
56
59
  }
57
60
 
58
61
  @mixin card-compact-elevated {
59
- @include card-compact;
60
- @include effects.elevated-card;
62
+ @include components.card-elevated("compact");
61
63
  }
62
64
 
63
65
  @mixin card-compact-glass {
64
- @include card-compact;
65
- @include effects.glass-card;
66
+ @include components.card-glass("compact");
66
67
  }
67
68
 
68
69
  // =====================================================================
@@ -10,30 +10,59 @@
10
10
  @use "design-tokens" as *;
11
11
  @use "modern-effects" as effects;
12
12
  @use "sections-base" as base;
13
+ @use "section-animations" as *;
13
14
 
14
15
  // =====================================================================
15
16
  // ENHANCED CARD VARIANTS
16
17
  // =====================================================================
17
18
 
18
- @mixin card-elevated {
19
- @include base.card;
20
- @include effects.elevated-card;
21
- @include effects.shimmer-effect;
19
+ // =====================================================================
20
+ // CARD VARIANT: ELEVATED
21
+ // =====================================================================
22
+ // Extends base card with shadow and lift effects on hover
23
+ // Uses standardized tokens for consistency
24
+
25
+ @mixin card-elevated($spacing: "normal") {
26
+ @include base.card($spacing);
27
+
28
+ // Enhanced shadow for elevation
29
+ box-shadow: var(--osi-section-item-shadow);
30
+ position: relative;
31
+
32
+ // Unified hover effect - no transforms for consistency
33
+ @include section-card-hover;
22
34
  }
23
35
 
24
- @mixin card-glass {
36
+ // =====================================================================
37
+ // CARD VARIANT: GLASS
38
+ // =====================================================================
39
+ // Glass morphism effect
40
+ // Uses standardized tokens for consistency
41
+
42
+ @mixin card-glass($spacing: "normal") {
43
+ @include base.card($spacing);
25
44
  @include effects.glass-card;
26
- padding: var(--spacing-base);
27
- border-radius: var(--radius-lg);
28
45
  }
29
46
 
30
- @mixin card-neumorphic {
47
+ // =====================================================================
48
+ // CARD VARIANT: NEUMORPHIC
49
+ // =====================================================================
50
+ // Soft UI neumorphic effect
51
+ // Uses standardized tokens for consistency
52
+
53
+ @mixin card-neumorphic($spacing: "normal") {
54
+ @include base.card($spacing);
31
55
  @include effects.neumorphic-card(true);
32
- padding: var(--spacing-base);
33
56
  }
34
57
 
35
- @mixin card-with-gradient {
36
- @include base.card;
58
+ // =====================================================================
59
+ // CARD VARIANT: WITH GRADIENT
60
+ // =====================================================================
61
+ // Card with gradient background and accent
62
+ // Uses standardized tokens for consistency
63
+
64
+ @mixin card-with-gradient($spacing: "normal") {
65
+ @include base.card($spacing);
37
66
  @include effects.gradient-background;
38
67
  @include effects.gradient-accent-top;
39
68
  }