@moeve-ui/ui 0.1.3 → 0.2.1

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/dist/index.mjs CHANGED
@@ -101,6 +101,21 @@ function CheckCircleIcon(props) {
101
101
  /* @__PURE__ */ jsx("path", { d: "m8.5 12.5 2.5 2.5 5-5" })
102
102
  ] });
103
103
  }
104
+ function CalendarIcon(props) {
105
+ return /* @__PURE__ */ jsxs("svg", { ...base, stroke: "currentColor", ...props, children: [
106
+ /* @__PURE__ */ jsx("rect", { x: "3", y: "5", width: "18", height: "16", rx: "2" }),
107
+ /* @__PURE__ */ jsx("line", { x1: "3", y1: "10", x2: "21", y2: "10" }),
108
+ /* @__PURE__ */ jsx("line", { x1: "8", y1: "3", x2: "8", y2: "7" }),
109
+ /* @__PURE__ */ jsx("line", { x1: "16", y1: "3", x2: "16", y2: "7" })
110
+ ] });
111
+ }
112
+ function UploadIcon(props) {
113
+ return /* @__PURE__ */ jsxs("svg", { ...base, stroke: "currentColor", ...props, children: [
114
+ /* @__PURE__ */ jsx("path", { d: "M12 16V4" }),
115
+ /* @__PURE__ */ jsx("path", { d: "m7 9 5-5 5 5" }),
116
+ /* @__PURE__ */ jsx("path", { d: "M4 16v3a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-3" })
117
+ ] });
118
+ }
104
119
  function XIcon(props) {
105
120
  return /* @__PURE__ */ jsxs("svg", { ...base, stroke: "currentColor", ...props, children: [
106
121
  /* @__PURE__ */ jsx("path", { d: "M18 6 6 18" }),
@@ -485,8 +500,126 @@ function MiniMapCard({ overlayTitle, overlayLinkLabel, competitorCount }) {
485
500
  ] });
486
501
  }
487
502
 
503
+ // src/molecules/WeekdayPicker/WeekdayPicker.tsx
504
+ import { jsx as jsx13 } from "react/jsx-runtime";
505
+ function WeekdayPicker({ labels, selected, onToggle, className = "" }) {
506
+ return /* @__PURE__ */ jsx13("div", { role: "group", className: `flex flex-wrap gap-2 ${className}`.trim(), children: labels.map((label, day) => {
507
+ const active = selected.includes(day);
508
+ return /* @__PURE__ */ jsx13(
509
+ "button",
510
+ {
511
+ type: "button",
512
+ "aria-pressed": active,
513
+ onClick: () => onToggle(day),
514
+ className: `flex h-10 w-10 items-center justify-center rounded-full border text-xs font-semibold transition-colors ${active ? "border-brand-primary bg-brand-primary text-white" : "border-border text-text-secondary hover:bg-surface-subtle"}`,
515
+ children: label
516
+ },
517
+ day
518
+ );
519
+ }) });
520
+ }
521
+
522
+ // src/molecules/SelectableCard/SelectableCard.tsx
523
+ import { jsx as jsx14, jsxs as jsxs10 } from "react/jsx-runtime";
524
+ function SelectableCard({ icon, title, subtitle, media, selected = false, onClick, className = "" }) {
525
+ const base2 = `w-full rounded-xl border text-left transition-colors ${selected ? "border-brand-primary bg-brand-primary/5" : "border-border hover:bg-surface-subtle"} ${className}`.trim();
526
+ if (media) {
527
+ return /* @__PURE__ */ jsxs10("button", { type: "button", "aria-pressed": selected, onClick, className: `overflow-hidden ${base2}`, children: [
528
+ /* @__PURE__ */ jsx14("div", { className: "h-36 w-full overflow-hidden", children: media }),
529
+ /* @__PURE__ */ jsxs10("div", { className: "flex items-center gap-3 p-4", children: [
530
+ icon && /* @__PURE__ */ jsx14(
531
+ "span",
532
+ {
533
+ className: `flex h-8 w-8 shrink-0 items-center justify-center rounded-full ${selected ? "bg-brand-primary text-white" : "bg-surface-muted text-text-secondary"}`,
534
+ children: icon
535
+ }
536
+ ),
537
+ /* @__PURE__ */ jsxs10("span", { className: "flex flex-col", children: [
538
+ /* @__PURE__ */ jsx14("span", { className: "font-medium text-text-primary", children: title }),
539
+ subtitle && /* @__PURE__ */ jsx14("span", { className: "text-sm text-text-tertiary", children: subtitle })
540
+ ] })
541
+ ] })
542
+ ] });
543
+ }
544
+ return /* @__PURE__ */ jsxs10("button", { type: "button", "aria-pressed": selected, onClick, className: `flex items-center gap-3 p-4 ${base2}`, children: [
545
+ icon && /* @__PURE__ */ jsx14(
546
+ "span",
547
+ {
548
+ className: `flex h-10 w-10 shrink-0 items-center justify-center rounded-full ${selected ? "bg-brand-primary text-white" : "bg-surface-muted text-text-secondary"}`,
549
+ children: icon
550
+ }
551
+ ),
552
+ /* @__PURE__ */ jsxs10("span", { className: "flex flex-col", children: [
553
+ /* @__PURE__ */ jsx14("span", { className: "font-medium text-text-primary", children: title }),
554
+ subtitle && /* @__PURE__ */ jsx14("span", { className: "text-sm text-text-tertiary", children: subtitle })
555
+ ] })
556
+ ] });
557
+ }
558
+
559
+ // src/molecules/FileDropzone/FileDropzone.tsx
560
+ import { useRef, useState } from "react";
561
+ import { Fragment, jsx as jsx15, jsxs as jsxs11 } from "react/jsx-runtime";
562
+ function FileDropzone({
563
+ accept,
564
+ onFileSelected,
565
+ selectedFileName,
566
+ label = "Arrastra tu archivo aqu\xED, o haz clic para elegirlo",
567
+ hint,
568
+ className = ""
569
+ }) {
570
+ const inputRef = useRef(null);
571
+ const [dragActive, setDragActive] = useState(false);
572
+ function openPicker() {
573
+ inputRef.current?.click();
574
+ }
575
+ function handleKeyDown(e) {
576
+ if (e.key === "Enter" || e.key === " ") {
577
+ e.preventDefault();
578
+ openPicker();
579
+ }
580
+ }
581
+ function handleDrop(e) {
582
+ e.preventDefault();
583
+ setDragActive(false);
584
+ onFileSelected(e.dataTransfer.files?.[0] ?? null);
585
+ }
586
+ return /* @__PURE__ */ jsxs11(
587
+ "div",
588
+ {
589
+ role: "button",
590
+ tabIndex: 0,
591
+ onClick: openPicker,
592
+ onKeyDown: handleKeyDown,
593
+ onDragOver: (e) => {
594
+ e.preventDefault();
595
+ setDragActive(true);
596
+ },
597
+ onDragLeave: () => setDragActive(false),
598
+ onDrop: handleDrop,
599
+ className: `flex cursor-pointer flex-col items-center justify-center gap-2 rounded-xl border-2 border-dashed px-6 py-8 text-center transition-colors ${dragActive ? "border-brand-primary bg-brand-primary/5" : "border-border hover:border-brand-primary/60"} ${className}`.trim(),
600
+ children: [
601
+ /* @__PURE__ */ jsx15(
602
+ "input",
603
+ {
604
+ ref: inputRef,
605
+ type: "file",
606
+ accept,
607
+ className: "hidden",
608
+ onChange: (e) => onFileSelected(e.target.files?.[0] ?? null)
609
+ }
610
+ ),
611
+ /* @__PURE__ */ jsx15(UploadIcon, { className: `size-6 ${dragActive ? "text-brand-primary" : "text-text-tertiary"}` }),
612
+ selectedFileName ? /* @__PURE__ */ jsx15("p", { className: "text-sm font-medium text-text-primary", children: selectedFileName }) : /* @__PURE__ */ jsxs11(Fragment, { children: [
613
+ /* @__PURE__ */ jsx15("p", { className: "text-sm font-medium text-text-primary", children: label }),
614
+ hint && /* @__PURE__ */ jsx15("p", { className: "text-xs text-text-tertiary", children: hint })
615
+ ] })
616
+ ]
617
+ }
618
+ );
619
+ }
620
+
488
621
  // src/organisms/Sidebar/Sidebar.tsx
489
- import { jsx as jsx13, jsxs as jsxs10 } from "react/jsx-runtime";
622
+ import { jsx as jsx16, jsxs as jsxs12 } from "react/jsx-runtime";
490
623
  function Sidebar({
491
624
  brandName = "Redinamic",
492
625
  stations,
@@ -496,43 +629,43 @@ function Sidebar({
496
629
  user,
497
630
  onLogout
498
631
  }) {
499
- return /* @__PURE__ */ jsxs10("aside", { className: "fixed left-0 top-0 flex h-screen w-[260px] flex-col justify-between bg-brand-sidebar pb-2 pt-8", children: [
500
- /* @__PURE__ */ jsxs10("div", { className: "flex flex-col gap-6 px-4 pb-6", children: [
501
- /* @__PURE__ */ jsxs10("div", { className: "flex items-center gap-3 px-2", children: [
502
- /* @__PURE__ */ jsx13("div", { className: "flex size-8 items-center justify-center rounded bg-brand-logo", children: /* @__PURE__ */ jsx13(BoltIcon, { className: "size-4 text-brand-sidebar" }) }),
503
- /* @__PURE__ */ jsx13("span", { className: "text-2xl font-semibold tracking-tight text-white", children: brandName })
632
+ return /* @__PURE__ */ jsxs12("aside", { className: "fixed left-0 top-0 flex h-screen w-[260px] flex-col justify-between bg-brand-sidebar pb-2 pt-8", children: [
633
+ /* @__PURE__ */ jsxs12("div", { className: "flex flex-col gap-6 px-4 pb-6", children: [
634
+ /* @__PURE__ */ jsxs12("div", { className: "flex items-center gap-3 px-2", children: [
635
+ /* @__PURE__ */ jsx16("div", { className: "flex size-8 items-center justify-center rounded bg-brand-logo", children: /* @__PURE__ */ jsx16(BoltIcon, { className: "size-4 text-brand-sidebar" }) }),
636
+ /* @__PURE__ */ jsx16("span", { className: "text-2xl font-semibold tracking-tight text-white", children: brandName })
504
637
  ] }),
505
- /* @__PURE__ */ jsxs10("div", { className: "relative", children: [
506
- /* @__PURE__ */ jsx13(MapPinIcon, { className: "pointer-events-none absolute left-4 top-1/2 size-4 -translate-y-1/2 text-white" }),
507
- /* @__PURE__ */ jsx13(
638
+ /* @__PURE__ */ jsxs12("div", { className: "relative", children: [
639
+ /* @__PURE__ */ jsx16(MapPinIcon, { className: "pointer-events-none absolute left-4 top-1/2 size-4 -translate-y-1/2 text-white" }),
640
+ /* @__PURE__ */ jsx16(
508
641
  "select",
509
642
  {
510
643
  value: selectedStationId,
511
644
  onChange: (event) => onSelectStation(event.target.value),
512
645
  className: "w-full appearance-none rounded-xl border border-white/10 bg-white/10 py-2.5 pl-10 pr-9 text-sm font-semibold text-white outline-none",
513
- children: stations.map((station) => /* @__PURE__ */ jsx13("option", { value: station.id, className: "text-text-primary", children: station.label }, station.id))
646
+ children: stations.map((station) => /* @__PURE__ */ jsx16("option", { value: station.id, className: "text-text-primary", children: station.label }, station.id))
514
647
  }
515
648
  ),
516
- /* @__PURE__ */ jsx13(ChevronDownIcon, { className: "pointer-events-none absolute right-3 top-1/2 size-3 -translate-y-1/2 text-white" })
649
+ /* @__PURE__ */ jsx16(ChevronDownIcon, { className: "pointer-events-none absolute right-3 top-1/2 size-3 -translate-y-1/2 text-white" })
517
650
  ] })
518
651
  ] }),
519
- /* @__PURE__ */ jsx13("nav", { className: "flex flex-1 flex-col gap-1 px-4", children: navItems.map((item) => /* @__PURE__ */ jsx13(NavItem, { icon: item.icon, label: item.label, active: item.active, href: item.href }, item.key)) }),
520
- /* @__PURE__ */ jsxs10("div", { className: "border-t border-white/10 px-4 pt-4", children: [
521
- /* @__PURE__ */ jsxs10("div", { className: "flex items-center gap-3 px-4 py-3", children: [
522
- /* @__PURE__ */ jsx13(Avatar, { className: "bg-brand-primary text-white", children: /* @__PURE__ */ jsx13(UserCircleIcon, { className: "size-4" }) }),
523
- /* @__PURE__ */ jsxs10("div", { children: [
524
- /* @__PURE__ */ jsx13("p", { className: "text-sm font-semibold text-white", children: user.name }),
525
- /* @__PURE__ */ jsx13("p", { className: "text-xs text-white/60", children: user.role })
652
+ /* @__PURE__ */ jsx16("nav", { className: "flex flex-1 flex-col gap-1 px-4", children: navItems.map((item) => /* @__PURE__ */ jsx16(NavItem, { icon: item.icon, label: item.label, active: item.active, href: item.href }, item.key)) }),
653
+ /* @__PURE__ */ jsxs12("div", { className: "border-t border-white/10 px-4 pt-4", children: [
654
+ /* @__PURE__ */ jsxs12("div", { className: "flex items-center gap-3 px-4 py-3", children: [
655
+ /* @__PURE__ */ jsx16(Avatar, { className: "bg-brand-primary text-white", children: /* @__PURE__ */ jsx16(UserCircleIcon, { className: "size-4" }) }),
656
+ /* @__PURE__ */ jsxs12("div", { children: [
657
+ /* @__PURE__ */ jsx16("p", { className: "text-sm font-semibold text-white", children: user.name }),
658
+ /* @__PURE__ */ jsx16("p", { className: "text-xs text-white/60", children: user.role })
526
659
  ] })
527
660
  ] }),
528
- /* @__PURE__ */ jsxs10(
661
+ /* @__PURE__ */ jsxs12(
529
662
  "button",
530
663
  {
531
664
  type: "button",
532
665
  onClick: onLogout,
533
666
  className: "flex w-full items-center gap-3 rounded-lg px-4 py-2 text-sm font-semibold text-white/50 transition-colors hover:text-white/80",
534
667
  children: [
535
- /* @__PURE__ */ jsx13(LogOutIcon, { className: "size-4" }),
668
+ /* @__PURE__ */ jsx16(LogOutIcon, { className: "size-4" }),
536
669
  "Cerrar Sesi\xF3n"
537
670
  ]
538
671
  }
@@ -542,7 +675,7 @@ function Sidebar({
542
675
  }
543
676
 
544
677
  // src/organisms/TopBar/TopBar.tsx
545
- import { jsx as jsx14, jsxs as jsxs11 } from "react/jsx-runtime";
678
+ import { jsx as jsx17, jsxs as jsxs13 } from "react/jsx-runtime";
546
679
  function TopBar({
547
680
  stationName,
548
681
  lastUpdatedLabel,
@@ -550,36 +683,36 @@ function TopBar({
550
683
  refreshing = false,
551
684
  middleContent
552
685
  }) {
553
- return /* @__PURE__ */ jsxs11("header", { className: "fixed left-[260px] right-0 top-0 z-10 flex h-20 items-center justify-between gap-4 bg-surface-page/80 px-6 shadow-header backdrop-blur-md", children: [
554
- /* @__PURE__ */ jsxs11("div", { className: "shrink-0", children: [
555
- /* @__PURE__ */ jsxs11("div", { className: "flex items-center gap-2", children: [
556
- /* @__PURE__ */ jsx14(MapPinIcon, { className: "size-4 text-text-primary" }),
557
- /* @__PURE__ */ jsx14("span", { className: "text-sm font-semibold text-text-primary", children: stationName })
686
+ return /* @__PURE__ */ jsxs13("header", { className: "fixed left-[260px] right-0 top-0 z-10 flex h-20 items-center justify-between gap-4 bg-surface-page/80 px-6 shadow-header backdrop-blur-md", children: [
687
+ /* @__PURE__ */ jsxs13("div", { className: "shrink-0", children: [
688
+ /* @__PURE__ */ jsxs13("div", { className: "flex items-center gap-2", children: [
689
+ /* @__PURE__ */ jsx17(MapPinIcon, { className: "size-4 text-text-primary" }),
690
+ /* @__PURE__ */ jsx17("span", { className: "text-sm font-semibold text-text-primary", children: stationName })
558
691
  ] }),
559
- /* @__PURE__ */ jsxs11("div", { className: "mt-1 flex items-center gap-2", children: [
560
- /* @__PURE__ */ jsx14("span", { className: "size-2 rounded-full bg-success-dark" }),
561
- /* @__PURE__ */ jsx14("span", { className: "text-xs font-medium text-text-secondary", children: lastUpdatedLabel })
692
+ /* @__PURE__ */ jsxs13("div", { className: "mt-1 flex items-center gap-2", children: [
693
+ /* @__PURE__ */ jsx17("span", { className: "size-2 rounded-full bg-success-dark" }),
694
+ /* @__PURE__ */ jsx17("span", { className: "text-xs font-medium text-text-secondary", children: lastUpdatedLabel })
562
695
  ] })
563
696
  ] }),
564
697
  middleContent,
565
- /* @__PURE__ */ jsxs11("div", { className: "flex shrink-0 items-center gap-4", children: [
566
- /* @__PURE__ */ jsx14(
698
+ /* @__PURE__ */ jsxs13("div", { className: "flex shrink-0 items-center gap-4", children: [
699
+ /* @__PURE__ */ jsx17(
567
700
  Button,
568
701
  {
569
702
  variant: "primary",
570
- icon: /* @__PURE__ */ jsx14(RefreshIcon, { className: `size-4 ${refreshing ? "animate-spin" : ""}` }),
703
+ icon: /* @__PURE__ */ jsx17(RefreshIcon, { className: `size-4 ${refreshing ? "animate-spin" : ""}` }),
571
704
  onClick: onRefresh,
572
705
  disabled: refreshing,
573
706
  children: "Actualizar datos"
574
707
  }
575
708
  ),
576
- /* @__PURE__ */ jsx14(Avatar, { className: "bg-brand-primary text-white", size: "sm", children: /* @__PURE__ */ jsx14(UserCircleIcon, { className: "size-4" }) })
709
+ /* @__PURE__ */ jsx17(Avatar, { className: "bg-brand-primary text-white", size: "sm", children: /* @__PURE__ */ jsx17(UserCircleIcon, { className: "size-4" }) })
577
710
  ] })
578
711
  ] });
579
712
  }
580
713
 
581
714
  // src/organisms/ConfirmDialog/ConfirmDialog.tsx
582
- import { jsx as jsx15, jsxs as jsxs12 } from "react/jsx-runtime";
715
+ import { jsx as jsx18, jsxs as jsxs14 } from "react/jsx-runtime";
583
716
  function ConfirmDialog({
584
717
  open,
585
718
  onClose,
@@ -594,49 +727,49 @@ function ConfirmDialog({
594
727
  confirming = false
595
728
  }) {
596
729
  if (!open) return null;
597
- return /* @__PURE__ */ jsx15("div", { className: "fixed inset-0 z-50 flex items-center justify-center bg-black/40 p-4", children: /* @__PURE__ */ jsxs12("div", { className: "w-full max-w-md overflow-hidden rounded-2xl bg-white shadow-modal", children: [
598
- /* @__PURE__ */ jsxs12("div", { className: "relative flex items-center justify-center bg-gradient-to-r from-brand-primary to-info-dark py-8", children: [
599
- /* @__PURE__ */ jsx15(
730
+ return /* @__PURE__ */ jsx18("div", { className: "fixed inset-0 z-50 flex items-center justify-center bg-black/40 p-4", children: /* @__PURE__ */ jsxs14("div", { className: "w-full max-w-md overflow-hidden rounded-2xl bg-white shadow-modal", children: [
731
+ /* @__PURE__ */ jsxs14("div", { className: "relative flex items-center justify-center bg-gradient-to-r from-brand-primary to-info-dark py-8", children: [
732
+ /* @__PURE__ */ jsx18(
600
733
  "button",
601
734
  {
602
735
  type: "button",
603
736
  onClick: onClose,
604
737
  "aria-label": "Cerrar",
605
738
  className: "absolute right-4 top-4 text-white/80 hover:text-white",
606
- children: /* @__PURE__ */ jsx15(XIcon, { className: "size-5" })
739
+ children: /* @__PURE__ */ jsx18(XIcon, { className: "size-5" })
607
740
  }
608
741
  ),
609
- /* @__PURE__ */ jsx15("div", { className: "flex size-14 items-center justify-center rounded-full bg-white text-brand-primary", children: /* @__PURE__ */ jsx15(WalletIcon, { className: "size-6" }) })
742
+ /* @__PURE__ */ jsx18("div", { className: "flex size-14 items-center justify-center rounded-full bg-white text-brand-primary", children: /* @__PURE__ */ jsx18(WalletIcon, { className: "size-6" }) })
610
743
  ] }),
611
- /* @__PURE__ */ jsxs12("div", { className: "flex flex-col items-center gap-3 px-8 py-6 text-center", children: [
612
- /* @__PURE__ */ jsx15("h2", { className: "text-xl font-bold text-text-primary", children: title }),
613
- /* @__PURE__ */ jsx15("span", { className: "rounded-full bg-surface-muted px-3 py-1 text-xs font-semibold text-text-secondary", children: productLabel }),
614
- /* @__PURE__ */ jsx15("p", { className: "text-sm text-text-secondary", children: description }),
615
- /* @__PURE__ */ jsxs12("div", { className: "mt-2 flex w-full items-center justify-between rounded-xl bg-surface-subtle p-4", children: [
616
- /* @__PURE__ */ jsxs12("div", { className: "text-left", children: [
617
- /* @__PURE__ */ jsx15("p", { className: "text-xs uppercase text-text-secondary", children: "Actual" }),
618
- /* @__PURE__ */ jsx15("p", { className: "text-lg font-semibold text-text-tertiary line-through", children: currentPrice })
744
+ /* @__PURE__ */ jsxs14("div", { className: "flex flex-col items-center gap-3 px-8 py-6 text-center", children: [
745
+ /* @__PURE__ */ jsx18("h2", { className: "text-xl font-bold text-text-primary", children: title }),
746
+ /* @__PURE__ */ jsx18("span", { className: "rounded-full bg-surface-muted px-3 py-1 text-xs font-semibold text-text-secondary", children: productLabel }),
747
+ /* @__PURE__ */ jsx18("p", { className: "text-sm text-text-secondary", children: description }),
748
+ /* @__PURE__ */ jsxs14("div", { className: "mt-2 flex w-full items-center justify-between rounded-xl bg-surface-subtle p-4", children: [
749
+ /* @__PURE__ */ jsxs14("div", { className: "text-left", children: [
750
+ /* @__PURE__ */ jsx18("p", { className: "text-xs uppercase text-text-secondary", children: "Actual" }),
751
+ /* @__PURE__ */ jsx18("p", { className: "text-lg font-semibold text-text-tertiary line-through", children: currentPrice })
619
752
  ] }),
620
- /* @__PURE__ */ jsx15("span", { className: "text-text-secondary", children: "\u2192" }),
621
- /* @__PURE__ */ jsxs12("div", { className: "text-right", children: [
622
- /* @__PURE__ */ jsx15("p", { className: "text-xs uppercase text-success-dark", children: "Recomendado" }),
623
- /* @__PURE__ */ jsx15("p", { className: "text-lg font-semibold text-brand-primary", children: newPrice })
753
+ /* @__PURE__ */ jsx18("span", { className: "text-text-secondary", children: "\u2192" }),
754
+ /* @__PURE__ */ jsxs14("div", { className: "text-right", children: [
755
+ /* @__PURE__ */ jsx18("p", { className: "text-xs uppercase text-success-dark", children: "Recomendado" }),
756
+ /* @__PURE__ */ jsx18("p", { className: "text-lg font-semibold text-brand-primary", children: newPrice })
624
757
  ] })
625
758
  ] }),
626
- /* @__PURE__ */ jsxs12("div", { className: "flex w-full items-center justify-between text-sm", children: [
627
- /* @__PURE__ */ jsxs12("div", { className: "text-left", children: [
628
- /* @__PURE__ */ jsx15("p", { className: "text-xs text-text-secondary", children: "Impacto en Margen" }),
629
- /* @__PURE__ */ jsx15("p", { className: "font-semibold text-success-dark", children: marginImpactLabel })
759
+ /* @__PURE__ */ jsxs14("div", { className: "flex w-full items-center justify-between text-sm", children: [
760
+ /* @__PURE__ */ jsxs14("div", { className: "text-left", children: [
761
+ /* @__PURE__ */ jsx18("p", { className: "text-xs text-text-secondary", children: "Impacto en Margen" }),
762
+ /* @__PURE__ */ jsx18("p", { className: "font-semibold text-success-dark", children: marginImpactLabel })
630
763
  ] }),
631
- /* @__PURE__ */ jsxs12("div", { className: "text-right", children: [
632
- /* @__PURE__ */ jsx15("p", { className: "text-xs text-text-secondary", children: "Volumen Estimado" }),
633
- /* @__PURE__ */ jsx15("p", { className: "font-semibold text-success-dark", children: volumeImpactLabel })
764
+ /* @__PURE__ */ jsxs14("div", { className: "text-right", children: [
765
+ /* @__PURE__ */ jsx18("p", { className: "text-xs text-text-secondary", children: "Volumen Estimado" }),
766
+ /* @__PURE__ */ jsx18("p", { className: "font-semibold text-success-dark", children: volumeImpactLabel })
634
767
  ] })
635
768
  ] })
636
769
  ] }),
637
- /* @__PURE__ */ jsxs12("div", { className: "flex items-center justify-end gap-4 border-t border-border px-8 py-4", children: [
638
- /* @__PURE__ */ jsx15(Button, { variant: "text", onClick: onClose, children: "Cancelar" }),
639
- /* @__PURE__ */ jsx15(Button, { variant: "primary", onClick: onConfirm, disabled: confirming, children: confirming ? "Aplicando..." : "Confirmar y aplicar" })
770
+ /* @__PURE__ */ jsxs14("div", { className: "flex items-center justify-end gap-4 border-t border-border px-8 py-4", children: [
771
+ /* @__PURE__ */ jsx18(Button, { variant: "text", onClick: onClose, children: "Cancelar" }),
772
+ /* @__PURE__ */ jsx18(Button, { variant: "primary", onClick: onConfirm, disabled: confirming, children: confirming ? "Aplicando..." : "Confirmar y aplicar" })
640
773
  ] })
641
774
  ] }) });
642
775
  }
@@ -647,12 +780,14 @@ export {
647
780
  Badge,
648
781
  BoltIcon,
649
782
  Button,
783
+ CalendarIcon,
650
784
  Card,
651
785
  CheckCircleIcon,
652
786
  ChevronDownIcon,
653
787
  CompetitorRow,
654
788
  ConfirmDialog,
655
789
  DecisionFactorRow,
790
+ FileDropzone,
656
791
  FuelIcon,
657
792
  FuelPumpSolidIcon,
658
793
  LogOutIcon,
@@ -663,6 +798,7 @@ export {
663
798
  ProgressBar,
664
799
  RefreshIcon,
665
800
  SegmentedTabs,
801
+ SelectableCard,
666
802
  Sidebar,
667
803
  Snackbar,
668
804
  StatTile,
@@ -672,9 +808,11 @@ export {
672
808
  TrendDownIcon,
673
809
  TrendUpIcon,
674
810
  TrendUpSolidIcon,
811
+ UploadIcon,
675
812
  UserCircleIcon,
676
813
  WalletIcon,
677
814
  WalletSolidIcon,
815
+ WeekdayPicker,
678
816
  XIcon,
679
817
  colors
680
818
  };