osi-cards-lib 1.5.43 → 1.5.45

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/index.d.ts CHANGED
@@ -10811,7 +10811,7 @@ declare class SocialMediaSectionComponent extends BaseSectionComponent implement
10811
10811
  * Solutions Section Component
10812
10812
  *
10813
10813
  * Displays solution offerings, use cases, and service information.
10814
- * Features: benefits, complexity indicators, delivery timeframes.
10814
+ * Features: benefits, delivery timeframes, expresso links.
10815
10815
  */
10816
10816
  declare class SolutionsSectionComponent extends BaseSectionComponent implements OnInit, AfterViewInit, OnDestroy {
10817
10817
  private readonly layoutService;
@@ -10878,6 +10878,18 @@ declare class SolutionsSectionComponent extends BaseSectionComponent implements
10878
10878
  * Safely converts score to a number and calculates percentage (0-100)
10879
10879
  */
10880
10880
  getScorePercentage(solution: any): number;
10881
+ /**
10882
+ * Handle expresso logo click
10883
+ */
10884
+ onExpressoLogoClick(solution: any): void;
10885
+ /**
10886
+ * Open expresso link in a new tab
10887
+ */
10888
+ openExpressoLink(link: string): void;
10889
+ /**
10890
+ * Get tooltip text for expresso link
10891
+ */
10892
+ getExpressoTooltip(solution: any): string;
10881
10893
  static ɵfac: i0.ɵɵFactoryDeclaration<SolutionsSectionComponent, never>;
10882
10894
  static ɵcmp: i0.ɵɵComponentDeclaration<SolutionsSectionComponent, "lib-solutions-section", never, {}, {}, never, never, true, never>;
10883
10895
  }
@@ -11560,11 +11572,11 @@ declare function packWithZeroGapsGuarantee(sections: CardSection[], columns?: nu
11560
11572
  * Do not edit manually - generated by scripts/generate-version.js
11561
11573
  *
11562
11574
  * Source of truth: version.config.json
11563
- * Last synced: 2026-01-08T09:54:54.239Z
11575
+ * Last synced: 2026-01-08T11:23:10.755Z
11564
11576
  */
11565
- declare const VERSION = "1.5.43";
11566
- declare const BUILD_DATE = "2026-01-08T09:54:54.239Z";
11567
- declare const BUILD_HASH = "8297fa0";
11577
+ declare const VERSION = "1.5.45";
11578
+ declare const BUILD_DATE = "2026-01-08T11:23:10.755Z";
11579
+ declare const BUILD_HASH = "6af2c47";
11568
11580
  declare const BUILD_BRANCH = "main";
11569
11581
  interface VersionInfo {
11570
11582
  version: string;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "osi-cards-lib",
3
- "version": "1.5.43",
3
+ "version": "1.5.45",
4
4
  "description": "Standalone OSI Cards library for Angular applications with CSS Layer support for easy style overrides",
5
5
  "keywords": [
6
6
  "angular",
@@ -195,43 +195,6 @@
195
195
  ) !important;
196
196
  }
197
197
 
198
- // Section highlight animation for URL fragment scrolling
199
- .section-highlight {
200
- animation: section-pulse 2s ease-out;
201
- position: relative;
202
- }
203
-
204
- .section-highlight::after {
205
- content: "";
206
- position: absolute;
207
- inset: -4px;
208
- border: 2px solid rgba(255, 121, 0, 0.6);
209
- border-radius: 14px;
210
- pointer-events: none;
211
- animation: section-border-fade 2s ease-out forwards;
212
- }
213
-
214
- @keyframes section-pulse {
215
- 0%,
216
- 100% {
217
- transform: scale(1);
218
- }
219
- 50% {
220
- transform: scale(1.01);
221
- }
222
- }
223
-
224
- @keyframes section-border-fade {
225
- 0% {
226
- opacity: 1;
227
- box-shadow: 0 0 20px rgba(255, 121, 0, 0.4);
228
- }
229
- 100% {
230
- opacity: 0;
231
- box-shadow: 0 0 0 rgba(255, 121, 0, 0);
232
- }
233
- }
234
-
235
198
  // 10. Action buttons and footer (enforced styles for Shadow DOM)
236
199
  @import "../components/card-actions";
237
200
  @import "../components/card-footer";
@@ -409,26 +409,6 @@
409
409
  font-weight: normal;
410
410
  }
411
411
 
412
- /* ===================================================================
413
- SECTION HIGHLIGHT EFFECT
414
- For URL fragment scrolling and attention
415
- =================================================================== */
416
-
417
- .section-highlight {
418
- animation: sectionPulse 2s ease-out;
419
- position: relative;
420
- }
421
-
422
- .section-highlight::after {
423
- content: "";
424
- position: absolute;
425
- inset: -4px;
426
- border: 2px solid color-mix(in srgb, var(--color-brand, #ff7900) 60%, transparent);
427
- border-radius: var(--card-border-radius, 14px);
428
- pointer-events: none;
429
- animation: sectionBorderFade 2s ease-out forwards;
430
- }
431
-
432
412
  /* ===================================================================
433
413
  NEW SECTION GLOW EFFECT
434
414
  For newly added streaming sections
@@ -559,4 +559,14 @@
559
559
  }
560
560
  }
561
561
 
562
+ // Exception: Overview sections with single-text format (Executive Summary) use 7px spacing
563
+ // This override comes after the general rule to ensure it takes precedence
564
+ .ai-section.ai-section--overview .overview-item--single-text .overview-item__value--single-text br {
565
+ margin-top: 7px !important; // 7px gap for Executive Summary (reduced from 15px)
566
+ height: 7px !important;
567
+ line-height: 1.3 !important;
568
+ display: block !important;
569
+ content: "";
570
+ }
571
+
562
572
  // =====================================================================
@@ -88,7 +88,7 @@
88
88
  .ai-section__title {
89
89
  @include section-heading-text;
90
90
  font-size: var(--osi-section-title-font-size) !important;
91
- font-weight: var(--osi-section-title-font-weight) !important;
91
+ font-weight: 700 !important;
92
92
  letter-spacing: var(--osi-section-title-letter-spacing) !important;
93
93
  line-height: var(--osi-section-title-line-height) !important;
94
94
  color: var(--osi-section-title-color) !important;
@@ -24,10 +24,3 @@
24
24
  // ALL SECTION STYLES (Unified)
25
25
  // ============================================================================
26
26
  @import "all-sections";
27
-
28
- // ============================================================================
29
- // INDIVIDUAL SECTION COMPONENT STYLES
30
- // ============================================================================
31
- // Import individual section component SCSS files
32
- // These are the styles from each section's component styleUrls
33
- @import "section-types.generated";
@@ -149,6 +149,7 @@
149
149
  @mixin card($spacing: "normal") {
150
150
  // Background & Border - using standardized tokens
151
151
  background: var(--osi-section-item-background);
152
+ // Set border on all sides including top
152
153
  border: var(--osi-section-item-border);
153
154
  border-radius: var(--osi-section-item-border-radius);
154
155
  box-shadow: var(--osi-section-item-shadow);
@@ -607,27 +607,6 @@
607
607
  }
608
608
 
609
609
  /* Section pulse - subtle scale pulse for highlighted sections */
610
- @keyframes sectionPulse {
611
- 0%,
612
- 100% {
613
- transform: scale(1);
614
- }
615
- 50% {
616
- transform: scale(1.01);
617
- }
618
- }
619
-
620
- /* Section border fade - fading border highlight */
621
- @keyframes sectionBorderFade {
622
- 0% {
623
- opacity: 1;
624
- box-shadow: 0 0 20px color-mix(in srgb, var(--color-brand, #ff7900) 40%, transparent);
625
- }
626
- 100% {
627
- opacity: 0;
628
- box-shadow: 0 0 0 transparent;
629
- }
630
- }
631
610
 
632
611
  /* New section glow - glow effect for newly added sections */
633
612
  @keyframes newSectionGlow {
@@ -1263,16 +1242,6 @@
1263
1242
  animation: waveSlide 2s ease-in-out infinite;
1264
1243
  }
1265
1244
 
1266
- /* Section pulse - highlighted section */
1267
- .animate-section-pulse {
1268
- animation: sectionPulse 2s ease-out;
1269
- }
1270
-
1271
- /* Section border fade - fading highlight */
1272
- .animate-section-border-fade {
1273
- animation: sectionBorderFade 2s ease-out forwards;
1274
- }
1275
-
1276
1245
  /* New section glow - streaming new sections */
1277
1246
  .animate-new-section-glow {
1278
1247
  animation: newSectionGlow 0.6s ease-out forwards;
@@ -1371,22 +1340,6 @@
1371
1340
  }
1372
1341
  }
1373
1342
 
1374
- /* Section highlight - URL fragment scroll highlight */
1375
- .section-highlight {
1376
- animation: sectionPulse 2s ease-out;
1377
- position: relative;
1378
-
1379
- &::after {
1380
- content: "";
1381
- position: absolute;
1382
- inset: -4px;
1383
- border: 2px solid color-mix(in srgb, var(--color-brand, #ff7900) 60%, transparent);
1384
- border-radius: 14px;
1385
- pointer-events: none;
1386
- animation: sectionBorderFade 2s ease-out forwards;
1387
- }
1388
- }
1389
-
1390
1343
  /* ===================================================================
1391
1344
  PERFORMANCE OPTIMIZATION
1392
1345
  Hardware acceleration hints for smooth animations
@@ -1439,8 +1392,6 @@
1439
1392
  .animate-pulse-ring,
1440
1393
  .animate-text-shimmer,
1441
1394
  .animate-wave-slide,
1442
- .animate-section-pulse,
1443
- .animate-section-border-fade,
1444
1395
  .animate-new-section-glow,
1445
1396
  .animate-dot-pulse,
1446
1397
  .animate-ring-expand,
@@ -1458,7 +1409,6 @@
1458
1409
  .animate-bounce,
1459
1410
  .section-streaming,
1460
1411
  .section-streaming-glow,
1461
- .section-highlight,
1462
1412
  .field-streaming,
1463
1413
  .item-streaming,
1464
1414
  .state-transition-enter,
@@ -1476,7 +1426,6 @@
1476
1426
 
1477
1427
  /* Disable pseudo-element animations */
1478
1428
  .animate-spark-travel::before,
1479
- .section-highlight::after,
1480
1429
  .btn-ripple::after {
1481
1430
  animation: none !important;
1482
1431
  display: none;
@@ -1234,55 +1234,60 @@ $breakpoints: (
1234
1234
  --theme-ai-card-border: 1px solid
1235
1235
  color-mix(in srgb, var(--color-brand, #{$brand-color}) 20%, transparent);
1236
1236
  }
1237
- --theme-ai-card-border-hover: 1px solid var(--color-brand, #{$brand-color});
1238
- --theme-ai-card-background: rgba(255, 255, 255, 0.85);
1239
- --theme-ai-card-background-hover: rgba(255, 255, 255, 0.92);
1240
- --theme-ai-card-box-shadow:
1241
- 0 4px 24px -1px rgba(0, 0, 0, 0.1), 0 0 18px rgba(255, 121, 0, 0.15);
1242
- --theme-ai-card-box-shadow-hover:
1243
- 0 20px 40px -5px rgba(0, 0, 0, 0.15), 0 0 24px rgba(255, 121, 0, 0.5),
1244
- 0 0 0 1px rgba(255, 121, 0, 0.3);
1245
- --theme-ai-card-backdrop-filter: blur(12px);
1246
- --theme-ai-card-transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
1247
-
1248
- --theme-card-border: 1px solid rgba(0, 0, 0, 0.08);
1249
- --theme-card-border-hover: var(--color-brand);
1250
- --theme-card-background: var(--background);
1251
- --theme-card-background-hover: color-mix(
1252
- in srgb,
1253
- var(--background) 98%,
1254
- var(--surface-contrast-color) 2%
1255
- );
1256
- --theme-card-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);
1257
- --theme-card-box-shadow-hover: 0 2px 4px rgba(0, 0, 0, 0.07);
1258
-
1259
- --theme-section-border: 1px solid rgba(0, 0, 0, 0.06);
1260
- --theme-section-border-hover: 1px solid rgba(255, 121, 0, 0.15);
1261
- --theme-section-border-hover-enhanced-color: rgba(0, 0, 0, 0.13);
1262
- --theme-section-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.04);
1263
- --theme-section-box-shadow-hover: 0 2px 4px rgba(0, 0, 0, 0.05);
1264
- --theme-section-shadow-hover-enhanced: var(--shadow-lg), 0 0 16px rgba(59, 130, 246, 0.117);
1265
- --theme-section-transition:
1266
- border-color 0.22s cubic-bezier(0.4, 0, 0.2, 1), box-shadow 0.22s cubic-bezier(0.4, 0, 0.2, 1);
1267
- // Flat backgrounds - no color-mix
1268
- --section-background: var(--background);
1269
- --section-background-hover: var(--background);
1270
- --section-surface: var(--background);
1271
- --section-surface-hover: var(--background);
1237
+ & {
1238
+ --theme-ai-card-border-hover: 1px solid var(--color-brand, #{$brand-color});
1239
+ --theme-ai-card-background: rgba(255, 255, 255, 0.85);
1240
+ --theme-ai-card-background-hover: rgba(255, 255, 255, 0.92);
1241
+ --theme-ai-card-box-shadow:
1242
+ 0 4px 24px -1px rgba(0, 0, 0, 0.1), 0 0 18px rgba(255, 121, 0, 0.15);
1243
+ --theme-ai-card-box-shadow-hover:
1244
+ 0 20px 40px -5px rgba(0, 0, 0, 0.15), 0 0 24px rgba(255, 121, 0, 0.5),
1245
+ 0 0 0 1px rgba(255, 121, 0, 0.3);
1246
+ --theme-ai-card-backdrop-filter: blur(12px);
1247
+ --theme-ai-card-transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
1248
+ }
1272
1249
 
1273
- --theme-section-item-border: 1px solid rgba(0, 0, 0, 0.06);
1274
- --theme-section-item-border-hover: 1px solid rgba(255, 121, 0, 0.15);
1275
- --theme-section-item-background: var(--background);
1276
- --theme-section-item-background-hover: var(--background);
1277
- --theme-section-item-box-shadow: var(--shadow-md, 0 1px 2px rgba(0, 0, 0, 0.04));
1278
- --theme-section-item-box-shadow-hover: var(--shadow-lg, 0 1px 3px rgba(0, 0, 0, 0.05));
1279
- --theme-section-item-border-hover-enhanced-color: rgba(0, 0, 0, 0.195);
1280
- --theme-section-item-shadow-hover-enhanced:
1281
- var(--shadow-lg), 0 0 16px rgba(59, 130, 246, 0.1755);
1282
- --theme-section-item-hover-transform: none;
1283
- --theme-section-item-transition:
1284
- border-color 0.2s cubic-bezier(0.4, 0, 0.2, 1), background 0.2s cubic-bezier(0.4, 0, 0.2, 1),
1285
- box-shadow 0.2s cubic-bezier(0.4, 0, 0.2, 1);
1250
+ & {
1251
+ --theme-card-border: 1px solid rgba(0, 0, 0, 0.08);
1252
+ --theme-card-border-hover: var(--color-brand);
1253
+ --theme-card-background: var(--background);
1254
+ --theme-card-background-hover: color-mix(
1255
+ in srgb,
1256
+ var(--background) 98%,
1257
+ var(--surface-contrast-color) 2%
1258
+ );
1259
+ --theme-card-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);
1260
+ --theme-card-box-shadow-hover: 0 2px 4px rgba(0, 0, 0, 0.07);
1261
+
1262
+ --theme-section-border: 1px solid rgba(0, 0, 0, 0.06);
1263
+ --theme-section-border-hover: 1px solid rgba(255, 121, 0, 0.15);
1264
+ --theme-section-border-hover-enhanced-color: rgba(0, 0, 0, 0.13);
1265
+ --theme-section-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.04);
1266
+ --theme-section-box-shadow-hover: 0 2px 4px rgba(0, 0, 0, 0.05);
1267
+ --theme-section-shadow-hover-enhanced: var(--shadow-lg), 0 0 16px rgba(59, 130, 246, 0.117);
1268
+ --theme-section-transition:
1269
+ border-color 0.22s cubic-bezier(0.4, 0, 0.2, 1),
1270
+ box-shadow 0.22s cubic-bezier(0.4, 0, 0.2, 1);
1271
+ // Flat backgrounds - no color-mix
1272
+ --section-background: var(--background);
1273
+ --section-background-hover: var(--background);
1274
+ --section-surface: var(--background);
1275
+ --section-surface-hover: var(--background);
1276
+
1277
+ --theme-section-item-border: 1px solid rgba(0, 0, 0, 0.06);
1278
+ --theme-section-item-border-hover: 1px solid rgba(255, 121, 0, 0.15);
1279
+ --theme-section-item-background: var(--background);
1280
+ --theme-section-item-background-hover: var(--background);
1281
+ --theme-section-item-box-shadow: var(--shadow-md, 0 1px 2px rgba(0, 0, 0, 0.04));
1282
+ --theme-section-item-box-shadow-hover: var(--shadow-lg, 0 1px 3px rgba(0, 0, 0, 0.05));
1283
+ --theme-section-item-border-hover-enhanced-color: rgba(0, 0, 0, 0.195);
1284
+ --theme-section-item-shadow-hover-enhanced:
1285
+ var(--shadow-lg), 0 0 16px rgba(59, 130, 246, 0.1755);
1286
+ --theme-section-item-hover-transform: none;
1287
+ --theme-section-item-transition:
1288
+ border-color 0.2s cubic-bezier(0.4, 0, 0.2, 1),
1289
+ background 0.2s cubic-bezier(0.4, 0, 0.2, 1), box-shadow 0.2s cubic-bezier(0.4, 0, 0.2, 1);
1290
+ }
1286
1291
  }
1287
1292
  }
1288
1293
 
@@ -1320,15 +1325,17 @@ $breakpoints: (
1320
1325
  --theme-ai-card-border: 1px solid
1321
1326
  color-mix(in srgb, var(--color-brand, #{$brand-color}) 20%, transparent);
1322
1327
  }
1323
- --theme-ai-card-border-hover: 1px solid var(--color-brand, #{$brand-color});
1324
- --theme-ai-card-background: rgba(20, 20, 20, 0.6);
1325
- --theme-ai-card-background-hover: rgba(25, 25, 25, 0.7);
1326
- --theme-ai-card-box-shadow: 0 4px 24px -1px rgba(0, 0, 0, 0.2);
1327
- --theme-ai-card-box-shadow-hover:
1328
- 0 12px 32px -4px rgba(0, 0, 0, 0.3), 0 0 24px rgba(255, 121, 0, 0.5),
1329
- 0 0 0 1px rgba(255, 121, 0, 0.3);
1330
- --theme-ai-card-backdrop-filter: blur(12px);
1331
- --theme-ai-card-transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
1328
+ & {
1329
+ --theme-ai-card-border-hover: 1px solid var(--color-brand, #{$brand-color});
1330
+ --theme-ai-card-background: rgba(20, 20, 20, 0.6);
1331
+ --theme-ai-card-background-hover: rgba(25, 25, 25, 0.7);
1332
+ --theme-ai-card-box-shadow: 0 4px 24px -1px rgba(0, 0, 0, 0.2);
1333
+ --theme-ai-card-box-shadow-hover:
1334
+ 0 12px 32px -4px rgba(0, 0, 0, 0.3), 0 0 24px rgba(255, 121, 0, 0.5),
1335
+ 0 0 0 1px rgba(255, 121, 0, 0.3);
1336
+ --theme-ai-card-backdrop-filter: blur(12px);
1337
+ --theme-ai-card-transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
1338
+ }
1332
1339
 
1333
1340
  // Card backgrounds (matches preset)
1334
1341
  --theme-card-border: 1px solid rgba(255, 255, 255, 0.08);
@@ -1434,16 +1441,18 @@ $breakpoints: (
1434
1441
  --theme-ai-card-border: 1px solid
1435
1442
  color-mix(in srgb, var(--color-brand, #{$brand-color}) 20%, transparent);
1436
1443
  }
1437
- --theme-ai-card-border-hover: 1px solid var(--color-brand, #{$brand-color});
1438
- --theme-ai-card-background: rgba(255, 255, 255, 0.85);
1439
- --theme-ai-card-background-hover: rgba(255, 255, 255, 0.88);
1440
- --theme-ai-card-box-shadow:
1441
- 0 4px 24px -1px rgba(0, 0, 0, 0.1), 0 0 18px rgba(255, 121, 0, 0.15);
1442
- --theme-ai-card-box-shadow-hover:
1443
- 0 12px 32px -4px rgba(0, 0, 0, 0.12), 0 0 20px rgba(255, 121, 0, 0.45),
1444
- 0 0 0 1px rgba(255, 121, 0, 0.25);
1445
- --theme-ai-card-backdrop-filter: blur(12px);
1446
- --theme-ai-card-transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
1444
+ & {
1445
+ --theme-ai-card-border-hover: 1px solid var(--color-brand, #{$brand-color});
1446
+ --theme-ai-card-background: rgba(255, 255, 255, 0.85);
1447
+ --theme-ai-card-background-hover: rgba(255, 255, 255, 0.88);
1448
+ --theme-ai-card-box-shadow:
1449
+ 0 4px 24px -1px rgba(0, 0, 0, 0.1), 0 0 18px rgba(255, 121, 0, 0.15);
1450
+ --theme-ai-card-box-shadow-hover:
1451
+ 0 12px 32px -4px rgba(0, 0, 0, 0.12), 0 0 20px rgba(255, 121, 0, 0.45),
1452
+ 0 0 0 1px rgba(255, 121, 0, 0.25);
1453
+ --theme-ai-card-backdrop-filter: blur(12px);
1454
+ --theme-ai-card-transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
1455
+ }
1447
1456
 
1448
1457
  // Card backgrounds (matches preset)
1449
1458
  --theme-card-border: 1px solid rgba(0, 0, 0, 0.08);