@vipros-org/sdk 3.0.0

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/vipros-sdk.css ADDED
@@ -0,0 +1,676 @@
1
+ /**
2
+ * VIPros SDK - CSS File
3
+ * Version: 3.0.0-unified
4
+ * Generated: 2026-02-10T11:29:54.359Z
5
+ */
6
+
7
+ /* VIPros SDK Base Styles */
8
+ :root {
9
+ --vipros-primary: #7e87ed;
10
+ --vipros-secondary: #243c6c;
11
+ --vipros-success: #28a745;
12
+ --vipros-warning: #ffc107;
13
+ --vipros-danger: #dc3545;
14
+ --vipros-light: #f8f9fa;
15
+ --vipros-dark: #343a40;
16
+ --vipros-white: #ffffff;
17
+ --vipros-black: #000000;
18
+
19
+ --vipros-border-radius: 8px;
20
+ --vipros-border-radius-sm: 4px;
21
+ --vipros-border-radius-lg: 12px;
22
+
23
+ --vipros-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
24
+ --vipros-shadow-lg: 0 4px 8px rgba(0, 0, 0, 0.15);
25
+ --vipros-shadow-xl: 0 8px 16px rgba(0, 0, 0, 0.2);
26
+
27
+ --vipros-font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
28
+ --vipros-font-size-xs: 0.75rem;
29
+ --vipros-font-size-sm: 0.875rem;
30
+ --vipros-font-size: 1rem;
31
+ --vipros-font-size-lg: 1.125rem;
32
+ --vipros-font-size-xl: 1.25rem;
33
+
34
+ --vipros-spacing-xs: 0.25rem;
35
+ --vipros-spacing-sm: 0.5rem;
36
+ --vipros-spacing: 1rem;
37
+ --vipros-spacing-lg: 1.5rem;
38
+ --vipros-spacing-xl: 2rem;
39
+
40
+ --vipros-transition: all 0.2s ease-in-out;
41
+ --vipros-z-index: 1000;
42
+ }
43
+
44
+ /* Base Offer Styles */
45
+ .vipros-offer {
46
+ font-family: var(--vipros-font-family);
47
+ font-size: var(--vipros-font-size-sm);
48
+ line-height: 1.4;
49
+ color: var(--vipros-dark);
50
+ box-sizing: border-box;
51
+ position: relative;
52
+ z-index: var(--vipros-z-index);
53
+ }
54
+
55
+ .vipros-offer *,
56
+ .vipros-offer *::before,
57
+ .vipros-offer *::after {
58
+ box-sizing: border-box;
59
+ }
60
+
61
+ .vipros-offer a {
62
+ color: inherit;
63
+ text-decoration: none;
64
+ }
65
+
66
+ .vipros-offer img {
67
+ max-width: 100%;
68
+ height: auto;
69
+ }
70
+
71
+ /* Icons */
72
+ .vipros-icon {
73
+ width: 1em;
74
+ height: 1em;
75
+ display: inline-block;
76
+ vertical-align: middle;
77
+ }
78
+
79
+ .vipros-icon-arrow {
80
+ width: 0.875em;
81
+ height: 0.875em;
82
+ }
83
+
84
+ /* Offer Card Styles - Nouveau Design Moderne */
85
+ .vipros-offer-card {
86
+ background: var(--vipros-white);
87
+ border: none;
88
+ border-radius: var(--vipros-border-radius-lg);
89
+ box-shadow: 0 4px 20px rgba(126, 135, 237, 0.15);
90
+ margin: var(--vipros-spacing) 0;
91
+ padding: 0;
92
+ transition: var(--vipros-transition);
93
+ max-width: 100%;
94
+ overflow: hidden;
95
+ position: relative;
96
+ }
97
+
98
+ .vipros-offer-card:hover {
99
+ box-shadow: 0 8px 30px rgba(126, 135, 237, 0.25);
100
+ transform: translateY(-2px);
101
+ }
102
+
103
+ .vipros-offer-header {
104
+ background: linear-gradient(135deg, var(--vipros-primary), var(--vipros-secondary));
105
+ padding: var(--vipros-spacing-sm) var(--vipros-spacing);
106
+ display: flex;
107
+ justify-content: flex-end;
108
+ align-items: center;
109
+ }
110
+
111
+ /* Badge VIPros dans le header */
112
+ .vipros-badge {
113
+ display: flex;
114
+ align-items: center;
115
+ gap: var(--vipros-spacing-xs);
116
+ color: var(--vipros-white);
117
+ font-size: var(--vipros-font-size-xs);
118
+ font-weight: 700;
119
+ text-transform: uppercase;
120
+ letter-spacing: 0.5px;
121
+ }
122
+
123
+ .vipros-badge-icon {
124
+ width: 14px;
125
+ height: 14px;
126
+ }
127
+
128
+ /* Contenu principal de la carte */
129
+ .vipros-offer-main {
130
+ display: flex;
131
+ padding: var(--vipros-spacing-lg);
132
+ gap: var(--vipros-spacing-lg);
133
+ }
134
+
135
+ /* Zone image */
136
+ .vipros-offer-image {
137
+ flex-shrink: 0;
138
+ width: 120px;
139
+ height: 120px;
140
+ border-radius: var(--vipros-border-radius);
141
+ overflow: hidden;
142
+ background: var(--vipros-light);
143
+ display: flex;
144
+ align-items: center;
145
+ justify-content: center;
146
+ }
147
+
148
+ .vipros-cashback-image {
149
+ width: 100%;
150
+ height: 100%;
151
+ -o-object-fit: cover;
152
+ object-fit: cover;
153
+ }
154
+
155
+ .vipros-no-image {
156
+ width: 60px;
157
+ height: 60px;
158
+ color: var(--vipros-secondary);
159
+ opacity: 0.3;
160
+ }
161
+
162
+ .vipros-no-image svg {
163
+ width: 100%;
164
+ height: 100%;
165
+ }
166
+
167
+ /* Informations de l'offre */
168
+ .vipros-offer-info {
169
+ flex: 1;
170
+ display: flex;
171
+ flex-direction: column;
172
+ gap: var(--vipros-spacing-sm);
173
+ }
174
+
175
+ /* Montant cashback principal */
176
+ .vipros-cashback-amount {
177
+ display: flex;
178
+ align-items: baseline;
179
+ gap: var(--vipros-spacing-xs);
180
+ margin-bottom: var(--vipros-spacing-xs);
181
+ }
182
+
183
+ .vipros-amount {
184
+ font-size: 2rem;
185
+ font-weight: 800;
186
+ color: var(--vipros-primary);
187
+ line-height: 1;
188
+ }
189
+
190
+ .vipros-cashback-label {
191
+ font-size: var(--vipros-font-size-sm);
192
+ color: var(--vipros-secondary);
193
+ font-weight: 600;
194
+ }
195
+
196
+ /* Nom de l'offre */
197
+ .vipros-offer-name {
198
+ font-size: var(--vipros-font-size-lg);
199
+ font-weight: 700;
200
+ color: var(--vipros-secondary);
201
+ margin: 0;
202
+ line-height: 1.3;
203
+ }
204
+
205
+ /* Marque */
206
+ .vipros-brand-info {
207
+ display: flex;
208
+ align-items: center;
209
+ gap: var(--vipros-spacing-sm);
210
+ padding: var(--vipros-spacing-sm);
211
+ background: rgba(126, 135, 237, 0.08);
212
+ border-radius: var(--vipros-border-radius-sm);
213
+ }
214
+
215
+ .vipros-brand-logo {
216
+ width: 24px;
217
+ height: 24px;
218
+ -o-object-fit: contain;
219
+ object-fit: contain;
220
+ }
221
+
222
+ .vipros-brand-name {
223
+ font-size: var(--vipros-font-size-sm);
224
+ font-weight: 600;
225
+ color: var(--vipros-secondary);
226
+ }
227
+
228
+ /* Dates de validité */
229
+ .vipros-validity {
230
+ display: flex;
231
+ align-items: center;
232
+ gap: var(--vipros-spacing-xs);
233
+ color: var(--vipros-secondary);
234
+ font-size: var(--vipros-font-size-xs);
235
+ opacity: 0.8;
236
+ }
237
+
238
+ .vipros-validity-icon {
239
+ width: 14px;
240
+ height: 14px;
241
+ }
242
+
243
+ /* Footer avec bouton */
244
+ .vipros-offer-footer {
245
+ padding: var(--vipros-spacing) var(--vipros-spacing-lg);
246
+ background: rgba(126, 135, 237, 0.03);
247
+ border-top: 1px solid rgba(126, 135, 237, 0.1);
248
+ }
249
+
250
+ .vipros-cta-button {
251
+ display: inline-flex;
252
+ align-items: center;
253
+ justify-content: center;
254
+ gap: var(--vipros-spacing-sm);
255
+ width: 100%;
256
+ background: linear-gradient(135deg, var(--vipros-primary), var(--vipros-secondary));
257
+ color: var(--vipros-white);
258
+ padding: var(--vipros-spacing) var(--vipros-spacing-lg);
259
+ border-radius: var(--vipros-border-radius);
260
+ font-size: var(--vipros-font-size);
261
+ font-weight: 600;
262
+ text-decoration: none;
263
+ transition: var(--vipros-transition);
264
+ border: none;
265
+ cursor: pointer;
266
+ text-align: center;
267
+ }
268
+
269
+ .vipros-cta-button:hover {
270
+ transform: translateY(-1px);
271
+ box-shadow: 0 4px 15px rgba(126, 135, 237, 0.3);
272
+ }
273
+
274
+ .vipros-cta-icon {
275
+ width: 18px;
276
+ height: 18px;
277
+ }
278
+
279
+ .vipros-brand {
280
+ display: flex;
281
+ align-items: center;
282
+ gap: var(--vipros-spacing-sm);
283
+ }
284
+
285
+ .vipros-brand-logo {
286
+ width: 24px;
287
+ height: 24px;
288
+ -o-object-fit: contain;
289
+ object-fit: contain;
290
+ }
291
+
292
+ .vipros-brand-name {
293
+ font-weight: 600;
294
+ color: var(--vipros-secondary);
295
+ font-size: var(--vipros-font-size-xs);
296
+ }
297
+
298
+ .vipros-logo {
299
+ display: flex;
300
+ align-items: center;
301
+ gap: var(--vipros-spacing-xs);
302
+ color: var(--vipros-primary);
303
+ font-weight: 700;
304
+ font-size: var(--vipros-font-size-xs);
305
+ }
306
+
307
+ .vipros-offer-content {
308
+ margin-bottom: var(--vipros-spacing);
309
+ }
310
+
311
+ .vipros-product-name {
312
+ font-size: var(--vipros-font-size);
313
+ font-weight: 600;
314
+ margin: 0 0 var(--vipros-spacing-xs) 0;
315
+ color: var(--vipros-dark);
316
+ }
317
+
318
+ .vipros-product-ref {
319
+ font-size: var(--vipros-font-size-xs);
320
+ color: var(--vipros-secondary);
321
+ margin: 0;
322
+ }
323
+
324
+ .vipros-cashback-info {
325
+ display: flex;
326
+ justify-content: space-between;
327
+ align-items: center;
328
+ background: linear-gradient(45deg, var(--vipros-success), #20c997);
329
+ color: white;
330
+ padding: var(--vipros-spacing-sm);
331
+ border-radius: var(--vipros-border-radius-sm);
332
+ margin-top: var(--vipros-spacing-sm);
333
+ }
334
+
335
+ .vipros-cashback-value {
336
+ display: flex;
337
+ align-items: baseline;
338
+ gap: var(--vipros-spacing-xs);
339
+ }
340
+
341
+ .vipros-cashback-value .vipros-value {
342
+ font-size: var(--vipros-font-size-lg);
343
+ font-weight: 700;
344
+ }
345
+
346
+ .vipros-cashback-value .vipros-type {
347
+ font-size: var(--vipros-font-size-xs);
348
+ opacity: 0.9;
349
+ }
350
+
351
+ .vipros-vipoints {
352
+ display: flex;
353
+ align-items: baseline;
354
+ gap: var(--vipros-spacing-xs);
355
+ }
356
+
357
+ .vipros-vipoints-value {
358
+ font-size: var(--vipros-font-size);
359
+ font-weight: 700;
360
+ }
361
+
362
+ .vipros-vipoints-text {
363
+ font-size: var(--vipros-font-size-xs);
364
+ opacity: 0.9;
365
+ }
366
+
367
+ .vipros-vipoints-only {
368
+ background: var(--vipros-primary);
369
+ color: white;
370
+ padding: var(--vipros-spacing-sm);
371
+ border-radius: var(--vipros-border-radius-sm);
372
+ text-align: center;
373
+ margin-top: var(--vipros-spacing-sm);
374
+ }
375
+
376
+ .vipros-vipoints-only .vipros-vipoints-value {
377
+ font-size: var(--vipros-font-size-lg);
378
+ font-weight: 700;
379
+ display: block;
380
+ }
381
+
382
+ .vipros-vipoints-only .vipros-vipoints-text {
383
+ font-size: var(--vipros-font-size-xs);
384
+ opacity: 0.9;
385
+ }
386
+
387
+ .vipros-offer-footer {
388
+ border-top: 1px solid #e9ecef;
389
+ padding-top: var(--vipros-spacing-sm);
390
+ }
391
+
392
+ .vipros-description {
393
+ font-size: var(--vipros-font-size-xs);
394
+ color: var(--vipros-secondary);
395
+ margin: 0 0 var(--vipros-spacing-sm) 0;
396
+ }
397
+
398
+ .vipros-actions {
399
+ display: flex;
400
+ justify-content: flex-end;
401
+ }
402
+
403
+ .vipros-cta-button {
404
+ display: inline-flex;
405
+ align-items: center;
406
+ gap: var(--vipros-spacing-xs);
407
+ background: var(--vipros-primary);
408
+ color: white;
409
+ padding: var(--vipros-spacing-sm) var(--vipros-spacing);
410
+ border-radius: var(--vipros-border-radius-sm);
411
+ font-size: var(--vipros-font-size-xs);
412
+ font-weight: 600;
413
+ text-decoration: none;
414
+ transition: var(--vipros-transition);
415
+ border: none;
416
+ cursor: pointer;
417
+ }
418
+
419
+ .vipros-cta-button:hover {
420
+ background: #0056b3;
421
+ transform: translateY(-1px);
422
+ }
423
+
424
+ .vipros-offer-badge {
425
+ position: absolute;
426
+ top: var(--vipros-spacing-xs);
427
+ right: var(--vipros-spacing-xs);
428
+ background: var(--vipros-warning);
429
+ color: var(--vipros-dark);
430
+ padding: var(--vipros-spacing-xs) var(--vipros-spacing-sm);
431
+ border-radius: var(--vipros-border-radius-sm);
432
+ font-size: var(--vipros-font-size-xs);
433
+ font-weight: 600;
434
+ z-index: 1;
435
+ }
436
+
437
+ /* Cashback Badge Styles */
438
+ .vipros-cashback-badge {
439
+ display: inline-flex;
440
+ align-items: center;
441
+ background: linear-gradient(45deg, var(--vipros-success), #20c997);
442
+ color: white;
443
+ border-radius: var(--vipros-border-radius);
444
+ padding: var(--vipros-spacing-sm);
445
+ position: relative;
446
+ overflow: hidden;
447
+ box-shadow: var(--vipros-shadow);
448
+ margin: var(--vipros-spacing-xs) 0;
449
+ }
450
+
451
+ .vipros-badge-content {
452
+ display: flex;
453
+ align-items: center;
454
+ gap: var(--vipros-spacing-sm);
455
+ z-index: 1;
456
+ }
457
+
458
+ .vipros-with-cashback {
459
+ gap: var(--vipros-spacing-xs);
460
+ }
461
+
462
+ .vipros-cashback-amount,
463
+ .vipros-vipoints-amount {
464
+ text-align: center;
465
+ }
466
+
467
+ .vipros-cashback-amount .vipros-value,
468
+ .vipros-vipoints-amount .vipros-value {
469
+ display: block;
470
+ font-size: var(--vipros-font-size-lg);
471
+ font-weight: 700;
472
+ line-height: 1;
473
+ }
474
+
475
+ .vipros-cashback-label,
476
+ .vipros-vipoints-label {
477
+ font-size: var(--vipros-font-size-xs);
478
+ opacity: 0.9;
479
+ text-transform: uppercase;
480
+ letter-spacing: 0.5px;
481
+ }
482
+
483
+ .vipros-plus {
484
+ font-size: var(--vipros-font-size-sm);
485
+ font-weight: 700;
486
+ opacity: 0.8;
487
+ }
488
+
489
+ .vipros-badge-logo {
490
+ margin-left: var(--vipros-spacing-sm);
491
+ opacity: 0.8;
492
+ }
493
+
494
+ .vipros-badge-link {
495
+ position: absolute;
496
+ top: 0;
497
+ left: 0;
498
+ right: 0;
499
+ bottom: 0;
500
+ z-index: 2;
501
+ }
502
+
503
+ /* Brand Logo Styles */
504
+ .vipros-brand-logo {
505
+ display: inline-flex;
506
+ align-items: center;
507
+ background: var(--vipros-light);
508
+ border: 1px solid #e9ecef;
509
+ border-radius: var(--vipros-border-radius-sm);
510
+ padding: var(--vipros-spacing-sm);
511
+ position: relative;
512
+ overflow: hidden;
513
+ transition: var(--vipros-transition);
514
+ }
515
+
516
+ .vipros-brand-logo:hover {
517
+ box-shadow: var(--vipros-shadow);
518
+ }
519
+
520
+ .vipros-brand-container {
521
+ display: flex;
522
+ align-items: center;
523
+ gap: var(--vipros-spacing);
524
+ }
525
+
526
+ .vipros-partner-brand {
527
+ display: flex;
528
+ align-items: center;
529
+ gap: var(--vipros-spacing-sm);
530
+ }
531
+
532
+ .vipros-partner-logo {
533
+ width: 32px;
534
+ height: 32px;
535
+ -o-object-fit: contain;
536
+ object-fit: contain;
537
+ }
538
+
539
+ .vipros-partner-name {
540
+ font-weight: 600;
541
+ color: var(--vipros-dark);
542
+ }
543
+
544
+ .vipros-generosity-indicator {
545
+ background: var(--vipros-success);
546
+ color: white;
547
+ padding: var(--vipros-spacing-xs);
548
+ border-radius: var(--vipros-border-radius-sm);
549
+ font-size: var(--vipros-font-size-xs);
550
+ font-weight: 700;
551
+ }
552
+
553
+ .vipros-partnership {
554
+ display: flex;
555
+ align-items: center;
556
+ gap: var(--vipros-spacing-xs);
557
+ opacity: 0.7;
558
+ }
559
+
560
+ .vipros-partnership-text {
561
+ font-size: var(--vipros-font-size-xs);
562
+ color: var(--vipros-secondary);
563
+ }
564
+
565
+ .vipros-logo-small {
566
+ display: flex;
567
+ align-items: center;
568
+ gap: var(--vipros-spacing-xs);
569
+ color: var(--vipros-primary);
570
+ font-size: var(--vipros-font-size-xs);
571
+ font-weight: 600;
572
+ }
573
+
574
+ .vipros-brand-link {
575
+ position: absolute;
576
+ top: 0;
577
+ left: 0;
578
+ right: 0;
579
+ bottom: 0;
580
+ z-index: 1;
581
+ }
582
+
583
+ /* Error Styles */
584
+ .vipros-error {
585
+ background: var(--vipros-danger);
586
+ color: white;
587
+ padding: var(--vipros-spacing-sm);
588
+ border-radius: var(--vipros-border-radius-sm);
589
+ font-size: var(--vipros-font-size-xs);
590
+ }
591
+
592
+ .vipros-error-message {
593
+ margin: 0;
594
+ }
595
+
596
+ /* Responsive Design - Nouveau Design */
597
+ @media (max-width: 768px) {
598
+ .vipros-offer-main {
599
+ flex-direction: column;
600
+ padding: var(--vipros-spacing);
601
+ gap: var(--vipros-spacing);
602
+ }
603
+
604
+ .vipros-offer-image {
605
+ width: 100%;
606
+ height: 200px;
607
+ }
608
+
609
+ .vipros-amount {
610
+ font-size: 1.75rem;
611
+ }
612
+
613
+ .vipros-offer-footer {
614
+ padding: var(--vipros-spacing);
615
+ }
616
+ }
617
+
618
+ @media (max-width: 480px) {
619
+ .vipros-offer-card {
620
+ margin: var(--vipros-spacing-sm) 0;
621
+ padding: var(--vipros-spacing-sm);
622
+ }
623
+
624
+ .vipros-product-name {
625
+ font-size: var(--vipros-font-size-sm);
626
+ }
627
+
628
+ .vipros-cashback-badge {
629
+ font-size: var(--vipros-font-size-xs);
630
+ }
631
+ }
632
+
633
+ /* Accessibility */
634
+ @media (prefers-reduced-motion: reduce) {
635
+ .vipros-offer,
636
+ .vipros-offer * {
637
+ transition: none !important;
638
+ animation: none !important;
639
+ }
640
+ }
641
+
642
+ @media (prefers-color-scheme: dark) {
643
+ .vipros-offer-card {
644
+ background: #2d3748;
645
+ border-color: #4a5568;
646
+ color: #e2e8f0;
647
+ }
648
+
649
+ .vipros-product-name {
650
+ color: #e2e8f0;
651
+ }
652
+
653
+ .vipros-offer-header {
654
+ border-color: #4a5568;
655
+ }
656
+
657
+ .vipros-offer-footer {
658
+ border-color: #4a5568;
659
+ }
660
+ }
661
+
662
+ /* Print Styles */
663
+ @media print {
664
+ .vipros-offer {
665
+ -moz-column-break-inside: avoid;
666
+ break-inside: avoid;
667
+ color: black !important;
668
+ background: white !important;
669
+ }
670
+
671
+ .vipros-cta-button,
672
+ .vipros-badge-link,
673
+ .vipros-brand-link {
674
+ display: none;
675
+ }
676
+ }