lizaui 12.0.3 → 12.0.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.
@@ -10,13 +10,22 @@ const styledComponents_browser_esm = require("../chunks/styled-components.browse
10
10
  const Calendar = require("react-calendar");
11
11
  const DateInput = require("react-date-picker/dist/DateInput");
12
12
  const DatePicker = require("react-date-picker");
13
- const iconBase = require("../chunks/iconBase-N5QiaNKE.js");
14
13
  const reactTinyPopover = require("react-tiny-popover");
15
14
  const tailwindMerge = require("tailwind-merge");
16
15
  const uuid = require("uuid");
17
16
  const labelError = require("../chunks/label-error-BItokOb6.js");
18
17
  const utils = require("../chunks/utils-ij3i9zTT.js");
19
18
  const compilerRuntime = require("react/compiler-runtime");
19
+ const iconBase = require("../chunks/iconBase-N5QiaNKE.js");
20
+ const chevronRight = require("../chunks/chevron-right-Bfa8mqfk.js");
21
+ const createLucideIcon = require("../chunks/createLucideIcon-DvjiV7vp.js");
22
+ const __iconData = {
23
+ name: "chevron-left",
24
+ size: 24,
25
+ node: [["path", { d: "m15 18-6-6 6-6", key: "1wnfg3" }]]
26
+ };
27
+ __iconData.node;
28
+ const ChevronLeft = createLucideIcon.createLucideIcon(__iconData);
20
29
  const baseClassName = "react-daterange-picker";
21
30
  const outsideActionEvents = ["mousedown", "focusin", "touchstart"];
22
31
  const iconProps = {
@@ -189,12 +198,6 @@ function DateRangePicker(props) {
189
198
  );
190
199
  return jsxRuntime.jsxs("div", { className: clsx(baseClassName, `${baseClassName}--${isOpen ? "open" : "closed"}`, `${baseClassName}--${disabled ? "disabled" : "enabled"}`, className), "data-testid": dataTestid, id, ...eventProps, onFocus, ref: wrapper, children: [renderInputs(), renderCalendar()] });
191
200
  }
192
- function FaArrowRight(props) {
193
- return iconBase.GenIcon({ "attr": { "viewBox": "0 0 448 512" }, "child": [{ "tag": "path", "attr": { "d": "M438.6 278.6c12.5-12.5 12.5-32.8 0-45.3l-160-160c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L338.8 224 32 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l306.7 0L233.4 393.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l160-160z" }, "child": [] }] })(props);
194
- }
195
- function FaArrowLeft(props) {
196
- return iconBase.GenIcon({ "attr": { "viewBox": "0 0 448 512" }, "child": [{ "tag": "path", "attr": { "d": "M9.4 233.4c-12.5 12.5-12.5 32.8 0 45.3l160 160c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L109.2 288 416 288c17.7 0 32-14.3 32-32s-14.3-32-32-32l-306.7 0L214.6 118.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-160 160z" }, "child": [] }] })(props);
197
- }
198
201
  function FaCalendar(props) {
199
202
  return iconBase.GenIcon({ "attr": { "viewBox": "0 0 448 512" }, "child": [{ "tag": "path", "attr": { "d": "M12 192h424c6.6 0 12 5.4 12 12v260c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V204c0-6.6 5.4-12 12-12zm436-44v-36c0-26.5-21.5-48-48-48h-48V12c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v52H160V12c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v52H48C21.5 64 0 85.5 0 112v36c0 6.6 5.4 12 12 12h424c6.6 0 12-5.4 12-12z" }, "child": [] }] })(props);
200
203
  }
@@ -465,376 +468,478 @@ const CalendarStyle = styledComponents_browser_esm.gt.div`
465
468
  z-index: 10px;
466
469
  } */
467
470
 
468
- /* =========================== estilos para react-calendar ================== */
469
- .react-calendar {
470
- ${({
471
- showdoubleview
471
+ /* =============================================================================
472
+ * react-calendar — estilo HeroUI (calendar.css / range-calendar.css v3)
473
+ *
474
+ * Modelo: cada día es la "pista" del rango (fondo continuo, sin huecos entre columnas)
475
+ * y el círculo interactivo vive en ::before. Inicio/fin = círculo sólido, hoy = círculo
476
+ * suave, hover = círculo neutro. Los extremos de fila y los cortes contra días de otro
477
+ * mes se redondean para que el rango se lea como una cápsula por semana.
478
+ *
479
+ * Los selectores se anidan bajo .react-calendar para ganar en especificidad a
480
+ * react-calendar/dist/Calendar.css sin depender del orden de carga.
481
+ * ========================================================================== */
482
+
483
+ ${({
484
+ color = "primary"
472
485
  }) => {
473
- if (showdoubleview === "true") {
474
- return styledComponents_browser_esm.ft``;
475
- } else {
476
- return styledComponents_browser_esm.ft`
477
- /* Forzamos un layout compacto de 256px para vista simple */
478
- width: 256px;
479
- min-width: 256px;
480
- `;
481
- }
486
+ const accents = {
487
+ primary: ["var(--color-primary)", "var(--color-primary-foreground)"],
488
+ success: ["var(--color-success)", "var(--color-success-foreground)"],
489
+ warning: ["var(--color-warning)", "var(--color-warning-foreground)"],
490
+ danger: ["var(--color-danger)", "var(--color-danger-foreground)"],
491
+ default: ["var(--color-foreground)", "var(--color-content1)"]
492
+ };
493
+ const [accent, accentForeground] = accents[color] ?? accents.primary;
494
+ return styledComponents_browser_esm.ft`
495
+ --cal-accent: ${accent};
496
+ --cal-accent-foreground: ${accentForeground};
497
+ --cal-accent-hover: color-mix(in oklab, var(--cal-accent) 88%, black);
498
+ --cal-accent-soft: color-mix(in oklab, var(--cal-accent) 14%, transparent);
499
+ --cal-accent-soft-hover: color-mix(in oklab, var(--cal-accent) 24%, transparent);
500
+ `;
482
501
  }}
483
- border: none;
484
- padding: 8px; /* Compactar padding sin cambiar colores ni fuentes */
485
- font-family: var(--font-family-base);
486
- border-radius: calc(var(--radius) - 2px);
487
- background-color: var(--color-content1-default);
488
- /* Variable para tamaño de celda compacto */
489
- --cal-cell-size: 32px;
490
- }
491
-
492
- /* .react-calendar--doubleView {
493
- width: ${({
494
- widthcalendar
495
- }) => `${widthcalendar}px`};
496
- } */
497
-
498
- .react-calendar--doubleView {
499
- --cal-cell-size: 34px !important;
500
- width: 512px !important;
501
- }
502
-
503
- .react-calendar--doubleView .react-calendar__month-view__weekdays {
504
- gap: 0px;
505
- }
506
-
507
- .react-calendar--doubleView .react-calendar__month-view__days {
508
- gap: 0px;
509
- }
510
502
 
511
- .react-calendar__navigation {
512
- height: 40px; /* Más compacto */
513
- margin-bottom: 4px;
514
- gap: 4px;
515
- /* Alinear y centrar */
516
- display: flex;
517
- align-items: center;
518
- }
519
- .react-calendar__navigation__prev2-button,
520
- .react-calendar__navigation__next2-button {
521
- display: none;
522
- }
523
-
524
- .react-calendar__navigation__next-button,
525
- .react-calendar__navigation__prev-button {
526
- font-size: 22px; /* Conserva tamaño del icono */
527
- color: var(--color-default-900);
528
- width: var(--cal-cell-size);
529
- height: var(--cal-cell-size);
530
- padding: 0;
531
- display: flex;
532
- align-items: center;
533
- justify-content: center;
534
- border-radius: 8px;
535
- }
536
-
537
- .react-calendar__navigation__label {
538
- border-radius: 8px;
539
- flex: 1;
540
- height: var(--cal-cell-size);
541
- display: flex;
542
- align-items: center;
543
- justify-content: center;
544
- padding: 0 4px;
545
- font-size: 14px;
546
- font-weight: 600;
547
- color: var(--color-default-900);
548
- }
549
-
550
- .react-calendar__navigation__label span {
551
- text-transform: capitalize;
552
- color: var(--color-default-500);
553
- font-weight: 500;
554
- font-size: 14px;
555
- }
556
-
557
- .react-calendar__navigation button:disabled {
558
- background-color: var(--color-default-100);
559
- }
560
-
561
- .react-calendar__navigation button:enabled:hover,
562
- .react-calendar__navigation button:enabled:focus {
563
- background-color: var(--color-default-200);
564
- }
503
+ .react-calendar {
504
+ --cal-cell: 36px;
505
+ --cal-gap: 24px;
506
+ --cal-cap: 9999px;
507
+ --cal-edge: 8px;
508
+ --cal-ease: cubic-bezier(0.22, 1, 0.36, 1);
509
+
510
+ width: calc(var(--cal-cell) * 7 + 24px);
511
+ max-width: 100%;
512
+ padding: 12px;
513
+ border: none;
514
+ background: transparent;
515
+ font-family: inherit;
516
+ line-height: normal;
517
+ color: var(--color-foreground);
518
+
519
+ &.react-calendar--doubleView {
520
+ width: calc(var(--cal-cell) * 14 + var(--cal-gap) + 24px);
521
+ }
522
+
523
+ button {
524
+ font: inherit;
525
+ }
526
+
527
+ /* ---------------------------------------------------------------- header */
528
+ .react-calendar__navigation {
529
+ display: flex;
530
+ align-items: center;
531
+ gap: 2px;
532
+ height: auto;
533
+ margin-bottom: 12px;
534
+ padding: 0 2px;
535
+ }
536
+
537
+ .react-calendar__navigation__arrow.react-calendar__navigation__prev2-button,
538
+ .react-calendar__navigation__arrow.react-calendar__navigation__next2-button {
539
+ display: none;
540
+ }
541
+
542
+ /* Título a la izquierda y flechas juntas a la derecha, como HeroUI. */
543
+ .react-calendar__navigation__label {
544
+ order: 0;
545
+ flex: 1;
546
+ display: flex;
547
+ align-items: center;
548
+ justify-content: flex-start;
549
+ min-width: 0;
550
+ height: 28px;
551
+ padding: 0 8px;
552
+ border-radius: var(--cal-cap);
553
+ background: transparent;
554
+ font-size: 14px;
555
+ font-weight: 600;
556
+ color: var(--color-foreground);
557
+ text-align: left;
558
+ transition: background-color 100ms var(--cal-ease);
559
+ }
560
+
561
+ .react-calendar__navigation__label span {
562
+ font-size: 14px;
563
+ font-weight: 600;
564
+ color: var(--color-foreground);
565
+ }
566
+
567
+ .react-calendar__navigation__prev-button {
568
+ order: 1;
569
+ }
570
+
571
+ .react-calendar__navigation__next-button {
572
+ order: 2;
573
+ }
574
+
575
+ .react-calendar__navigation__arrow {
576
+ display: flex;
577
+ align-items: center;
578
+ justify-content: center;
579
+ flex: none;
580
+ width: 28px;
581
+ min-width: 28px;
582
+ height: 28px;
583
+ padding: 0;
584
+ border-radius: var(--cal-cap);
585
+ background: transparent;
586
+ color: var(--cal-accent);
587
+ transition:
588
+ background-color 100ms var(--cal-ease),
589
+ transform 200ms var(--cal-ease),
590
+ opacity 150ms var(--cal-ease);
591
+ }
592
+
593
+ .react-calendar__navigation button:enabled:focus {
594
+ background: transparent;
595
+ }
596
+
597
+ @media (hover: hover) {
598
+ .react-calendar__navigation button:enabled:hover {
599
+ background-color: var(--color-default-100);
600
+ }
601
+ }
602
+
603
+ .react-calendar__navigation__arrow:enabled:active {
604
+ transform: scale(0.92);
605
+ }
606
+
607
+ .react-calendar__navigation button:disabled {
608
+ background: transparent;
609
+ opacity: 0.35;
610
+ cursor: not-allowed;
611
+ }
612
+
613
+ .react-calendar__navigation button:focus-visible {
614
+ outline: 2px solid var(--cal-accent);
615
+ outline-offset: 1px;
616
+ }
617
+
618
+ /* ------------------------------------------------------------ month view */
619
+ .react-calendar__viewContainer {
620
+ margin: 0;
621
+ }
622
+
623
+ &.react-calendar--doubleView .react-calendar__viewContainer {
624
+ display: flex;
625
+ gap: var(--cal-gap);
626
+ margin: 0;
627
+
628
+ > * {
629
+ width: auto;
630
+ flex: 1 1 0;
631
+ margin: 0;
632
+ }
633
+ }
634
+
635
+ .react-calendar__month-view__weekdays {
636
+ display: grid !important;
637
+ grid-template-columns: repeat(7, var(--cal-cell));
638
+ margin-bottom: 4px;
639
+ font-size: 12px;
640
+ font-weight: 500;
641
+ text-transform: none;
642
+ }
643
+
644
+ .react-calendar__month-view__weekdays__weekday {
645
+ display: flex;
646
+ align-items: center;
647
+ justify-content: center;
648
+ height: 24px;
649
+ padding: 0;
650
+ color: var(--color-default-500);
651
+ text-transform: capitalize;
652
+
653
+ abbr {
654
+ text-decoration: none;
655
+ cursor: default;
656
+ }
657
+ }
658
+
659
+ .react-calendar__month-view__days {
660
+ display: grid !important;
661
+ grid-template-columns: repeat(7, var(--cal-cell));
662
+ row-gap: 4px;
663
+ column-gap: 0;
664
+ }
665
+
666
+ /* ------------------------------------------------------------------ días */
667
+ .react-calendar__month-view__days > .react-calendar__tile {
668
+ position: relative;
669
+ isolation: isolate;
670
+ display: flex;
671
+ align-items: center;
672
+ justify-content: center;
673
+ width: var(--cal-cell);
674
+ max-width: none;
675
+ height: var(--cal-cell);
676
+ margin: 0 !important;
677
+ padding: 0;
678
+ border-radius: 0;
679
+ background: transparent;
680
+ font-size: 14px;
681
+ font-weight: 500;
682
+ line-height: 1;
683
+ color: var(--color-foreground);
684
+ -webkit-tap-highlight-color: transparent;
685
+
686
+ /* Círculo interactivo */
687
+ &::before {
688
+ content: "";
689
+ position: absolute;
690
+ inset: 0;
691
+ z-index: -1;
692
+ border-radius: var(--cal-cap);
693
+ background: transparent;
694
+ transition:
695
+ background-color 120ms var(--cal-ease),
696
+ scale 200ms var(--cal-ease);
697
+ }
565
698
 
566
- .react-calendar__month-view__weekdays__weekday {
567
- text-transform: capitalize;
568
- font-weight: 500;
569
- color: var(--color-default-400);
570
- display: flex;
571
- align-items: center;
572
- justify-content: center;
573
- height: var(--cal-cell-size);
574
- width: var(--cal-cell-size);
575
- }
576
- .react-calendar__month-view__weekdays__weekday abbr {
577
- text-decoration: none;
578
- }
699
+ abbr {
700
+ text-decoration: none;
701
+ }
579
702
 
580
- .react-calendar__month-view__weekNumbers .react-calendar__tile {
581
- display: flex;
582
- align-items: center;
583
- justify-content: center;
584
- font-size: 0.75em;
585
- font-weight: bold;
586
- }
587
- .react-calendar__month-view__days__day--weekend {
588
- color: var(--color-danger-default);
589
- }
590
- .react-calendar__month-view__days__day--neighboringMonth {
591
- color: var(--color-gray-300);
592
- }
593
- .react-calendar__year-view .react-calendar__tile,
594
- .react-calendar__decade-view .react-calendar__tile,
595
- .react-calendar__century-view .react-calendar__tile {
596
- padding: 2em 0.5em;
597
- }
598
- .react-calendar__tile {
599
- font-size: 13px; /* No cambiamos tipografía */
600
- line-height: 1; /* Permite centrar vertical con flex */
601
- font-weight: 500;
602
- width: var(--cal-cell-size);
603
- height: var(--cal-cell-size);
604
- padding: 0;
605
- display: flex;
606
- align-items: center;
607
- justify-content: center;
608
- border-radius: 6px; /* Moderno sin afectar colores */
609
- flex: 0 0 auto; /* Evitar stretching */
610
- /* Transición suave para cambios de fondo, color y radio */
611
- transition:
612
- background-color 0.18s ease,
613
- color 0.18s ease,
614
- border-radius 0.25s ease,
615
- transform 0.18s ease;
616
- }
703
+ &:focus-visible {
704
+ outline: none;
705
+ }
617
706
 
618
- .react-calendar__tile--hasActive {
619
- background: var(--color-primary-300);
620
- border-radius: 50% !important;
621
- }
707
+ /* Anillo hacia adentro: react-calendar pone overflow:hidden inline en cada día. */
708
+ &:focus-visible::before {
709
+ box-shadow:
710
+ inset 0 0 0 2px var(--cal-accent),
711
+ inset 0 0 0 4px var(--color-content1);
712
+ }
622
713
 
623
- /* Suavizar botones navegación (heredan selector button) */
624
- .react-calendar__navigation button {
625
- transition:
626
- background-color 0.18s ease,
627
- color 0.18s ease,
628
- border-radius 0.25s ease;
629
- }
714
+ &:enabled:active::before {
715
+ scale: 0.9;
716
+ }
717
+ }
718
+
719
+ /* Fines de semana sin color especial (react-calendar los pinta en rojo). */
720
+ .react-calendar__month-view__days > .react-calendar__month-view__days__day--weekend {
721
+ color: var(--color-foreground);
722
+ }
723
+
724
+ /* Hover neutro solo en días libres y solo con puntero real (evita "pegados" en táctil). */
725
+ @media (hover: hover) {
726
+ .react-calendar__month-view__days > .react-calendar__tile:enabled:hover:not(
727
+ .react-calendar__tile--range,
728
+ .react-calendar__tile--hoverStart,
729
+ .react-calendar__tile--hoverEnd
730
+ )::before {
731
+ background-color: var(--color-default-100);
732
+ }
630
733
 
631
- /* Hover general (sin tocar colores definidos en variantes) añadimos ligera elevación */
632
- .react-calendar__tile:enabled:hover,
633
- .react-calendar__tile:enabled:focus {
634
- transform: translateY(-2px);
635
- }
734
+ /* Dentro de un rango ya elegido el hover refuerza el tono del acento en vez de un gris encima de la pista. */
735
+ &:not(.react-calendar--selectRange)
736
+ .react-calendar__month-view__days
737
+ > .react-calendar__tile--range:enabled:hover:not(
738
+ .react-calendar__tile--rangeStart,
739
+ .react-calendar__tile--rangeEnd,
740
+ .react-calendar__month-view__days__day--neighboringMonth
741
+ )::before {
742
+ background-color: var(--cal-accent-soft-hover);
743
+ }
744
+ }
636
745
 
637
- /* Evitar salto al active manteniendo animación */
638
- .react-calendar__tile--active {
639
- transition:
640
- background-color 0.18s ease,
641
- color 0.18s ease,
642
- border-radius 0.25s ease;
643
- }
746
+ /* Hoy */
747
+ .react-calendar__month-view__days > .react-calendar__tile--now {
748
+ color: var(--cal-accent);
644
749
 
645
- /* Grid compacto SOLO cuando no es doble vista */
646
- ${({
647
- showdoubleview
648
- }) => showdoubleview === "false" && styledComponents_browser_esm.ft`
649
- .react-calendar__month-view__weekdays,
650
- .react-calendar__month-view__days {
651
- display: grid !important;
652
- grid-template-columns: repeat(7, var(--cal-cell-size));
653
- justify-content: center;
654
- gap: 2px; /* Sin gaps para exactitud */
750
+ &::before {
751
+ background-color: var(--cal-accent-soft);
655
752
  }
753
+ }
656
754
 
657
- .react-calendar__month-view__days {
658
- margin-top: 0;
755
+ @media (hover: hover) {
756
+ .react-calendar__month-view__days > .react-calendar__tile--now:enabled:hover::before {
757
+ background-color: var(--cal-accent-soft-hover);
659
758
  }
660
- `}
759
+ }
661
760
 
662
- .react-calendar__tile:disabled {
663
- text-decoration: line-through;
664
- color: var(--color-gray-300);
665
- background-color: inherit;
666
- }
761
+ /* Días de otro mes (sin el círculo de hoy: en doble vista duplicaría el del otro mes) */
762
+ .react-calendar__month-view__days > .react-calendar__month-view__days__day--neighboringMonth {
763
+ color: var(--color-default-400);
764
+ opacity: 0.6;
667
765
 
668
- .react-calendar__navigation__arrow.react-calendar__navigation__prev2-button {
669
- display: none;
670
- }
671
- .react-calendar__navigation__arrow.react-calendar__navigation__next2-button {
672
- display: none;
673
- }
766
+ &::before {
767
+ background-color: transparent;
768
+ }
769
+ }
674
770
 
675
- .react-calendar__navigation__arrow {
676
- display: flex;
677
- align-items: center;
678
- justify-content: center;
679
- border-radius: 50%;
680
- width: var(--cal-cell-size);
681
- height: var(--cal-cell-size);
682
- min-width: var(--cal-cell-size);
683
- max-width: var(--cal-cell-size);
684
- min-height: var(--cal-cell-size);
685
- max-height: var(--cal-cell-size);
686
- color: hsl(var(--color-default-400) / 1);
687
- }
771
+ /* Deshabilitados */
772
+ .react-calendar__month-view__days > .react-calendar__tile:disabled {
773
+ background: transparent;
774
+ color: var(--color-default-300);
775
+ text-decoration: line-through;
776
+ cursor: not-allowed;
688
777
 
689
- .react-calendar__year-view__months__month {
690
- border-radius: 8px !important;
691
- }
778
+ &::before {
779
+ background: transparent;
780
+ }
781
+ }
782
+
783
+ /* ------------------------------------------------------ rango: la pista */
784
+ /* Primer selector: rango confirmado. Segundo: vista previa mientras se elige el segundo extremo. */
785
+ &:not(.react-calendar--selectRange)
786
+ .react-calendar__month-view__days
787
+ > .react-calendar__tile--range:not(.react-calendar__month-view__days__day--neighboringMonth, .react-calendar__tile--rangeBothEnds),
788
+ &.react-calendar--selectRange
789
+ .react-calendar__month-view__days
790
+ > .react-calendar__tile--hover:not(.react-calendar__month-view__days__day--neighboringMonth, .react-calendar__tile--hoverBothEnds) {
791
+ background-color: var(--cal-accent-soft);
792
+ color: var(--color-foreground);
793
+ }
794
+
795
+ /* Extremos de fila: la pista se corta con un redondeo suave para que cada semana se lea como una cápsula. */
796
+ .react-calendar__month-view__days > .react-calendar__tile:nth-child(7n + 1),
797
+ .react-calendar__month-view__days > .react-calendar__month-view__days__day--neighboringMonth + .react-calendar__tile {
798
+ border-start-start-radius: var(--cal-edge);
799
+ border-end-start-radius: var(--cal-edge);
800
+ }
801
+
802
+ .react-calendar__month-view__days > .react-calendar__tile:nth-child(7n),
803
+ .react-calendar__month-view__days > .react-calendar__tile:has(+ .react-calendar__month-view__days__day--neighboringMonth) {
804
+ border-start-end-radius: var(--cal-edge);
805
+ border-end-end-radius: var(--cal-edge);
806
+ }
807
+
808
+ /* Inicio y fin: el borde de la pista abraza el círculo. */
809
+ &:not(.react-calendar--selectRange) .react-calendar__month-view__days > .react-calendar__tile--rangeStart,
810
+ &.react-calendar--selectRange .react-calendar__month-view__days > .react-calendar__tile--hoverStart {
811
+ border-start-start-radius: var(--cal-cap);
812
+ border-end-start-radius: var(--cal-cap);
813
+ }
814
+
815
+ &:not(.react-calendar--selectRange) .react-calendar__month-view__days > .react-calendar__tile--rangeEnd,
816
+ &.react-calendar--selectRange .react-calendar__month-view__days > .react-calendar__tile--hoverEnd {
817
+ border-start-end-radius: var(--cal-cap);
818
+ border-end-end-radius: var(--cal-cap);
819
+ }
820
+
821
+ /* Un extremo pegado al borde de fila no deja asomar la pista detrás del círculo. */
822
+ .react-calendar__month-view__days
823
+ > .react-calendar__tile:is(.react-calendar__tile--rangeEnd, .react-calendar__tile--hoverEnd):is(
824
+ :nth-child(7n + 1),
825
+ .react-calendar__month-view__days__day--neighboringMonth + *
826
+ ) {
827
+ border-start-start-radius: var(--cal-cap);
828
+ border-end-start-radius: var(--cal-cap);
829
+ }
830
+
831
+ .react-calendar__month-view__days
832
+ > .react-calendar__tile:is(.react-calendar__tile--rangeStart, .react-calendar__tile--hoverStart):is(
833
+ :nth-child(7n),
834
+ :has(+ .react-calendar__month-view__days__day--neighboringMonth)
835
+ ) {
836
+ border-start-end-radius: var(--cal-cap);
837
+ border-end-end-radius: var(--cal-cap);
838
+ }
839
+
840
+ /* ------------------------------------------------- rango: círculos sólidos */
841
+ /* .react-calendar__tile repetido: iguala la especificidad de la pista para que el texto blanco del extremo gane. */
842
+ .react-calendar__month-view__days
843
+ > .react-calendar__tile.react-calendar__tile--rangeStart:not(.react-calendar__month-view__days__day--neighboringMonth),
844
+ .react-calendar__month-view__days
845
+ > .react-calendar__tile.react-calendar__tile--rangeEnd:not(.react-calendar__month-view__days__day--neighboringMonth),
846
+ &.react-calendar--selectRange
847
+ .react-calendar__month-view__days
848
+ > .react-calendar__tile--hoverStart:not(.react-calendar__month-view__days__day--neighboringMonth),
849
+ &.react-calendar--selectRange
850
+ .react-calendar__month-view__days
851
+ > .react-calendar__tile--hoverEnd:not(.react-calendar__month-view__days__day--neighboringMonth) {
852
+ color: var(--cal-accent-foreground);
853
+
854
+ &::before {
855
+ background-color: var(--cal-accent);
856
+ }
692
857
 
693
- ${({
694
- color
695
- }) => {
696
- switch (color) {
697
- case "primary":
698
- return styledComponents_browser_esm.ft`
699
- .react-calendar__tile:enabled:hover,
700
- .react-calendar__tile:enabled:focus {
701
- background-color: var(--color-primary-100);
702
-
703
- color: var(--color-primary-500);
704
- border-radius: 50%;
705
- }
706
-
707
- .react-calendar .react-calendar__tile--now {
708
- border-radius: 50%;
709
- background-color: var(--color-primary-100);
710
- color: var(--color-primary-500);
711
- }
712
-
713
- .react-calendar__tile.react-calendar__tile--active.react-calendar__tile--range.react-calendar__tile--rangeStart.react-calendar__tile--rangeEnd {
714
- background-color: var(--color-primary);
715
- color: white;
716
- border-radius: 50%;
717
- }
718
-
719
- /* .react-calendar__tile--hasActive.react-calendar__year-view__months__month, */
720
- .react-calendar__tile--hasActive.react-calendar__year-view__months__month,
721
- .react-calendar__tile--hasActive.react-calendar__decade-view__years__year,
722
- .react-calendar__tile--hasActive.react-calendar__century-view__decades__decade {
723
- background-color: var(--color-primary-400);
724
- color: white;
725
- border-radius: 8px;
726
- }
727
-
728
- .react-calendar--doubleView .react-calendar__tile--active.react-calendar__tile--rangeStart,
729
- .react-calendar .react-calendar__tile--hasActive.react-calendar__tile--rangeStart.react-calendar__year-view__months__month,
730
- .react-calendar__tile--hasActive.react-calendar__tile--rangeStart.react-calendar__decade-view__years__year,
731
- .react-calendar__tile--hasActive.react-calendar__tile--rangeStart.react-calendar__century-view__decades__decade {
732
- background-color: var(--color-primary);
733
- color: white;
734
-
735
- border-radius: 8px 0 0 8px;
736
- }
737
-
738
- /* .react-calendar__tile.react-calendar__tile--hasActive.react-calendar__year-view__months__month {
739
- background-color: var(--color-blue-400);
740
- color: white;
741
- border-radius: 8px;
742
- } */
743
-
744
- .react-calendar--doubleView .react-calendar__tile--active.react-calendar__tile--rangeEnd,
745
- .react-calendar__tile.react-calendar__tile--hasActive.react-calendar__tile--range.react-calendar__tile--rangeEnd.react-calendar__year-view__months__month,
746
- .react-calendar__tile--hasActive.react-calendar__tile--rangeEnd.react-calendar__decade-view__years__year,
747
- .react-calendar__tile--hasActive.react-calendar__tile--rangeEnd.react-calendar__century-view__decades__decade {
748
- background-color: var(--color-primary);
749
- color: white;
750
-
751
- border-radius: 0 8px 8px 0;
752
- }
753
- `;
754
- case "success":
755
- return styledComponents_browser_esm.ft`
756
- .react-calendar__tile:enabled:hover,
757
- .react-calendar__tile:enabled:focus {
758
- background-color: var(--color-success-100);
759
-
760
- color: var(--color-success-500);
761
- border-radius: 8px;
762
- }
763
-
764
- .react-calendar .react-calendar__tile--now {
765
- border-radius: 8px;
766
- background-color: var(--color-success-100);
767
- color: var(--color-success-500);
768
- }
769
-
770
- .react-calendar__tile.react-calendar__tile--active.react-calendar__tile--range.react-calendar__tile--rangeStart.react-calendar__tile--rangeEnd {
771
- background-color: var(--color-success-400);
772
- color: white;
773
- border-radius: 8px;
774
- }
775
-
776
- /* .react-calendar__tile--hasActive.react-calendar__year-view__months__month, */
777
- .react-calendar__tile--hasActive.react-calendar__year-view__months__month,
778
- .react-calendar__tile--hasActive.react-calendar__decade-view__years__year,
779
- .react-calendar__tile--hasActive.react-calendar__century-view__decades__decade {
780
- background-color: var(--color-success-400);
781
- color: white;
782
- border-radius: 8px;
783
- }
784
-
785
- .react-calendar--doubleView .react-calendar__tile--active.react-calendar__tile--rangeStart,
786
- .react-calendar .react-calendar__tile--hasActive.react-calendar__tile--rangeStart.react-calendar__year-view__months__month,
787
- .react-calendar__tile--hasActive.react-calendar__tile--rangeStart.react-calendar__decade-view__years__year,
788
- .react-calendar__tile--hasActive.react-calendar__tile--rangeStart.react-calendar__century-view__decades__decade {
789
- background-color: var(--color-success-400);
790
- color: white;
791
-
792
- border-radius: 8px 0 0 8px;
793
- }
794
-
795
- /* .react-calendar__tile.react-calendar__tile--hasActive.react-calendar__year-view__months__month {
796
- background-color: var(--color-green-400);
797
- color: white;
798
- border-radius: 8px;
799
- } */
800
-
801
- .react-calendar--doubleView .react-calendar__tile--active.react-calendar__tile--rangeEnd,
802
- .react-calendar__tile.react-calendar__tile--hasActive.react-calendar__tile--range.react-calendar__tile--rangeEnd.react-calendar__year-view__months__month,
803
- .react-calendar__tile--hasActive.react-calendar__tile--rangeEnd.react-calendar__decade-view__years__year,
804
- .react-calendar__tile--hasActive.react-calendar__tile--rangeEnd.react-calendar__century-view__decades__decade {
805
- background-color: var(--color-success-400);
806
- color: white;
807
-
808
- border-radius: 0 8px 8px 0;
809
- }
810
- `;
811
- default:
812
- return styledComponents_browser_esm.ft``;
813
- }
814
- }}
858
+ &:enabled:active::before {
859
+ background-color: var(--cal-accent-hover);
860
+ }
861
+ }
862
+
863
+ /* ------------------------------------------------- año / década / siglo */
864
+ .react-calendar__year-view__months,
865
+ .react-calendar__decade-view__years,
866
+ .react-calendar__century-view__decades {
867
+ row-gap: 4px;
868
+ }
869
+
870
+ .react-calendar__year-view .react-calendar__tile,
871
+ .react-calendar__decade-view .react-calendar__tile,
872
+ .react-calendar__century-view .react-calendar__tile {
873
+ padding: 12px 4px;
874
+ border-radius: var(--cal-cap);
875
+ background: transparent;
876
+ font-size: 13px;
877
+ font-weight: 500;
878
+ color: var(--color-foreground);
879
+ text-transform: capitalize;
880
+ transition: background-color 120ms var(--cal-ease);
881
+
882
+ abbr {
883
+ text-decoration: none;
884
+ }
815
885
 
816
- .react-calendar--doubleView .react-calendar__tile--active {
817
- background-color: var(--color-primary-50);
818
- color: var(--color-primary);
819
- border-radius: 0px;
820
- position: relative;
821
- }
886
+ &:enabled:focus {
887
+ background: transparent;
888
+ }
822
889
 
823
- .react-calendar--selectRange .react-calendar__tile--hover {
824
- background-color: var(--color-default-100);
825
- }
890
+ &:focus-visible {
891
+ outline: 2px solid var(--cal-accent);
892
+ outline-offset: -2px;
893
+ }
894
+ }
826
895
 
827
- .react-calendar--selectRange .react-calendar__tile--hover.react-calendar__month-view__days__day {
828
- /* border-radius: 0px !important; */
896
+ @media (hover: hover) {
897
+ .react-calendar__year-view .react-calendar__tile:enabled:hover,
898
+ .react-calendar__decade-view .react-calendar__tile:enabled:hover,
899
+ .react-calendar__century-view .react-calendar__tile:enabled:hover {
900
+ background-color: var(--color-default-100);
901
+ }
902
+ }
903
+
904
+ .react-calendar__year-view .react-calendar__tile--now,
905
+ .react-calendar__decade-view .react-calendar__tile--now,
906
+ .react-calendar__century-view .react-calendar__tile--now {
907
+ color: var(--cal-accent);
908
+ }
909
+
910
+ .react-calendar__year-view .react-calendar__tile--hasActive,
911
+ .react-calendar__year-view .react-calendar__tile--active,
912
+ .react-calendar__decade-view .react-calendar__tile--hasActive,
913
+ .react-calendar__decade-view .react-calendar__tile--active,
914
+ .react-calendar__century-view .react-calendar__tile--hasActive,
915
+ .react-calendar__century-view .react-calendar__tile--active {
916
+ background-color: var(--cal-accent);
917
+ color: var(--cal-accent-foreground);
918
+ }
919
+
920
+ .react-calendar__year-view .react-calendar__tile:disabled,
921
+ .react-calendar__decade-view .react-calendar__tile:disabled,
922
+ .react-calendar__century-view .react-calendar__tile:disabled {
923
+ background: transparent;
924
+ color: var(--color-default-300);
925
+ cursor: not-allowed;
926
+ }
829
927
  }
830
928
 
831
- .react-calendar__tile--active.react-calendar__month-view__days__day.react-calendar__month-view__days__day--neighboringMonth {
832
- background-color: var(--color-content1-default);
833
- color: var(--color-default-300);
929
+ @media (prefers-reduced-motion: reduce) {
930
+ .react-calendar *,
931
+ .react-calendar *::before {
932
+ transition: none !important;
933
+ }
834
934
  }
835
-
836
- /* RANGE */
837
935
  `;
936
+ const formatMonthYearLabel = (locale, date) => {
937
+ const label = date.toLocaleDateString(locale, {
938
+ month: "long",
939
+ year: "numeric"
940
+ });
941
+ return label.charAt(0).toLocaleUpperCase(locale) + label.slice(1);
942
+ };
838
943
  const CalendarPicker = ({
839
944
  id,
840
945
  value,
@@ -1030,21 +1135,21 @@ const CalendarPicker = ({
1030
1135
  });
1031
1136
  return /* @__PURE__ */ jsxRuntime.jsx(reactTinyPopover.Popover, { isOpen: show, containerStyle: {
1032
1137
  zIndex: "100"
1033
- }, align: "start", content: /* @__PURE__ */ jsxRuntime.jsxs(CalendarStyle, { color, showcalendar: show.toString(), widthcalendar: inputRef.current, showdoubleview: showDoubleView.toString(), className: "shadow-medium bg-content1 rounded-lg", radius, children: [
1138
+ }, align: "start", content: /* @__PURE__ */ jsxRuntime.jsxs(CalendarStyle, { color, showcalendar: show.toString(), widthcalendar: inputRef.current, showdoubleview: showDoubleView.toString(), className: "shadow-medium bg-content1 rounded-2xl overflow-hidden", radius, children: [
1034
1139
  loading ? (
1035
1140
  /* <Loading size="sm" color="secondary" /> */
1036
1141
  /* @__PURE__ */ jsxRuntime.jsx("p", { children: "loading" })
1037
1142
  ) : null,
1038
1143
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "w-full relative flex gap-2", children: [
1039
- showActionButtons && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "w-[150px] border-r border-default-200 px-3 py-3 flex flex-col gap-1 overflow-y-auto max-h-[340px]", children: [
1040
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-xs font-medium text-default-400 mb-1 select-none uppercase tracking-wide", children: "Atajos" }),
1144
+ showActionButtons && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "w-[150px] border-r border-default-100 px-2 py-3 flex flex-col gap-0.5 overflow-y-auto max-h-[360px]", children: [
1145
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "px-2 text-xs font-medium text-default-400 mb-1 select-none uppercase tracking-wide", children: "Atajos" }),
1041
1146
  presets.map((p) => {
1042
1147
  const active = isPresetActive(p);
1043
- return /* @__PURE__ */ jsxRuntime.jsx("button", { type: "button", onClick: () => handlePresetClick(p), className: tailwindMerge.twMerge("text-left rounded-md px-2 py-1.5 text-sm w-full cursor-pointer transition-colors", active ? "bg-default-200/70 dark:bg-default-100 font-medium" : "bg-content1 hover:bg-default-100"), "data-active": active || void 0, children: p.label }, p.key);
1148
+ return /* @__PURE__ */ jsxRuntime.jsx("button", { type: "button", onClick: () => handlePresetClick(p), className: tailwindMerge.twMerge("text-left rounded-full px-3 py-1.5 text-sm w-full cursor-pointer transition-colors", active ? "bg-primary/15 text-primary font-medium" : "bg-transparent hover:bg-default-100"), "data-active": active || void 0, children: p.label }, p.key);
1044
1149
  }),
1045
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mt-2 pt-2 border-t border-default-200 flex flex-col gap-1", children: /* @__PURE__ */ jsxRuntime.jsx("button", { type: "button", onClick: handleChangeToDay, className: "text-left rounded-md px-2 py-1.5 text-sm w-full cursor-pointer bg-content1 hover:bg-default-100", children: "Ir a hoy (Cerrar)" }) })
1150
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mt-2 pt-2 border-t border-default-100 flex flex-col gap-1", children: /* @__PURE__ */ jsxRuntime.jsx("button", { type: "button", onClick: handleChangeToDay, className: "text-left rounded-full px-3 py-1.5 text-sm w-full cursor-pointer bg-transparent hover:bg-default-100 transition-colors", children: "Ir a hoy (Cerrar)" }) })
1046
1151
  ] }),
1047
- /* @__PURE__ */ jsxRuntime.jsx(Calendar, { value, onChange: handleChange, locale, showDoubleView, calendarType: "gregory", minDate, maxDate, tileDisabled, selectRange: type === "date-range-picker", returnValue: type === "date-range-picker" ? "range" : "start", prevLabel: /* @__PURE__ */ jsxRuntime.jsx(FaArrowLeft, { className: "w-4 h-4 text-default-400" }), nextLabel: /* @__PURE__ */ jsxRuntime.jsx(FaArrowRight, { className: "w-4 h-4 text-default-400" }), tileContent })
1152
+ /* @__PURE__ */ jsxRuntime.jsx(Calendar, { value, onChange: handleChange, locale, showDoubleView, calendarType: "gregory", minDate, maxDate, tileDisabled, selectRange: type === "date-range-picker", returnValue: type === "date-range-picker" ? "range" : "start", formatMonthYear: formatMonthYearLabel, prevLabel: /* @__PURE__ */ jsxRuntime.jsx(ChevronLeft, { "aria-hidden": true, className: "size-4", strokeWidth: 2.25 }), nextLabel: /* @__PURE__ */ jsxRuntime.jsx(chevronRight.ChevronRight, { "aria-hidden": true, className: "size-4", strokeWidth: 2.25 }), prevAriaLabel: locale === "es" ? "Mes anterior" : "Previous month", nextAriaLabel: locale === "es" ? "Mes siguiente" : "Next month", tileContent })
1048
1153
  ] })
1049
1154
  ] }), positions: ["bottom", "top"], reposition: true, onClickOutside: handleCloseCalendar, clickOutsideCapture: true, children: /* @__PURE__ */ jsxRuntime.jsxs(CalendarStyle, { color, className: tailwindMerge.twMerge(classNameContainer, "relative date-picker-component-container"), onClick: handleOpenCalendar, showcalendar: show.toString(), id: uui, widthcalendar: inputRef.current, showdoubleview: showDoubleView.toString(), error, size, radius, children: [
1050
1155
  label && /* @__PURE__ */ jsxRuntime.jsxs("label", { htmlFor: resolvedId, className: labelClass, children: [