dsp-semactic 0.5.2 → 0.5.4

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/package.json CHANGED
@@ -1,19 +1,21 @@
1
1
  {
2
2
  "name": "dsp-semactic",
3
3
  "private": false,
4
- "version": "0.5.2",
4
+ "version": "0.5.4",
5
5
  "type": "module",
6
- "main": "dist/vue-design-system.umd.js",
7
- "module": "dist/vue-design-system.es.js",
6
+ "main": "dist/index.cjs.js",
7
+ "module": "dist/index.es.js",
8
+ "style": "dist/style.css",
8
9
  "exports": {
9
10
  ".": {
10
- "import": "./dist/vue-design-system.es.js",
11
- "require": "./dist/vue-design-system.umd.js"
12
- }
11
+ "import": "./dist/index.es.js",
12
+ "require": "./dist/index.cjs.js",
13
+ "style": "./dist/style.css"
14
+ },
15
+ "./style.css": "./dist/style.css"
13
16
  },
14
17
  "files": [
15
- "dist",
16
- "src/styles/"
18
+ "dist"
17
19
  ],
18
20
  "scripts": {
19
21
  "dev": "vite",
@@ -1,1058 +0,0 @@
1
- .dss-custom-chart-container {
2
- position: relative;
3
- font-family: Arial, sans-serif;
4
- background: white;
5
- border-radius: 8px;
6
- overflow: visible;
7
- margin: .5rem;
8
- }
9
-
10
- .dss-chart-header{
11
- display: flex;
12
- justify-content: space-between;
13
- align-items: center;
14
- }
15
-
16
- .dss-chart-title {
17
- text-align: left;
18
- font-size: 18px;
19
- font-weight: bold;
20
- color: #333;
21
- margin: 15px 0 5px 0;
22
- padding: 1rem 0 0 1.5rem;
23
- }
24
-
25
- .dss-chart-subtitle {
26
- text-align: left;
27
- font-size: 14px;
28
- color: #666;
29
- margin-bottom: 10px;
30
- padding-left: 1.5rem;
31
- }
32
-
33
- .dss-chart-svg {
34
- display: block;
35
- width: 100%;
36
- height: 80%;
37
- position: relative;
38
- }
39
-
40
- .dss-chart-svg.has-watermark {
41
- background-image: var(--watermark-url);
42
- background-repeat: no-repeat;
43
- background-position: center;
44
- background-size: var(--watermark-size, 30%);
45
- background-blend-mode: multiply;
46
- }
47
-
48
- .dss-chart-svg.has-watermark::before {
49
- content: '';
50
- position: absolute;
51
- top: 0;
52
- left: 0;
53
- right: 0;
54
- bottom: 0;
55
- background-image: var(--watermark-url);
56
- background-repeat: no-repeat;
57
- background-position: center;
58
- background-size: var(--watermark-size, 30%);
59
- opacity: var(--watermark-opacity, 0.05);
60
- pointer-events: none;
61
- z-index: 1;
62
- }
63
-
64
- .dss-chart-legend {
65
- display: flex;
66
- justify-content: flex-end;
67
- flex-wrap: wrap;
68
- gap: .5rem;
69
- padding-right: 1rem;
70
- max-width: 50%;
71
- margin-top: 1rem;
72
- }
73
-
74
- .dss-legend-item {
75
- display: flex;
76
- align-items: center;
77
- gap: .3rem;
78
- cursor: pointer;
79
- transition: all 0.3s ease;
80
- padding: 4px 8px;
81
- border-radius: 4px;
82
- }
83
-
84
- .dss-legend-item.dss-legend-dimmed {
85
- opacity: 0.5;
86
- transform: none;
87
- }
88
-
89
- .dss-legend-color {
90
- width: 12px;
91
- height: 12px;
92
- border-radius: 50%;
93
- transition: transform 0.3s ease;
94
- }
95
-
96
- .dss-legend-item.dss-legend-hovered .dss-legend-color {
97
- transform: scale(1.2);
98
- }
99
-
100
- .dss-legend-text {
101
- font-size: 14px;
102
- transition: font-weight 0.3s ease;
103
- }
104
-
105
- .dss-legend-item.dss-legend-hovered .dss-legend-text {
106
- font-weight: 600;
107
- }
108
-
109
- .dss-legend-item.dss-legend-hidden {
110
- opacity: 0.5 !important;
111
- text-decoration: line-through !important;
112
- filter: none !important;
113
- transform: none !important;
114
- display: flex !important;
115
- visibility: visible !important;
116
- }
117
-
118
-
119
- .dss-chart-tooltip {
120
- position: absolute;
121
- background: rgba(0, 0, 0, 0.8);
122
- color: white;
123
- padding: 8px 12px;
124
- border-radius: 4px;
125
- font-size: 12px;
126
- pointer-events: none;
127
- z-index: 9999;
128
- min-width: 120px;
129
- max-width: 200px;
130
- word-wrap: break-word;
131
- white-space: nowrap;
132
- }
133
-
134
- .dss-chart-tooltip.dss-crosshair-tooltip {
135
- background: rgba(0, 0, 0, 0.9);
136
- padding: 10px 14px;
137
- min-width: 150px;
138
- max-width: 250px;
139
- white-space: normal;
140
- }
141
-
142
- .dss-tooltip-title {
143
- font-weight: bold;
144
- margin-bottom: 6px;
145
- border-bottom: 1px solid rgba(255, 255, 255, 0.2);
146
- padding-bottom: 4px;
147
- }
148
-
149
- .dss-tooltip-value {
150
- font-size: 11px;
151
- opacity: 0.9;
152
- }
153
-
154
- .dss-tooltip-series {
155
- display: flex;
156
- align-items: center;
157
- gap: 6px;
158
- margin: 4px 0;
159
- font-size: 11px;
160
- }
161
-
162
- .dss-tooltip-series-indicator {
163
- width: 8px;
164
- height: 8px;
165
- border-radius: 50%;
166
- flex-shrink: 0;
167
- }
168
-
169
- .dss-tooltip-series-name {
170
- color: rgba(255, 255, 255, 0.8);
171
- flex-shrink: 0;
172
- }
173
-
174
- .dss-tooltip-series-value {
175
- font-weight: bold;
176
- margin-left: auto;
177
- }
178
-
179
- .dss-crosshair {
180
- pointer-events: none;
181
- }
182
-
183
- .dss-crosshair line,
184
- .dss-crosshair circle {
185
- transition: opacity 0.1s ease;
186
- }
187
-
188
- .dss-zoom-indicator {
189
- position: absolute;
190
- top: 20%;
191
- right: 10px;
192
- background: rgba(0, 0, 0, 0.8);
193
- color: white;
194
- padding: 8px 12px;
195
- border-radius: 4px;
196
- font-size: 12px;
197
- cursor: pointer;
198
- user-select: none;
199
- transition: background-color 0.2s ease;
200
- z-index: 1000;
201
- }
202
-
203
- .dss-zoom-indicator:hover {
204
- background: rgba(0, 0, 0, 0.9);
205
- }
206
-
207
- .dss-chart-svg:hover .dss-chart-data path {
208
- transition: opacity 0.2s ease;
209
- }
210
-
211
- .dss-spider-chart .dss-spider-data polygon {
212
- cursor: pointer;
213
- transition: fill-opacity 0.2s ease;
214
- }
215
-
216
- .dss-spider-chart .dss-spider-data polygon:hover {
217
- fill-opacity: 0.3 !important;
218
- }
219
-
220
- .dss-spider-chart .dss-spider-data circle {
221
- cursor: pointer;
222
- transition: r 0.2s ease;
223
- }
224
-
225
- .dss-spider-chart .dss-spider-data circle:hover {
226
- r: 6;
227
- }
228
-
229
- .dss-spider-labels text {
230
- user-select: none;
231
- font-weight: 500;
232
- }
233
-
234
- .dss-spider-grid {
235
- pointer-events: none;
236
- }
237
-
238
- .dss-chart-logos image {
239
- border-radius: 50%;
240
- object-fit: cover;
241
- }
242
-
243
- /* Hidden Series Styles */
244
- .dss-series-hidden {
245
- opacity: 0 !important;
246
- pointer-events: none !important;
247
- filter: none !important;
248
- transform: none !important;
249
- stroke-width: inherit !important;
250
- fill-opacity: 0 !important;
251
- }
252
-
253
- .dss-chart-data .dss-series-hidden,
254
- .dss-chart-data .dss-point-hidden,
255
- .dss-chart-data .dss-bar-hidden,
256
- .dss-radial-data .dss-series-hidden,
257
- .dss-spider-data .dss-series-hidden,
258
- .dss-spider-data .dss-point-hidden {
259
- opacity: 0 !important;
260
- pointer-events: none !important;
261
- visibility: hidden !important;
262
- }
263
-
264
- .dss-point-hidden {
265
- opacity: 0 !important;
266
- pointer-events: none;
267
- }
268
-
269
- .dss-bar-hidden {
270
- opacity: 0 !important;
271
- pointer-events: none;
272
- }
273
-
274
- /* Hover Effect Styles */
275
- .dss-series-highlighted {
276
- filter: brightness(1.1);
277
- opacity: 1 !important;
278
- transform: scaleZ(1.1);
279
- }
280
-
281
- .dss-series-dimmed {
282
- opacity: 0.3;
283
- transition: opacity 0.3s ease;
284
- }
285
-
286
- .dss-point-dimmed {
287
- opacity: 0.4;
288
- transition: opacity 0.3s ease;
289
- }
290
-
291
- .dss-bar-highlighted {
292
- filter: brightness(1.1);
293
- transform-origin: center bottom;
294
- }
295
-
296
- .dss-bar-dimmed {
297
- opacity: 0.4;
298
- transition: opacity 0.3s ease;
299
- }
300
-
301
- /* Chart Animation Styles */
302
- .dss-custom-chart-container.dss-chart-animated {
303
- --dss-animation-duration: 1500ms;
304
- --dss-animation-easing: ease-out;
305
- --dss-stagger-delay: 200ms;
306
- --dss-animation-progress: 0;
307
- }
308
-
309
- .dss-animate-draw .dss-chart-data path[stroke] {
310
- stroke-dasharray: var(--dss-path-length, 1000);
311
- stroke-dashoffset: var(--dss-path-length, 1000);
312
- animation: drawPath var(--dss-animation-duration) var(--dss-animation-easing) forwards;
313
- }
314
-
315
- @keyframes drawPath {
316
- to {
317
- stroke-dashoffset: 0;
318
- }
319
- }
320
-
321
- .dss-animate-draw .dss-chart-data path[stroke]:nth-child(1) { animation-delay: 0ms; }
322
- .dss-animate-draw .dss-chart-data path[stroke]:nth-child(2) { animation-delay: var(--dss-stagger-delay); }
323
- .dss-animate-draw .dss-chart-data path[stroke]:nth-child(3) { animation-delay: calc(var(--dss-stagger-delay) * 2); }
324
- .dss-animate-draw .dss-chart-data path[stroke]:nth-child(4) { animation-delay: calc(var(--dss-stagger-delay) * 3); }
325
- .dss-animate-draw .dss-chart-data path[stroke]:nth-child(5) { animation-delay: calc(var(--dss-stagger-delay) * 4); }
326
-
327
- .dss-animate-fade .dss-chart-data > g > * {
328
- opacity: 0;
329
- animation: fadeIn var(--dss-animation-duration) var(--dss-animation-easing) forwards;
330
- }
331
-
332
- @keyframes fadeIn {
333
- to {
334
- opacity: 1;
335
- }
336
- }
337
-
338
- .dss-animate-draw .dss-area-line-animated {
339
- stroke-dasharray: var(--dss-path-length, 1000);
340
- stroke-dashoffset: var(--dss-path-length, 1000);
341
- animation: drawPath calc(var(--dss-animation-duration) * 0.8) var(--dss-animation-easing) forwards;
342
- }
343
-
344
- .dss-animate-draw .dss-area-mask-rect {
345
- transform: translateX(calc(-1 * var(--dss-mask-width)));
346
- animation: smoothFillRight calc(var(--dss-animation-duration) * 1.2) cubic-bezier(0.4, 0.0, 0.2, 1) forwards;
347
- }
348
-
349
- @keyframes smoothFillRight {
350
- 0% {
351
- transform: translateX(calc(-1 * var(--dss-mask-width)));
352
- }
353
- 100% {
354
- transform: translateX(0);
355
- }
356
- }
357
-
358
- .dss-area-fill-smooth {
359
- transition: all 0.3s cubic-bezier(0.4, 0.0, 0.2, 1);
360
- }
361
-
362
- .dss-area-mask-rect {
363
- will-change: transform;
364
- backface-visibility: hidden;
365
- transform-origin: left center;
366
- }
367
-
368
- .dss-animate-fade .dss-chart-data path:nth-child(1) { animation-delay: 0ms; }
369
- .dss-animate-fade .dss-chart-data path:nth-child(2) { animation-delay: var(--dss-stagger-delay); }
370
- .dss-animate-fade .dss-chart-data path:nth-child(3) { animation-delay: calc(var(--dss-stagger-delay) * 2); }
371
-
372
- .dss-animate-fade .dss-chart-data circle {
373
- animation-delay: calc(var(--dss-animation-duration) * 0.6);
374
- }
375
-
376
- .dss-animate-fade .dss-chart-data rect {
377
- animation-delay: calc(var(--dss-stagger-delay) * 0.5);
378
- }
379
-
380
- .dss-animate-scale .dss-chart-data > g > * {
381
- transform-origin: center;
382
- transform: scale(0);
383
- animation: scaleUp var(--dss-animation-duration) var(--dss-animation-easing) forwards;
384
- }
385
-
386
- @keyframes scaleUp {
387
- to {
388
- transform: scale(1);
389
- }
390
- }
391
-
392
- .dss-animate-scale .dss-chart-data rect {
393
- transform-origin: center bottom;
394
- transform: scaleY(0);
395
- animation: scaleUpY var(--dss-animation-duration) var(--dss-animation-easing) forwards;
396
- }
397
-
398
- .dss-animate-scale .dss-chart-data rect {
399
- transform-box: fill-box;
400
- transform-origin: 50% 100%;
401
- }
402
-
403
- .dss-animate-scale .dss-chart-data rect,
404
- .dss-animate-scale .dss-chart-data path[d*="M"] {
405
- transform-box: fill-box;
406
- transform-origin: center bottom;
407
- transform: scaleY(0);
408
- animation: scaleUpBarFromAxis var(--dss-animation-duration) var(--dss-animation-easing) forwards;
409
- }
410
-
411
- @keyframes scaleUpBarFromAxis {
412
- from {
413
- transform: scaleY(0);
414
- }
415
- to {
416
- transform: scaleY(1);
417
- }
418
- }
419
-
420
- .dss-chart-data rect,
421
- .dss-chart-data path[d*="M"] {
422
- transition: opacity 0.2s ease, filter 0.2s ease;
423
- }
424
-
425
- .dss-chart-data rect:hover,
426
- .dss-chart-data path[d*="M"]:hover {
427
- opacity: 0.8;
428
- filter: brightness(1.05) drop-shadow(0 2px 6px rgba(0,0,0,0.15));
429
- }
430
-
431
- @keyframes scaleUpY {
432
- to {
433
- transform: scaleY(1);
434
- }
435
- }
436
-
437
- .dss-animate-scale .dss-chart-data rect:nth-child(1) { animation-delay: 0ms; }
438
- .dss-animate-scale .dss-chart-data rect:nth-child(2) { animation-delay: calc(var(--dss-stagger-delay) * 0.3); }
439
- .dss-animate-scale .dss-chart-data rect:nth-child(3) { animation-delay: calc(var(--dss-stagger-delay) * 0.6); }
440
- .dss-animate-scale .dss-chart-data rect:nth-child(4) { animation-delay: calc(var(--dss-stagger-delay) * 0.9); }
441
- .dss-animate-scale .dss-chart-data rect:nth-child(5) { animation-delay: calc(var(--dss-stagger-delay) * 1.2); }
442
-
443
- .dss-animate-draw .dss-radial-data path {
444
- stroke-dasharray: 1000;
445
- stroke-dashoffset: 1000;
446
- animation: drawPath calc(var(--dss-animation-duration) * 0.8) var(--dss-animation-easing) forwards;
447
- }
448
-
449
- .dss-animate-scale .dss-radial-data path {
450
- transform-origin: center;
451
- transform: scale(0);
452
- animation: scaleRotate var(--dss-animation-duration) var(--dss-animation-easing) forwards;
453
- }
454
-
455
- @keyframes scaleRotate {
456
- 0% {
457
- transform: scale(0) rotate(-90deg);
458
- }
459
- 100% {
460
- transform: scale(1) rotate(0deg);
461
- }
462
- }
463
-
464
- .dss-animate-fade .dss-spider-data polygon {
465
- opacity: 0;
466
- animation: fadeIn var(--dss-animation-duration) var(--dss-animation-easing) forwards;
467
- }
468
-
469
- .dss-animate-scale .dss-spider-data polygon {
470
- transform-origin: center;
471
- transform: scale(0);
472
- animation: scaleUp calc(var(--dss-animation-duration) * 1.2) var(--dss-animation-easing) forwards;
473
- }
474
-
475
- .dss-animate-draw .dss-spider-data polygon {
476
- stroke-dasharray: 2000;
477
- stroke-dashoffset: 2000;
478
- animation: drawPath calc(var(--dss-animation-duration) * 1.5) var(--dss-animation-easing) forwards;
479
- }
480
-
481
- .dss-animate-fade .dss-axes line,
482
- .dss-animate-fade .dss-grid-lines line {
483
- opacity: 0;
484
- animation: fadeIn calc(var(--dss-animation-duration) * 0.6) var(--dss-animation-easing) forwards;
485
- animation-delay: calc(var(--dss-animation-duration) * 0.1);
486
- }
487
-
488
- @keyframes scaleUpX {
489
- to {
490
- transform: scaleX(1);
491
- }
492
- }
493
-
494
- .dss-animate-fade .dss-axis-labels text {
495
- opacity: 0;
496
- animation: fadeIn calc(var(--dss-animation-duration) * 0.4) var(--dss-animation-easing) forwards;
497
- animation-delay: calc(var(--dss-animation-duration) * 0.7);
498
- }
499
-
500
- .dss-animate-fade .dss-chart-logos circle,
501
- .dss-animate-fade .dss-chart-logos image {
502
- opacity: 0;
503
- animation: fadeIn calc(var(--dss-animation-duration) * 0.6) var(--dss-animation-easing) forwards;
504
- animation-delay: calc(var(--dss-animation-duration) * 0.8);
505
- }
506
-
507
- .dss-chart-data circle {
508
- transition: r 0.2s ease, opacity 0.2s ease, filter 0.2s ease;
509
- }
510
-
511
- .dss-chart-data circle:hover {
512
- r: 6px;
513
- filter: brightness(1.1) drop-shadow(0 2px 4px rgba(0,0,0,0.2));
514
- }
515
-
516
- .dss-chart-data rect {
517
- transition: opacity 0.2s ease, filter 0.2s ease;
518
- }
519
-
520
- .dss-chart-data rect:hover {
521
- opacity: 0.8;
522
- filter: brightness(1.05) drop-shadow(0 2px 6px rgba(0,0,0,0.15));
523
- }
524
-
525
- .dss-chart-data path {
526
- transition: stroke-width 0.2s ease, opacity 0.2s ease, filter 0.2s ease;
527
- }
528
-
529
- @media (prefers-reduced-motion: reduce) {
530
- .dss-chart-animated * {
531
- animation-duration: 0.01ms !important;
532
- animation-delay: 0ms !important;
533
- transition-duration: 0.01ms !important;
534
- }
535
- }
536
-
537
- .dss-chart-animated {
538
- will-change: transform, opacity;
539
- }
540
-
541
- .dss-chart-animated .dss-chart-data {
542
- transform: translateZ(0);
543
- backface-visibility: hidden;
544
- perspective: 1000px;
545
- }
546
-
547
- .dss-is-animating {
548
- pointer-events: none;
549
- }
550
-
551
- .dss-animation-complete {
552
- pointer-events: auto;
553
- }
554
-
555
- .dss-animate-fade .dss-chart-title {
556
- opacity: 0;
557
- animation: fadeIn calc(var(--dss-animation-duration) * 0.4) var(--dss-animation-easing) forwards;
558
- animation-delay: 0ms;
559
- }
560
-
561
- .dss-animate-fade .dss-chart-subtitle {
562
- opacity: 0;
563
- animation: fadeIn calc(var(--dss-animation-duration) * 0.4) var(--dss-animation-easing) forwards;
564
- animation-delay: calc(var(--dss-animation-duration) * 0.1);
565
- }
566
-
567
- .dss-custom-chart-container {
568
- user-select: none;
569
- -webkit-user-select: none;
570
- -moz-user-select: none;
571
- -ms-user-select: none;
572
- }
573
-
574
- .dss-custom-chart-container[style*="cursor: grab"] {
575
- cursor: grab !important;
576
- }
577
-
578
- .dss-custom-chart-container[style*="cursor: grabbing"] {
579
- cursor: grabbing !important;
580
- }
581
-
582
- .dss-custom-chart-container[style*="cursor: grabbing"] * {
583
- pointer-events: none;
584
- }
585
-
586
- .dss-chart-svg {
587
- transition: none;
588
- }
589
-
590
- .dss-chart-data {
591
- transition: transform 0.1s ease-out;
592
- }
593
-
594
- .dss-animate-fill .dss-radial-data path {
595
- animation: none;
596
- }
597
-
598
- .dss-animate-fill .dss-radial-data {
599
- clip-path: polygon(50% 50%, 50% 0%, 50% 0%, 50% 0%, 50% 0%, 50% 0%, 50% 0%, 50% 0%, 50% 50%);
600
- animation: radialFillSweep var(--dss-animation-duration) var(--dss-animation-easing) forwards;
601
- }
602
-
603
- @keyframes radialFillSweep {
604
- 0% {clip-path: polygon(50% 50%, 50% 0%, 50% 0%, 50% 50%);}
605
- 5% {clip-path: polygon(50% 50%, 50% 0%, 70% 0%, 50% 50%);}
606
- 10% {clip-path: polygon(50% 50%, 50% 0%, 90% 0%, 50% 50%);}
607
- 15% {clip-path: polygon(50% 50%, 50% 0%, 100% 0%, 50% 50%);}
608
- 20% {clip-path: polygon(50% 50%, 50% 0%, 100% 0%, 100% 30%, 50% 50%);}
609
- 25% {clip-path: polygon(50% 50%, 50% 0%, 100% 0%, 100% 50%, 50% 50%);}
610
- 30% {clip-path: polygon(50% 50%, 50% 0%, 100% 0%, 100% 70%, 50% 50%);}
611
- 35% {clip-path: polygon(50% 50%, 50% 0%, 100% 0%, 100% 90%, 50% 50%);}
612
- 40% {clip-path: polygon(50% 50%, 50% 0%, 100% 0%, 100% 100%, 50% 50%);}
613
- 45% {clip-path: polygon(50% 50%, 50% 0%, 100% 0%, 100% 100%, 70% 100%, 50% 50%);}
614
- 50% {clip-path: polygon(50% 50%, 50% 0%, 100% 0%, 100% 100%, 50% 100%, 50% 50%);}
615
- 55% {clip-path: polygon(50% 50%, 50% 0%, 100% 0%, 100% 100%, 30% 100%, 50% 50%);}
616
- 60% {clip-path: polygon(50% 50%, 50% 0%, 100% 0%, 100% 100%, 10% 100%, 50% 50%);}
617
- 65% {clip-path: polygon(50% 50%, 50% 0%, 100% 0%, 100% 100%, 0% 100%, 50% 50%);}
618
- 70% {clip-path: polygon(50% 50%, 50% 0%, 100% 0%, 100% 100%, 0% 100%, 0% 70%, 50% 50%);}
619
- 75% {clip-path: polygon(50% 50%, 50% 0%, 100% 0%, 100% 100%, 0% 100%, 0% 50%, 50% 50%);}
620
- 80% {clip-path: polygon(50% 50%, 50% 0%, 100% 0%, 100% 100%, 0% 100%, 0% 30%, 50% 50%);}
621
- 85% {clip-path: polygon(50% 50%, 50% 0%, 100% 0%, 100% 100%, 0% 100%, 0% 10%, 50% 50%);}
622
- 90% {clip-path: polygon(50% 50%, 50% 0%, 100% 0%, 100% 100%, 0% 100%, 0% 0%, 50% 50%);}
623
- 95% {clip-path: polygon(50% 50%, 50% 0%, 100% 0%, 100% 100%, 0% 100%, 0% 0%, 30% 0%, 50% 50%);}
624
- 100% {clip-path: polygon(50% 50%, 50% 0%, 100% 0%, 100% 100%, 0% 100%, 0% 0%, 50% 0%, 50% 50%);}
625
- }
626
-
627
- /* Context Menu Styles */
628
- .dss-chart-context-menu {
629
- position: fixed;
630
- background: white;
631
- border: 1px solid #ddd;
632
- border-radius: 8px;
633
- z-index: 10000;
634
- min-width: 180px;
635
- overflow: hidden;
636
- animation: contextMenuFadeIn 0.15s ease-out;
637
- padding: 4px;
638
- font-family: Arial, sans-serif;
639
- }
640
-
641
- @keyframes contextMenuFadeIn {
642
- from {
643
- opacity: 0;
644
- transform: scale(0.95) translateY(-5px);
645
- }
646
- to {
647
- opacity: 1;
648
- transform: scale(1) translateY(0);
649
- }
650
- }
651
-
652
- .dss-context-menu-item {
653
- display: flex;
654
- align-items: center;
655
- gap: 8px;
656
- padding: 10px 14px;
657
- cursor: pointer;
658
- transition: background-color 0.15s ease;
659
- font-size: 14px;
660
- color: #333;
661
- }
662
-
663
- .dss-context-menu-item:hover {
664
- background-color: #f5f5f5;
665
- }
666
-
667
- .dss-context-menu-icon {
668
- font-size: 14px;
669
- width: 16px;
670
- display: flex;
671
- justify-content: center;
672
- }
673
-
674
- .dss-context-menu-separator {
675
- height: 1px;
676
- background-color: #e5e5e5;
677
- margin: 4px 0;
678
- }
679
-
680
- .dss-custom-menu-content {
681
- display: flex;
682
- align-items: center;
683
- gap: 8px;
684
- width: 100%;
685
- }
686
-
687
- .dss-custom-menu-content * {
688
- pointer-events: none;
689
- }
690
-
691
- .dss-context-menu-item.dss-custom-styled {
692
- padding: 0;
693
- }
694
-
695
- .dss-context-menu-item.dss-custom-styled .dss-custom-menu-content {
696
- padding: 8px 12px;
697
- width: 100%;
698
- }
699
-
700
- /* Marker Modal Styles */
701
- .dss-marker-modal-overlay {
702
- position: fixed;
703
- top: 0;
704
- left: 0;
705
- width: 100%;
706
- height: 100%;
707
- background: rgba(0, 0, 0, 0.5);
708
- display: flex;
709
- align-items: center;
710
- justify-content: center;
711
- z-index: 10001;
712
- animation: modalOverlayFadeIn 0.2s ease-out;
713
- font-family: Arial, sans-serif;
714
- }
715
-
716
- @keyframes modalOverlayFadeIn {
717
- from { opacity: 0; }
718
- to { opacity: 1; }
719
- }
720
-
721
- .dss-marker-modal {
722
- background: white;
723
- border-radius: 8px;
724
- width: 90%;
725
- max-width: 450px;
726
- animation: modalSlideIn 0.2s ease-out;
727
- }
728
-
729
- @keyframes modalSlideIn {
730
- from {
731
- opacity: 0;
732
- transform: scale(0.9) translateY(-20px);
733
- }
734
- to {
735
- opacity: 1;
736
- transform: scale(1) translateY(0);
737
- }
738
- }
739
-
740
- .dss-marker-modal-header {
741
- display: flex;
742
- justify-content: space-between;
743
- align-items: center;
744
- padding: 20px 24px 16px;
745
- border-bottom: 1px solid #e5e5e5;
746
- }
747
-
748
- .dss-marker-modal-header h3 {
749
- margin: 0;
750
- font-size: 18px;
751
- font-weight: 600;
752
- color: #333;
753
- }
754
-
755
- .dss-modal-close-dss-btn {
756
- background: none;
757
- border: none;
758
- font-size: 24px;
759
- cursor: pointer;
760
- color: #666;
761
- padding: 0;
762
- width: 24px;
763
- height: 24px;
764
- display: flex;
765
- align-items: center;
766
- justify-content: center;
767
- border-radius: 4px;
768
- }
769
-
770
- .dss-marker-modal-body {
771
- padding: 20px 24px;
772
- }
773
-
774
- .dss-form-group {
775
- margin-bottom: 16px;
776
- }
777
-
778
- .dss-form-group:last-child {
779
- margin-bottom: 0;
780
- }
781
-
782
- .dss-form-group label {
783
- display: block;
784
- margin-bottom: 6px;
785
- font-weight: 500;
786
- color: #333;
787
- font-size: 14px;
788
- }
789
-
790
- .dss-form-input,
791
- .dss-form-textarea {
792
- width: 100%;
793
- padding: 10px 12px;
794
- border: 1px solid #ddd;
795
- border-radius: 4px;
796
- font-size: 14px;
797
- transition: border-color 0.15s ease;
798
- box-sizing: border-box;
799
- }
800
-
801
- .dss-form-input:focus,
802
- .dss-form-textarea:focus {
803
- outline: none;
804
- border-color: hsl(194, 95%, 30%);
805
- }
806
-
807
- .dss-form-textarea {
808
- resize: vertical;
809
- min-height: 60px;
810
- font-family: inherit;
811
- }
812
-
813
- .dss-form-color {
814
- width: 40px;
815
- height: 40px;
816
- border: 1px solid #ddd;
817
- border-radius: 4px;
818
- cursor: pointer;
819
- padding: 0;
820
- }
821
-
822
- .dss-marker-modal-footer {
823
- display: flex;
824
- gap: 12px;
825
- justify-content: space-between;
826
- padding: 16px 24px 20px;
827
- }
828
-
829
- .dss-modal-footer-right{
830
- display: flex;
831
- gap: .6rem;
832
- }
833
-
834
- .dss-btn {
835
- padding: 10px 20px;
836
- border: none;
837
- border-radius: 4px;
838
- font-size: 14px;
839
- font-weight: 500;
840
- cursor: pointer;
841
- transition: all 0.15s ease;
842
- min-width: 80px;
843
- }
844
-
845
- .dss-btn-secondary {
846
- background: #f5f5f5;
847
- color: #333;
848
- }
849
-
850
- .dss-btn-secondary:hover {
851
- background: #e5e5e5;
852
- }
853
-
854
- .dss-btn-primary {
855
- background: hsl(42, 100%, 59%);
856
- color: black;
857
- }
858
-
859
- .dss-btn-primary:hover:not(:disabled) {
860
- background: hsl(42, 100%, 44%);
861
- }
862
-
863
- .dss-btn-primary:disabled {
864
- background: hsl(42, 100%, 59%, 0.5);
865
- cursor: not-allowed;
866
- }
867
-
868
- /* Markers */
869
-
870
- .dss-markers {
871
- position: absolute;
872
- top: 0;
873
- left: 0;
874
- width: 100%;
875
- height: 100%;
876
- pointer-events: none;
877
- z-index: 1000;
878
- }
879
-
880
- .dss-marker {
881
- transition: all 0.2s ease;
882
- }
883
-
884
- .dss-marker:hover {
885
- transform: translate(-50%, -50%) scale(1.2) !important;
886
- z-index: 1001;
887
- }
888
-
889
- .dss-marker-icon{
890
- width: 24px;
891
- height: 24px;
892
- border-radius: 50%;
893
- display: flex;
894
- align-items: center;
895
- justify-content: center;
896
- }
897
-
898
- .dss-btn-danger {
899
- background-color: hsl(345, 94%, 44%);
900
- color: white;
901
- border: 1px solid hsl(345, 94%, 44%);
902
- padding: 8px 16px;
903
- border-radius: 4px;
904
- cursor: pointer;
905
- font-size: 14px;
906
- }
907
-
908
- .dss-btn-danger:hover {
909
- filter: brightness(0.9);
910
- }
911
-
912
- .dss-custom-chart-container {
913
- position: relative;
914
- overflow: hidden;
915
- }
916
-
917
- .dss-chart-watermark {
918
- mix-blend-mode: multiply;
919
- filter: grayscale(50%);
920
- background-color: transparent;
921
- }
922
-
923
- .dss-flag-count-indicator {
924
- cursor: pointer;
925
- transform-origin: center center;
926
- }
927
-
928
- .dss-flag-extension-line {
929
- pointer-events: none;
930
- }
931
-
932
- .dss-flag-line {
933
- cursor: pointer;
934
- transition: all 0.2s ease;
935
- }
936
-
937
- .dss-flag-count-text {
938
- pointer-events: none;
939
- user-select: none;
940
- }
941
-
942
- .dss-flag-type-indicator {
943
- pointer-events: none;
944
- }
945
-
946
- .dss-tooltip-section {
947
- margin-bottom: 8px;
948
- }
949
-
950
- .dss-tooltip-section:last-child {
951
- margin-bottom: 0;
952
- }
953
-
954
- .dss-tooltip-separator {
955
- height: 1px;
956
- background-color: rgba(255, 255, 255, 0.2);
957
- margin: 8px 0;
958
- }
959
-
960
- .dss-tooltip-section-title {
961
- font-size: 11px;
962
- font-weight: 600;
963
- color: rgba(255, 255, 255, 0.8);
964
- text-transform: uppercase;
965
- letter-spacing: 0.5px;
966
- margin-bottom: 4px;
967
- }
968
-
969
- .dss-tooltip-item {
970
- display: flex;
971
- align-items: flex-start;
972
- gap: 6px;
973
- margin-bottom: 4px;
974
- padding: 2px 0;
975
- }
976
-
977
- .dss-tooltip-item:last-child {
978
- margin-bottom: 0;
979
- }
980
-
981
- .dss-tooltip-item-indicator {
982
- width: 8px;
983
- height: 8px;
984
- border-radius: 50%;
985
- flex-shrink: 0;
986
- }
987
-
988
- .dss-tooltip-item-content {
989
- flex: 1;
990
- min-width: 0;
991
- }
992
-
993
- .dss-tooltip-item-type {
994
- font-size: 10px;
995
- color: rgba(255, 255, 255, 0.7);
996
- text-transform: uppercase;
997
- letter-spacing: 0.3px;
998
- }
999
-
1000
- .dss-tooltip-item-title {
1001
- font-size: 12px;
1002
- font-weight: 500;
1003
- color: white;
1004
- line-height: 1.3;
1005
- }
1006
-
1007
- .dss-tooltip-item-text,
1008
- .dss-tooltip-item-description {
1009
- font-size: 11px;
1010
- color: rgba(255, 255, 255, 0.9);
1011
- line-height: 1.3;
1012
- word-wrap: break-word;
1013
- }
1014
-
1015
- .dss-chart-tooltip {
1016
- max-width: 250px;
1017
- min-width: 150px;
1018
- }
1019
-
1020
- .dss-tooltip-group-header {
1021
- font-weight: 600;
1022
- font-size: 10px;
1023
- margin: 10px 0 4px 0;
1024
- text-transform: uppercase;
1025
- letter-spacing: 0.5px;
1026
- display: flex;
1027
- align-items: center;
1028
- gap: 6px;
1029
- }
1030
-
1031
- .dss-tooltip-group-header:first-child {
1032
- margin-top: 6px;
1033
- }
1034
-
1035
- .dss-tooltip-item-no-indicator {
1036
- padding-left: 16px;
1037
- }
1038
-
1039
- .dss-radial-labels .dss-label-highlighted text {
1040
- font-weight: bold;
1041
- fill-opacity: 1;
1042
- }
1043
-
1044
- .dss-radial-labels .dss-label-dimmed text {
1045
- fill-opacity: 0.5;
1046
- }
1047
-
1048
- .dss-radial-labels .dss-label-dimmed line {
1049
- stroke-opacity: 0.3;
1050
- }
1051
-
1052
- .dss-radial-labels text {
1053
- transition: all 0.3s ease;
1054
- }
1055
-
1056
- .dss-radial-labels line {
1057
- transition: all 0.3s ease;
1058
- }