@visns-studio/visns-components 5.8.7 → 5.8.9

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.
@@ -234,6 +234,340 @@
234
234
  margin: 0 0.15em;
235
235
  }
236
236
 
237
+ /* Grid Component Styles */
238
+ .gridContainer {
239
+ width: 100%;
240
+ overflow: auto;
241
+ background-color: var(--tertiary-color, white);
242
+ border-radius: var(--br, 4px);
243
+ box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);
244
+ }
245
+
246
+ // Settings Filters Styles
247
+ .settingsFiltersContainer {
248
+ display: flex;
249
+ flex-direction: column;
250
+ background-color: var(--tertiary-color, white);
251
+ border-radius: var(--br, 4px);
252
+ border: 1px solid rgba(var(--primary-rgb, 0, 123, 255), 0.15);
253
+ margin-bottom: 12px;
254
+ box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);
255
+ overflow: hidden;
256
+ transition: all 0.3s ease;
257
+ }
258
+
259
+ .settingsFiltersHeader {
260
+ display: flex;
261
+ justify-content: space-between;
262
+ align-items: center;
263
+ padding: 8px 12px;
264
+ background-color: rgba(var(--primary-rgb, 0, 123, 255), 0.05);
265
+ border-bottom: 1px solid rgba(var(--primary-rgb, 0, 123, 255), 0.1);
266
+ user-select: none;
267
+
268
+ .headerLeft {
269
+ display: flex;
270
+ align-items: center;
271
+ cursor: pointer;
272
+ }
273
+ }
274
+
275
+ .settingsFiltersTitle {
276
+ font-weight: 600;
277
+ font-size: 0.9rem;
278
+ color: var(--paragraph-color, #212529);
279
+ margin: 0;
280
+ display: flex;
281
+ align-items: center;
282
+
283
+ svg {
284
+ margin-right: 6px;
285
+ color: var(--primary-color, #007bff);
286
+ }
287
+ }
288
+
289
+ .toggleIcon {
290
+ width: 16px;
291
+ height: 16px;
292
+ transition: transform 0.3s ease;
293
+
294
+ &.collapsed {
295
+ transform: rotate(-90deg);
296
+ }
297
+ }
298
+
299
+ .activeFiltersIndicator {
300
+ display: flex;
301
+ align-items: center;
302
+ font-size: 0.8rem;
303
+ color: var(--secondary-color, #6c757d);
304
+ margin-left: 8px;
305
+
306
+ .filterBadge {
307
+ display: inline-flex;
308
+ align-items: center;
309
+ background-color: rgba(var(--primary-rgb, 0, 123, 255), 0.1);
310
+ color: var(--primary-color, #007bff);
311
+ padding: 2px 6px;
312
+ border-radius: 12px;
313
+ margin-left: 4px;
314
+ font-size: 0.75rem;
315
+ }
316
+ }
317
+
318
+ .settingsFiltersContent {
319
+ display: flex;
320
+ flex-wrap: wrap;
321
+ gap: 12px;
322
+ padding: 12px;
323
+ max-height: 1000px;
324
+ opacity: 1;
325
+ transition: max-height 0.3s ease, opacity 0.3s ease, padding 0.3s ease;
326
+ overflow: hidden;
327
+
328
+ &.collapsed {
329
+ max-height: 0;
330
+ opacity: 0;
331
+ padding-top: 0;
332
+ padding-bottom: 0;
333
+ }
334
+
335
+ // Ensure we have exactly 3 items per row
336
+ &:after {
337
+ content: '';
338
+ flex: 0 0 calc(33.333% - 8px);
339
+ max-width: calc(33.333% - 8px);
340
+
341
+ @media (max-width: 992px) {
342
+ flex: 0 0 calc(50% - 8px);
343
+ max-width: calc(50% - 8px);
344
+ }
345
+
346
+ @media (max-width: 576px) {
347
+ flex: 0 0 100%;
348
+ max-width: 100%;
349
+ }
350
+ }
351
+ }
352
+
353
+ .settingsFilterItem {
354
+ display: flex;
355
+ flex-direction: column;
356
+ flex: 0 0 calc(33.333% - 8px);
357
+ max-width: calc(33.333% - 8px);
358
+ transition: all 0.2s ease;
359
+
360
+ @media (max-width: 992px) {
361
+ flex: 0 0 calc(50% - 8px);
362
+ max-width: calc(50% - 8px);
363
+ }
364
+
365
+ @media (max-width: 576px) {
366
+ flex: 0 0 100%;
367
+ max-width: 100%;
368
+ }
369
+ }
370
+
371
+ .settingsFilterLabel {
372
+ font-weight: 600;
373
+ margin-bottom: 4px;
374
+ color: var(--paragraph-color, #212529);
375
+ font-size: 0.85rem;
376
+ display: flex;
377
+ align-items: center;
378
+ }
379
+
380
+ .settingsFilterDropdown,
381
+ .settingsFilterInput {
382
+ padding: 6px 10px;
383
+ border: 1px solid rgba(var(--primary-rgb, 0, 123, 255), 0.2);
384
+ border-radius: 4px;
385
+ font-size: 0.85rem;
386
+ background-color: white;
387
+ transition: all 0.2s ease;
388
+
389
+ &:hover {
390
+ border-color: rgba(var(--primary-rgb, 0, 123, 255), 0.4);
391
+ }
392
+
393
+ &:focus {
394
+ outline: none;
395
+ border-color: var(--primary-color, #007bff);
396
+ box-shadow: 0 0 0 2px rgba(var(--primary-rgb, 0, 123, 255), 0.15);
397
+ }
398
+ }
399
+
400
+ .clearFiltersButton {
401
+ padding: 6px 12px;
402
+ border-radius: 4px;
403
+ font-size: 0.8rem;
404
+ font-weight: 500;
405
+ cursor: pointer;
406
+ transition: all 0.2s ease;
407
+ display: flex;
408
+ align-items: center;
409
+ justify-content: center;
410
+ background-color: transparent;
411
+ color: var(--paragraph-color, #212529);
412
+ border: 1px solid rgba(var(--paragraph-color-rgb, 33, 37, 41), 0.2);
413
+ height: 30px;
414
+
415
+ svg {
416
+ margin-right: 4px;
417
+ width: 12px;
418
+ height: 12px;
419
+ }
420
+
421
+ &:hover {
422
+ background-color: rgba(var(--paragraph-color-rgb, 33, 37, 41), 0.05);
423
+ }
424
+ }
425
+
426
+ .gridTable {
427
+ width: 100%;
428
+ border-collapse: collapse;
429
+ border-spacing: 0;
430
+ font-size: 0.9rem;
431
+ }
432
+
433
+ .gridHeader {
434
+ background-color: var(--primary-color, #007bff);
435
+ color: var(--tertiary-color, white);
436
+ font-weight: 600;
437
+ text-align: left;
438
+ padding: 12px 16px;
439
+ border-bottom: 1px solid rgba(var(--primary-rgb, 0, 123, 255), 0.2);
440
+ }
441
+
442
+ .sortableHeader {
443
+ cursor: pointer;
444
+ user-select: none;
445
+ position: relative;
446
+
447
+ &:hover {
448
+ background-color: rgba(var(--primary-rgb, 0, 123, 255), 0.9);
449
+ }
450
+ }
451
+
452
+ .headerContent {
453
+ display: flex;
454
+ align-items: center;
455
+ justify-content: space-between;
456
+ }
457
+
458
+ .sortIndicator {
459
+ display: inline-block;
460
+ margin-left: 5px;
461
+ font-size: 0.8em;
462
+ }
463
+
464
+ .filterRow {
465
+ background-color: rgba(var(--primary-rgb, 0, 123, 255), 0.05);
466
+ }
467
+
468
+ .filterCell {
469
+ padding: 8px;
470
+ border-bottom: 1px solid rgba(var(--primary-rgb, 0, 123, 255), 0.1);
471
+ }
472
+
473
+ .filterInput {
474
+ width: 100%;
475
+ padding: 6px 8px;
476
+ border: 1px solid rgba(var(--primary-rgb, 0, 123, 255), 0.2);
477
+ border-radius: 4px;
478
+ font-size: 0.85rem;
479
+
480
+ &:focus {
481
+ outline: none;
482
+ border-color: var(--primary-color, #007bff);
483
+ box-shadow: 0 0 0 2px rgba(var(--primary-rgb, 0, 123, 255), 0.25);
484
+ }
485
+
486
+ &::placeholder {
487
+ color: rgba(var(--paragraph-color-rgb, 33, 37, 41), 0.5);
488
+ font-style: italic;
489
+ }
490
+ }
491
+
492
+ .gridRow {
493
+ transition: background-color 0.2s ease;
494
+
495
+ &:nth-child(even) {
496
+ background-color: rgba(var(--primary-rgb, 0, 123, 255), 0.03);
497
+ }
498
+
499
+ &:hover {
500
+ background-color: var(--hover-color, rgb(230, 240, 250));
501
+ cursor: pointer;
502
+ }
503
+ }
504
+
505
+ .gridCell {
506
+ padding: 10px 16px;
507
+ border-bottom: 1px solid rgba(var(--paragraph-color-rgb, 33, 37, 41), 0.1);
508
+ color: var(--paragraph-color, #212529);
509
+ }
510
+
511
+ .clickableCell {
512
+ cursor: pointer;
513
+ transition: background-color 0.2s ease;
514
+
515
+ &:hover {
516
+ background-color: rgba(var(--primary-rgb, 0, 123, 255), 0.05);
517
+ }
518
+ }
519
+
520
+ .placeholderText {
521
+ color: rgba(var(--paragraph-color-rgb, 33, 37, 41), 0.6);
522
+ font-style: italic;
523
+ font-size: 0.9em;
524
+ }
525
+
526
+ .cellWithValue {
527
+ font-weight: 600;
528
+ color: var(--primary-color, #007bff);
529
+ background-color: rgba(var(--primary-rgb, 0, 123, 255), 0.05);
530
+ border-radius: 4px;
531
+ padding: 4px 8px;
532
+ display: inline-block;
533
+ }
534
+
535
+ .noData {
536
+ text-align: center;
537
+ padding: 20px;
538
+ color: var(--secondary-color, #6c757d);
539
+ font-style: italic;
540
+ }
541
+
542
+ .loadingContainer {
543
+ display: flex;
544
+ flex-direction: column;
545
+ align-items: center;
546
+ justify-content: center;
547
+ padding: 40px 20px;
548
+
549
+ p {
550
+ margin-top: 16px;
551
+ color: var(--secondary-color, #6c757d);
552
+ font-size: 0.9rem;
553
+ }
554
+ }
555
+
556
+ .loadingSpinner {
557
+ width: 40px;
558
+ height: 40px;
559
+ border: 3px solid rgba(var(--primary-rgb, 0, 123, 255), 0.2);
560
+ border-radius: 50%;
561
+ border-top-color: var(--primary-color, #007bff);
562
+ animation: spin 1s ease-in-out infinite;
563
+ }
564
+
565
+ @keyframes spin {
566
+ to {
567
+ transform: rotate(360deg);
568
+ }
569
+ }
570
+
237
571
  .crmtitle {
238
572
  min-height: auto;
239
573
  padding: 1rem;