@bagelink/vue 1.2.39 → 1.2.41

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 (45) hide show
  1. package/dist/components/calendar/CalendarPopover.vue.d.ts +179 -0
  2. package/dist/components/calendar/CalendarPopover.vue.d.ts.map +1 -0
  3. package/dist/components/calendar/CalendarTypes.d.ts +15 -0
  4. package/dist/components/calendar/CalendarTypes.d.ts.map +1 -1
  5. package/dist/components/calendar/Index.vue.d.ts +20 -12
  6. package/dist/components/calendar/Index.vue.d.ts.map +1 -1
  7. package/dist/components/calendar/views/AgendaView.vue.d.ts +8 -0
  8. package/dist/components/calendar/views/AgendaView.vue.d.ts.map +1 -1
  9. package/dist/components/calendar/views/CalendarPopover.vue.d.ts +175 -0
  10. package/dist/components/calendar/views/CalendarPopover.vue.d.ts.map +1 -0
  11. package/dist/components/calendar/views/DayView.vue.d.ts +10 -32
  12. package/dist/components/calendar/views/DayView.vue.d.ts.map +1 -1
  13. package/dist/components/calendar/views/MonthView.vue.d.ts +10 -170
  14. package/dist/components/calendar/views/MonthView.vue.d.ts.map +1 -1
  15. package/dist/components/calendar/views/WeekView.vue.d.ts +12 -168
  16. package/dist/components/calendar/views/WeekView.vue.d.ts.map +1 -1
  17. package/dist/components/form/inputs/DateInput.vue.d.ts.map +1 -1
  18. package/dist/components/form/inputs/DatePicker.vue.d.ts.map +1 -1
  19. package/dist/composables/useDevice.d.ts +3 -0
  20. package/dist/composables/useDevice.d.ts.map +1 -1
  21. package/dist/index.cjs +426 -280
  22. package/dist/index.mjs +426 -280
  23. package/dist/style.css +210 -167
  24. package/dist/types/BagelForm.d.ts +14 -11
  25. package/dist/types/BagelForm.d.ts.map +1 -1
  26. package/dist/utils/BagelFormUtils.d.ts +10 -10
  27. package/dist/utils/BagelFormUtils.d.ts.map +1 -1
  28. package/dist/utils/calendar/dateUtils.d.ts +7 -7
  29. package/package.json +1 -1
  30. package/src/components/calendar/CalendarPopover.vue +102 -0
  31. package/src/components/calendar/CalendarTypes.ts +14 -0
  32. package/src/components/calendar/Index.vue +75 -34
  33. package/src/components/calendar/views/AgendaView.vue +26 -2
  34. package/src/components/calendar/views/DayView.vue +83 -104
  35. package/src/components/calendar/views/MonthView.vue +21 -49
  36. package/src/components/calendar/views/WeekView.vue +227 -134
  37. package/src/components/form/inputs/DateInput.vue +3 -1
  38. package/src/components/form/inputs/DatePicker.vue +7 -0
  39. package/src/composables/useDevice.ts +13 -2
  40. package/src/styles/layout.css +14 -0
  41. package/src/styles/mobilLayout.css +12 -0
  42. package/src/types/BagelForm.ts +30 -53
  43. package/src/utils/BagelFormUtils.ts +11 -10
  44. package/src/utils/calendar/dateUtils.ts +22 -22
  45. package/src/components/calendar/utils.ts +0 -70
package/dist/style.css CHANGED
@@ -310,45 +310,67 @@ display: block;
310
310
  border-radius: var(--input-border-radius);
311
311
  }
312
312
 
313
- .agenda-view[data-v-520aee85] {
313
+ .custom-popover[data-v-6f51f6b3] {
314
+ position: fixed;
315
+ z-index: 1000;
316
+ min-width: 250px;
317
+ max-width: 350px;
318
+ background-color: white;
319
+ border-radius: var(--btn-border-radius);
320
+ box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
321
+ animation: fadeIn-6f51f6b3 0.2s ease;
322
+ transform-origin: center left;
323
+ }
324
+ @keyframes fadeIn-6f51f6b3 {
325
+ from {
326
+ opacity: 0;
327
+ transform: scale(0.95);
328
+ }
329
+ to {
330
+ opacity: 1;
331
+ transform: scale(1);
332
+ }
333
+ }
334
+
335
+ .agenda-view[data-v-1e2b483b] {
314
336
  display: flex;
315
337
  flex-direction: column;
316
338
  height: 100%;
317
339
  overflow: hidden;
318
340
  }
319
- .agenda-header[data-v-520aee85] {
341
+ .agenda-header[data-v-1e2b483b] {
320
342
  display: flex;
321
343
  padding: 0.5rem;
322
344
  border-bottom: 1px solid var(--border-color);
323
345
  }
324
- .time-column[data-v-520aee85] {
346
+ .time-column[data-v-1e2b483b] {
325
347
  width: 100px;
326
348
  flex-shrink: 0;
327
349
  }
328
- .event-column[data-v-520aee85] {
350
+ .event-column[data-v-1e2b483b] {
329
351
  flex-grow: 1;
330
352
  }
331
- .agenda-content[data-v-520aee85] {
353
+ .agenda-content[data-v-1e2b483b] {
332
354
  flex-grow: 1;
333
355
  overflow-y: auto;
334
356
  padding: 1rem;
335
357
  }
336
- .event[data-v-520aee85] {
358
+ .event[data-v-1e2b483b] {
337
359
  margin-bottom: 1rem;
338
360
  border-radius: 4px;
339
361
  overflow: hidden;
340
362
  cursor: pointer;
341
363
  transition: all 0.2s ease;
342
364
  }
343
- .event[data-v-520aee85]:hover {
365
+ .event[data-v-1e2b483b]:hover {
344
366
  transform: scale(1.01);
345
367
  }
346
- .event-content[data-v-520aee85] {
368
+ .event-content[data-v-1e2b483b] {
347
369
  display: flex;
348
370
  height: 100%;
349
371
  color: white;
350
372
  }
351
- .event-time[data-v-520aee85] {
373
+ .event-time[data-v-1e2b483b] {
352
374
  width: 100px;
353
375
  flex-shrink: 0;
354
376
  padding: 0.5rem;
@@ -356,145 +378,135 @@ display: block;
356
378
  align-items: center;
357
379
  font-size: 0.9rem;
358
380
  }
359
- .event-details[data-v-520aee85] {
381
+ .event-details[data-v-1e2b483b] {
360
382
  flex-grow: 1;
361
383
  padding: 0.5rem;
362
384
  border-left: 1px solid rgba(255, 255, 255, 0.2);
363
385
  }
364
- .event-title[data-v-520aee85] {
386
+ .event-title[data-v-1e2b483b] {
365
387
  font-size: 1rem;
366
388
  margin-bottom: 0.25rem;
367
389
  }
368
- .event-day[data-v-520aee85] {
390
+ .event-day[data-v-1e2b483b] {
369
391
  font-size: 0.8rem;
370
392
  opacity: 0.8;
371
393
  }
372
- .event-day.today[data-v-520aee85] {
394
+ .event-day.today[data-v-1e2b483b] {
373
395
  color: var(--bgl-primary);
374
396
  opacity: 1;
375
397
  }
376
398
  @media (max-width: 768px) {
377
- .agenda-header[data-v-520aee85] {
399
+ .agenda-header[data-v-1e2b483b] {
378
400
  padding: 0.5rem;
379
401
  }
380
- .time-column[data-v-520aee85] {
402
+ .time-column[data-v-1e2b483b] {
381
403
  width: 80px;
382
404
  }
383
- .event-content[data-v-520aee85] {
405
+ .event-content[data-v-1e2b483b] {
384
406
  font-size: 0.9rem;
385
407
  }
386
- .event-time[data-v-520aee85] {
408
+ .event-time[data-v-1e2b483b] {
387
409
  width: 80px;
388
410
  font-size: 0.8rem;
389
411
  }
390
- .event-title[data-v-520aee85] {
412
+ .event-title[data-v-1e2b483b] {
391
413
  font-size: 0.9rem;
392
414
  }
393
- .event-day[data-v-520aee85] {
415
+ .event-day[data-v-1e2b483b] {
394
416
  font-size: 0.7rem;
395
417
  }
396
418
  }
397
419
 
398
- .dayGrid[data-v-bc647d79]{
420
+ .dayGrid[data-v-8b1a770f] {
399
421
  display: grid;
400
422
  grid-template-columns: 5rem 1fr;
401
423
  }
402
- .time-column[data-v-bc647d79] {
403
- width: 80px;
404
- flex-shrink: 0;
424
+ .time-column[data-v-8b1a770f] {
425
+ width: 80px;
426
+ flex-shrink: 0;
405
427
  }
406
- .events-column[data-v-bc647d79] {
407
- flex-grow: 1;
408
- position: relative;
409
- border-inline-start: 1px solid var(--border-color);
428
+ .events-column[data-v-8b1a770f] {
429
+ flex-grow: 1;
430
+ position: relative;
431
+ border-inline-start: 1px solid var(--border-color);
432
+ min-height: 100%; /* Ensure the column fills the full height */
410
433
  }
411
- .date-header[data-v-bc647d79] {
412
- padding: 0.5rem;
413
- text-align: center;
434
+ .date-header[data-v-8b1a770f] {
435
+ padding: 0.5rem;
436
+ text-align: center;
414
437
  }
415
- .day-header .events-column[data-v-bc647d79] {
416
- border-inline-start: 1px solid transparent;
438
+ .day-header .events-column[data-v-8b1a770f] {
439
+ border-inline-start: 1px solid transparent;
417
440
  }
418
- .time-slot[data-v-bc647d79] {
419
- height: 30px;
420
- display: flex;
421
- align-items: center;
422
- justify-content: center;
441
+ .time-slot[data-v-8b1a770f] {
442
+ height: 60px; /* Match this with the slotHeight variable */
443
+ display: flex;
444
+ align-items: flex-start; /* Align to top to match events */
445
+ justify-content: center;
446
+ padding: 0.5rem 0;
447
+ box-sizing: border-box;
423
448
  }
424
- .time-slots[data-v-bc647d79] {
425
- flex-grow: 1;
426
- display: flex;
427
- overflow: auto;
428
- position: relative;
449
+ .time-slots[data-v-8b1a770f] {
450
+ flex-grow: 1;
451
+ display: flex;
452
+ overflow: auto;
453
+ position: relative;
429
454
  }
430
- .event[data-v-bc647d79] {
431
- left: 10px;
432
- right: 10px;
455
+ .event[data-v-8b1a770f] {
456
+ left: 10px;
457
+ right: 10px;
458
+ box-sizing: border-box;
433
459
  }
434
- .event[data-v-bc647d79]:hover {
435
- z-index: 2;
436
- transform: scale(1.02);
460
+ .event[data-v-8b1a770f]:hover {
461
+ z-index: 2;
462
+ transform: scale(1.02);
437
463
  }
438
- .event-content[data-v-bc647d79] {
439
- padding: 0.5rem;
440
- color: white;
441
- font-size: 0.9rem;
442
- height: 100%;
443
- overflow: hidden;
464
+ .event-content[data-v-8b1a770f] {
465
+ padding: 0.5rem;
466
+ color: white;
467
+ font-size: 0.9rem;
468
+ height: 100%;
469
+ overflow: hidden;
444
470
  }
445
- .event-title[data-v-bc647d79] {
446
- white-space: nowrap;
447
- overflow: hidden;
448
- text-overflow: ellipsis;
471
+ .event-title[data-v-8b1a770f] {
472
+ white-space: nowrap;
473
+ overflow: hidden;
474
+ text-overflow: ellipsis;
449
475
  }
450
- .event-time[data-v-bc647d79] {
451
- font-size: 0.8rem;
476
+ .event-time[data-v-8b1a770f] {
477
+ font-size: 0.8rem;
452
478
  }
453
- .drag-preview[data-v-bc647d79] {
479
+ .drag-preview[data-v-8b1a770f] {
480
+ border: 1px solid var(--bgl-primary);
454
481
  background-color: rgba(var(--bgl-primary-rgb), 0.1);
482
+ box-sizing: border-box;
455
483
  }
456
- .current-time-line[data-v-bc647d79] {
457
- height: 2px;
458
- }
459
- .custom-popover[data-v-bc647d79] {
460
- position: fixed;
461
- z-index: 1000;
462
- min-width: 250px;
463
- max-width: 350px;
464
- background-color: white;
465
- border-radius: 4px;
466
- box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
467
- animation: fadeIn-bc647d79 0.2s ease;
468
- transform-origin: center left;
469
- }
470
- @keyframes fadeIn-bc647d79 {
471
- from {
472
- opacity: 0;
473
- transform: scale(0.95);
474
- }
475
- to {
476
- opacity: 1;
477
- transform: scale(1);
484
+ .current-time-line[data-v-8b1a770f] {
485
+ height: 2px;
486
+ background-color: var(--bgl-primary);
478
487
  }
488
+ .current-time-dot[data-v-8b1a770f] {
489
+ background-color: var(--bgl-primary);
490
+ margin-right: -5px; /* Adjust dot position */
479
491
  }
480
492
 
481
- .month-view[data-v-eeb8abde] {
493
+ .month-view[data-v-0b1117c4] {
482
494
  display: flex;
483
495
  flex-direction: column;
484
496
  height: 100%;
485
497
  overflow: hidden;
486
498
  }
487
- .month-header[data-v-eeb8abde] {
499
+ .month-header[data-v-0b1117c4] {
488
500
  display: grid;
489
501
  grid-template-columns: repeat(7, 1fr);
490
502
  border-bottom: 1px solid var(--border-color);
491
503
  }
492
- .weekday[data-v-eeb8abde] {
504
+ .weekday[data-v-0b1117c4] {
493
505
  padding: 0.5rem;
494
506
  text-align: center;
495
507
  color: var(--text-muted);
496
508
  }
497
- .month-grid[data-v-eeb8abde] {
509
+ .month-grid[data-v-0b1117c4] {
498
510
  display: grid;
499
511
  grid-template-columns: repeat(7, 1fr);
500
512
  grid-template-rows: repeat(6, 1fr);
@@ -502,7 +514,7 @@ to {
502
514
  overflow: auto;
503
515
  border-inline-end: 1px solid var(--border-color);
504
516
  }
505
- .day-cell[data-v-eeb8abde] {
517
+ .day-cell[data-v-0b1117c4] {
506
518
  border-inline-start: 1px solid var(--border-color);
507
519
  border-bottom: 1px solid var(--border-color);
508
520
  padding: 0.5rem;
@@ -510,24 +522,24 @@ to {
510
522
  display: flex;
511
523
  flex-direction: column;
512
524
  }
513
- .day-number[data-v-eeb8abde] {
525
+ .day-number[data-v-0b1117c4] {
514
526
  margin-bottom: 0.5rem;
515
527
  }
516
- .other-month[data-v-eeb8abde] {
528
+ .other-month[data-v-0b1117c4] {
517
529
  background-color: var(--bgl-gray-light);
518
530
  color: var(--bgl-gray);
519
531
  }
520
- .today[data-v-eeb8abde] {
532
+ .today[data-v-0b1117c4] {
521
533
  background-color: var(--bgl-primary-light);
522
534
  }
523
- .today .day-number[data-v-eeb8abde] {
535
+ .today .day-number[data-v-0b1117c4] {
524
536
  color: var(--bgl-primary);
525
537
  }
526
- .day-events[data-v-eeb8abde] {
538
+ .day-events[data-v-0b1117c4] {
527
539
  flex-grow: 1;
528
540
  overflow-y: auto;
529
541
  }
530
- .event-item[data-v-eeb8abde] {
542
+ .event-item[data-v-0b1117c4] {
531
543
  margin-bottom: 0.25rem;
532
544
  padding: 0.25rem;
533
545
  border-radius: 4px;
@@ -536,24 +548,24 @@ to {
536
548
  cursor: pointer;
537
549
  transition: all 0.2s ease;
538
550
  }
539
- .event-title[data-v-eeb8abde] {
551
+ .event-title[data-v-0b1117c4] {
540
552
  font-weight: 500;
541
553
  white-space: nowrap;
542
554
  overflow: hidden;
543
555
  text-overflow: ellipsis;
544
556
  }
545
- .event-time[data-v-eeb8abde] {
557
+ .event-time[data-v-0b1117c4] {
546
558
  font-size: 0.7rem;
547
559
  opacity: 0.8;
548
560
  }
549
- .event-dot[data-v-eeb8abde] {
561
+ .event-dot[data-v-0b1117c4] {
550
562
  width: 6px;
551
563
  height: 6px;
552
564
  background-color: var(--bgl-primary);
553
565
  border-radius: 50%;
554
566
  margin: 0.25rem auto;
555
567
  }
556
- .custom-popover[data-v-eeb8abde] {
568
+ .custom-popover[data-v-0b1117c4] {
557
569
  position: fixed;
558
570
  z-index: 1000;
559
571
  min-width: 250px;
@@ -561,10 +573,10 @@ to {
561
573
  background-color: white;
562
574
  border-radius: var(--btn-border-radius);
563
575
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
564
- animation: fadeIn-eeb8abde 0.2s ease;
576
+ animation: fadeIn-0b1117c4 0.2s ease;
565
577
  transform-origin: center left;
566
578
  }
567
- @keyframes fadeIn-eeb8abde {
579
+ @keyframes fadeIn-0b1117c4 {
568
580
  from {
569
581
  opacity: 0;
570
582
  transform: scale(0.95);
@@ -575,76 +587,78 @@ to {
575
587
  }
576
588
  }
577
589
  @media (max-width: 768px) {
578
- .day-cell[data-v-eeb8abde] {
590
+ .day-cell[data-v-0b1117c4] {
579
591
  min-height: 60px;
580
592
  padding: 0.25rem;
581
593
  }
582
- .day-number[data-v-eeb8abde] {
594
+ .day-number[data-v-0b1117c4] {
583
595
  font-size: 0.8rem;
584
596
  margin-bottom: 0.25rem;
585
597
  }
586
- .weekday[data-v-eeb8abde] {
598
+ .weekday[data-v-0b1117c4] {
587
599
  font-size: 0.8rem;
588
600
  padding: 0.25rem;
589
601
  }
590
602
  }
591
603
 
592
- .weekGrid[data-v-b897fbe8]{
604
+ .weekGrid[data-v-1cd041ac] {
593
605
  display: grid;
594
606
  grid-template-columns: 5rem repeat(7, 1fr);
595
607
  }
596
- .days-column[data-v-b897fbe8] {
597
- flex-grow: 1;
598
- display: flex;
599
- }
600
- .time-slot[data-v-b897fbe8] {
601
- height: 30px;
602
- display: flex;
603
- align-items: center;
604
- justify-content: center;
605
- color: var(--text-muted);
606
- }
607
- .time-slots[data-v-b897fbe8] {
608
- flex-grow: 1;
609
- display: flex;
610
- overflow: auto;
611
- position: relative;
612
- }
613
- .day-column[data-v-b897fbe8] {
614
- flex: 1;
608
+ .days-column[data-v-1cd041ac] {
609
+ flex-grow: 1;
610
+ display: flex;
615
611
  }
616
- .event[data-v-b897fbe8] {
617
- margin-right: 2px;
612
+ .day-column[data-v-1cd041ac] {
613
+ flex: 1;
614
+ position: relative; /* Ensure absolute positioning works properly */
615
+ min-height: 100%; /* Ensure column fills the full height */
618
616
  }
619
- .event[data-v-b897fbe8]:hover {
620
- z-index: 1;
617
+
618
+ /* Add consistent styling for the time slots */
619
+ .txt-light[data-v-1cd041ac] {
620
+ padding: 0.5rem 0;
621
+ box-sizing: border-box;
622
+ display: flex;
623
+ align-items: flex-start;
624
+ justify-content: center;
621
625
  }
622
- .drag-preview[data-v-b897fbe8] {
623
- border: 2px solid var(--bgl-primary);
626
+ .event[data-v-1cd041ac] {
627
+ margin-right: 2px;
628
+ box-sizing: border-box;
624
629
  }
625
- .current-time-line[data-v-b897fbe8] {
626
- height: 2px;
630
+ .event[data-v-1cd041ac]:hover {
631
+ z-index: 2;
627
632
  }
628
- .custom-popover[data-v-b897fbe8] {
629
- min-width: 250px;
630
- box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
631
- animation: fadeIn-b897fbe8 0.2s ease;
632
- transform-origin: center left;
633
+ .drag-preview[data-v-1cd041ac] {
634
+ border: 1px solid var(--bgl-primary);
635
+ background-color: rgba(var(--bgl-primary-rgb), 0.1);
636
+ box-sizing: border-box; /* Ensure consistent sizing */
633
637
  }
634
- @keyframes fadeIn-b897fbe8 {
635
- from {
636
- opacity: 0;
637
- transform: scale(0.95);
638
+ .current-time-line[data-v-1cd041ac] {
639
+ height: 2px;
640
+ background-color: var(--bgl-primary);
638
641
  }
639
- to {
640
- opacity: 1;
641
- transform: scale(1);
642
+ .current-time-dot[data-v-1cd041ac] {
643
+ background-color: var(--bgl-primary);
644
+ margin-right: -5px; /* Adjust dot position */
642
645
  }
646
+
647
+ /* This ensures all grid content aligns properly */
648
+ .overflow[data-v-1cd041ac] {
649
+ position: relative;
643
650
  }
644
- @media screen and (max-width: 910px) {
651
+
652
+ /* Time column headers should be aligned with their content */
653
+ .day-header[data-v-1cd041ac] {
654
+ box-sizing: border-box;
655
+ height: 100%;
656
+ display: flex;
657
+ flex-direction: column;
658
+ justify-content: center;
645
659
  }
646
660
 
647
- .calendar[data-v-36ea5622] {
661
+ .calendar[data-v-840b6594] {
648
662
  display: flex;
649
663
  flex-direction: column;
650
664
  height: 100%;
@@ -1396,69 +1410,76 @@ pre code.hljs{
1396
1410
  outline-color: var(--input-bg);
1397
1411
  }
1398
1412
 
1399
- .calendar-container[data-v-9c8816c6] {
1413
+ .calendar-container[data-v-17319f4d] {
1400
1414
  max-width: 90vw;
1401
1415
  }
1402
- .calendar-section[data-v-9c8816c6] {
1416
+ .calendar-section[data-v-17319f4d] {
1403
1417
  min-width: 280px;
1404
1418
  }
1405
- .calendar-grid[data-v-9c8816c6] {
1419
+ .calendar-grid[data-v-17319f4d] {
1406
1420
  grid-template-columns: repeat(7, 1fr);
1407
1421
  }
1408
- .month-grid[data-v-9c8816c6] {
1422
+ .month-grid[data-v-17319f4d] {
1409
1423
  grid-template-columns: repeat(3, 1fr);
1410
1424
  grid-template-rows: repeat(4, 1fr);
1411
1425
  }
1412
- .year-grid[data-v-9c8816c6] {
1426
+ .year-grid[data-v-17319f4d] {
1413
1427
  grid-template-columns: repeat(3, 1fr);
1414
1428
  grid-template-rows: repeat(7, 1fr);
1415
1429
  }
1416
- .month-item[data-v-9c8816c6],
1417
- .year-item[data-v-9c8816c6] {
1430
+ .month-item[data-v-17319f4d],
1431
+ .year-item[data-v-17319f4d] {
1418
1432
  background: none;
1419
1433
  color: var(--bgl-text-color);
1420
1434
  }
1421
- .month-item[data-v-9c8816c6]:hover:not(.disabled),
1422
- .year-item[data-v-9c8816c6]:hover:not(.disabled) {
1435
+ .month-item[data-v-17319f4d]:hover:not(.disabled),
1436
+ .year-item[data-v-17319f4d]:hover:not(.disabled) {
1423
1437
  background: var(--bgl-box-bg);
1424
1438
  filter: var(--bgl-hover-filter);
1425
1439
  }
1426
- .month-item[data-v-9c8816c6]:active:not(.disabled),
1427
- .year-item[data-v-9c8816c6]:active:not(.disabled) {
1440
+ .month-item[data-v-17319f4d]:active:not(.disabled),
1441
+ .year-item[data-v-17319f4d]:active:not(.disabled) {
1428
1442
  background: var(--bgl-box-bg);
1429
1443
  filter: var(--bgl-active-filter);
1430
1444
  }
1431
- .month-item.selected[data-v-9c8816c6],
1432
- .year-item.selected[data-v-9c8816c6] {
1445
+ .month-item.selected[data-v-17319f4d],
1446
+ .year-item.selected[data-v-17319f4d] {
1433
1447
  background-color: var(--bgl-primary);
1434
1448
  color: white;
1435
1449
  }
1436
- .month-item.disabled[data-v-9c8816c6],
1437
- .year-item.disabled[data-v-9c8816c6] {
1450
+ .month-item.disabled[data-v-17319f4d],
1451
+ .year-item.disabled[data-v-17319f4d] {
1438
1452
  opacity: 0.6;
1439
1453
  filter: grayscale(0.3);
1440
1454
  }
1441
- .day[data-v-9c8816c6] {
1455
+ .day[data-v-17319f4d] {
1442
1456
  border: none;
1443
1457
  background: none;
1444
1458
  color: var(--bgl-text-color);
1445
1459
  }
1446
- .day[data-v-9c8816c6]:hover:not(.disabled) {
1460
+ .day[data-v-17319f4d]:hover:not(.disabled) {
1447
1461
  background-color: var(--input-bg);
1462
+ color: var(--bgl-text-color);
1463
+ outline: 1px solid var(--border-color);
1448
1464
  }
1449
- .day.selected[data-v-9c8816c6] {
1465
+ .day:hover:not(.disabled).selected[data-v-17319f4d] {
1466
+ filter: var(--bgl-hover-filter);
1450
1467
  background-color: var(--bgl-primary);
1451
1468
  color: var(--bgl-white);
1452
1469
  }
1453
- .day.today[data-v-9c8816c6]:not(.selected) {
1470
+ .day.selected[data-v-17319f4d] {
1471
+ background-color: var(--bgl-primary);
1472
+ color: var(--bgl-white);
1473
+ }
1474
+ .day.today[data-v-17319f4d]:not(.selected) {
1454
1475
  border: 1px solid var(--bgl-primary);
1455
1476
  }
1456
- .day.disabled[data-v-9c8816c6] {
1477
+ .day.disabled[data-v-17319f4d] {
1457
1478
  opacity: 0.6;
1458
1479
  filter: grayscale(0.3);
1459
1480
  cursor: not-allowed;
1460
1481
  }
1461
- .day.not-in-month[data-v-9c8816c6] {
1482
+ .day.not-in-month[data-v-17319f4d] {
1462
1483
  opacity: 0.4;
1463
1484
  }
1464
1485
 
@@ -1470,9 +1491,11 @@ pre code.hljs{
1470
1491
  --input-font-size: 12px;
1471
1492
  opacity: 0.6;
1472
1493
  --input-height: 20px;
1494
+ width: 75px;
1473
1495
  }
1474
- .date-picker-container .date-input .bagel-input input{
1496
+ .date-picker-container .txtInputIconStart input{
1475
1497
  padding: 0 !important;
1498
+ padding-inline-start: 1.25rem !important;
1476
1499
  }
1477
1500
 
1478
1501
  .fileUploadWrap[data-v-50fd0597] {
@@ -5034,6 +5057,14 @@ to {
5034
5057
  .hmin100p,
5035
5058
  .h-min100p {
5036
5059
  min-height: 100%;
5060
+ }.vh-min-100,
5061
+ .min100vh,
5062
+ .min-100vh,
5063
+ .h-min100vh {
5064
+ min-height: 100vh !important;
5065
+ }.h-min-unset,
5066
+ .min-h-unset {
5067
+ min-height: 100%;
5037
5068
  }.min-0,
5038
5069
  .min0,
5039
5070
  .wmin0p,
@@ -8793,6 +8824,18 @@ to {
8793
8824
  min-height: 100%;
8794
8825
  }
8795
8826
 
8827
+ .m_h-min-unset,
8828
+ .m_min-h-unset {
8829
+ min-height: 100%;
8830
+ }
8831
+
8832
+ .m_vh-min-100,
8833
+ .m_min100vh,
8834
+ .m_min-100vh,
8835
+ .m_h-min100vh {
8836
+ min-height: 100vh !important;
8837
+ }
8838
+
8796
8839
  .m_min-0,
8797
8840
  .m_min0,
8798
8841
  .m_wmin0p,
@@ -1,4 +1,7 @@
1
1
  import { SelectInput, TextInput } from '..';
2
+ import { Paths, Get, IterableElement } from 'type-fest';
3
+ import { ToString } from 'type-fest/source/internal';
4
+ import { LiteralStringUnion } from 'type-fest/source/literal-union';
2
5
  import { VNode } from 'vue';
3
6
  import { ComponentExposed } from 'vue-component-type-helpers';
4
7
  export type AttributeValue = string | number | boolean | undefined | undefined | {
@@ -14,18 +17,18 @@ export type BagelFieldOptions<T> = (string | ({
14
17
  } | string | number | boolean | {
15
18
  [key: string]: any;
16
19
  })[] | ((val: any, rowData?: T) => void));
17
- export type GenericAssertFn<T> = (val: any, row?: T) => boolean;
18
- export type TypedAssertFn<T, K> = (K extends keyof T ? (val?: FieldVal<T, K>, row?: T) => boolean : GenericAssertFn<T>);
19
- export type VIfType<T, P> = string | boolean | ((val?: FieldVal<T, P>, rowData?: T) => boolean);
20
- export type ValidationFn<T, K> = (val: FieldVal<T, K>, rowData?: T) => string | undefined;
21
- export type NonArrayMethodKeys<T> = Exclude<keyof T, keyof any[] | symbol>;
22
- export type Path<T> = {
23
- [K in NonArrayMethodKeys<T> & (string | number)]: T[K] extends object ? (`${K}` | (Path<T[K]> extends infer Rest ? Rest extends string | number ? `${K}.${Rest}` : never : never)) : `${K}`;
24
- }[NonArrayMethodKeys<T> & (string | number)];
25
- export type FieldVal<T, P> = P extends `${infer Key}.${infer Rest}` ? Key extends keyof T ? FieldVal<T[Key], Rest> : never : P extends keyof T ? T[P] : never;
26
- export type ArrayFieldVal<T, P, FV = FieldVal<T, P>> = (FV extends Array<infer U> ? U : FV extends object ? FV : never);
20
+ export type VIfType<T, P extends Path<T>> = (string | boolean | ((val?: FieldVal<T, P>, rowData?: T) => boolean));
21
+ export type ValidationFn<T, P extends Path<T>> = (val: FieldVal<T, P>, rowData?: T) => string | undefined;
22
+ export type _Path<T> = (ToString<Paths<T, {
23
+ bracketNotation: false;
24
+ }>>);
25
+ export type Path<T> = (FieldVal<T, _Path<T>> extends Array<any> ? LiteralStringUnion<_Path<T>> : _Path<T>);
26
+ /** The value type at path P in object T. */
27
+ export type FieldVal<T, P extends Path<T>> = Get<T, P>;
28
+ /** If path P in T is an array, this gives the array's element type. */
29
+ export type ArrayFieldVal<T, P extends Path<T>> = IterableElement<Get<T, P>>;
27
30
  export type SchemaChildrenT<T> = (Field<T> | string | VNode)[];
28
- export interface BaseBagelField<T, P> {
31
+ export interface BaseBagelField<T, P extends Path<T>> {
29
32
  '$el'?: any;
30
33
  'id'?: P;
31
34
  'label'?: string;