componentes-sinco 1.0.8 → 1.0.10-rc.0

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.d.cts CHANGED
@@ -501,8 +501,28 @@ interface SCTimeProps {
501
501
  }
502
502
  declare const SCTime: ({ label, required, disabled, background, timeStep, state, setState, }: SCTimeProps) => React__default.JSX.Element;
503
503
 
504
+ interface SCCardProps {
505
+ title?: string;
506
+ subtitle?: string;
507
+ iconTitle?: React__default.ReactNode | React__default.ReactElement | keyof typeof Muicon;
508
+ actionsTitle?: any;
509
+ image?: any;
510
+ content?: any;
511
+ actions?: {
512
+ text?: string;
513
+ fn: () => void;
514
+ disabled?: boolean;
515
+ }[];
516
+ expand?: {
517
+ type?: 'icon' | 'text';
518
+ position?: 'top' | 'bottom';
519
+ content?: string;
520
+ };
521
+ }
522
+ declare const SCCard: ({ title, image, iconTitle, actionsTitle, subtitle, content, actions, expand }: SCCardProps) => React__default.JSX.Element;
523
+
504
524
  declare const SincoTheme: _mui_material_styles.Theme;
505
525
  declare let AdproSincoTheme: _mui_material_styles.Theme;
506
526
  declare let ADCSincoTheme: _mui_material_styles.Theme;
507
527
 
508
- export { ADCSincoTheme, AdproSincoTheme, Calendar, type CalendarEvent, type CalendarProps, type CalendarView, EmptyState, type EmptyStateProperties, type EmptyStateSize, type EmptyStateStates, FooterAction, type FooterActionsProperties, type ModalProps, type ModalStates, MultiSelect, type MultiSelectProps, PageHeader, type PageheaderProperties, type ReplyPalette$1 as ReplyPalette, type ReplyTextPalette, type ReplyVariants, type RepplyButtonVariants, SCAutocomplete, SCCalendarSwipeable, SCDataGrid, SCDataGridInitial, SCDateRange, SCDialog, SCDrawer, SCMenu, SCModal, SCSelect, SCTabs, SCTextArea, type SCTextAreaProps, SCTextField, type SCTextFieldProps, SCTime, SCToastNotification, SincoTheme, type ToastBaseProperties, ToastProgress, type ToastType, capitalize, getButtonColor, getIcon, getIconComponent, getIconMultiSelect, getModalColor, modalStateConfig, useFilteredItems, useMultiSelectHandlers, useProgress };
528
+ export { ADCSincoTheme, AdproSincoTheme, Calendar, type CalendarEvent, type CalendarProps, type CalendarView, EmptyState, type EmptyStateProperties, type EmptyStateSize, type EmptyStateStates, FooterAction, type FooterActionsProperties, type ModalProps, type ModalStates, MultiSelect, type MultiSelectProps, PageHeader, type PageheaderProperties, type ReplyPalette$1 as ReplyPalette, type ReplyTextPalette, type ReplyVariants, type RepplyButtonVariants, SCAutocomplete, SCCalendarSwipeable, SCCard, SCDataGrid, SCDataGridInitial, SCDateRange, SCDialog, SCDrawer, SCMenu, SCModal, SCSelect, SCTabs, SCTextArea, type SCTextAreaProps, SCTextField, type SCTextFieldProps, SCTime, SCToastNotification, SincoTheme, type ToastBaseProperties, ToastProgress, type ToastType, capitalize, getButtonColor, getIcon, getIconComponent, getIconMultiSelect, getModalColor, modalStateConfig, useFilteredItems, useMultiSelectHandlers, useProgress };
package/dist/index.d.ts CHANGED
@@ -501,8 +501,28 @@ interface SCTimeProps {
501
501
  }
502
502
  declare const SCTime: ({ label, required, disabled, background, timeStep, state, setState, }: SCTimeProps) => React__default.JSX.Element;
503
503
 
504
+ interface SCCardProps {
505
+ title?: string;
506
+ subtitle?: string;
507
+ iconTitle?: React__default.ReactNode | React__default.ReactElement | keyof typeof Muicon;
508
+ actionsTitle?: any;
509
+ image?: any;
510
+ content?: any;
511
+ actions?: {
512
+ text?: string;
513
+ fn: () => void;
514
+ disabled?: boolean;
515
+ }[];
516
+ expand?: {
517
+ type?: 'icon' | 'text';
518
+ position?: 'top' | 'bottom';
519
+ content?: string;
520
+ };
521
+ }
522
+ declare const SCCard: ({ title, image, iconTitle, actionsTitle, subtitle, content, actions, expand }: SCCardProps) => React__default.JSX.Element;
523
+
504
524
  declare const SincoTheme: _mui_material_styles.Theme;
505
525
  declare let AdproSincoTheme: _mui_material_styles.Theme;
506
526
  declare let ADCSincoTheme: _mui_material_styles.Theme;
507
527
 
508
- export { ADCSincoTheme, AdproSincoTheme, Calendar, type CalendarEvent, type CalendarProps, type CalendarView, EmptyState, type EmptyStateProperties, type EmptyStateSize, type EmptyStateStates, FooterAction, type FooterActionsProperties, type ModalProps, type ModalStates, MultiSelect, type MultiSelectProps, PageHeader, type PageheaderProperties, type ReplyPalette$1 as ReplyPalette, type ReplyTextPalette, type ReplyVariants, type RepplyButtonVariants, SCAutocomplete, SCCalendarSwipeable, SCDataGrid, SCDataGridInitial, SCDateRange, SCDialog, SCDrawer, SCMenu, SCModal, SCSelect, SCTabs, SCTextArea, type SCTextAreaProps, SCTextField, type SCTextFieldProps, SCTime, SCToastNotification, SincoTheme, type ToastBaseProperties, ToastProgress, type ToastType, capitalize, getButtonColor, getIcon, getIconComponent, getIconMultiSelect, getModalColor, modalStateConfig, useFilteredItems, useMultiSelectHandlers, useProgress };
528
+ export { ADCSincoTheme, AdproSincoTheme, Calendar, type CalendarEvent, type CalendarProps, type CalendarView, EmptyState, type EmptyStateProperties, type EmptyStateSize, type EmptyStateStates, FooterAction, type FooterActionsProperties, type ModalProps, type ModalStates, MultiSelect, type MultiSelectProps, PageHeader, type PageheaderProperties, type ReplyPalette$1 as ReplyPalette, type ReplyTextPalette, type ReplyVariants, type RepplyButtonVariants, SCAutocomplete, SCCalendarSwipeable, SCCard, SCDataGrid, SCDataGridInitial, SCDateRange, SCDialog, SCDrawer, SCMenu, SCModal, SCSelect, SCTabs, SCTextArea, type SCTextAreaProps, SCTextField, type SCTextFieldProps, SCTime, SCToastNotification, SincoTheme, type ToastBaseProperties, ToastProgress, type ToastType, capitalize, getButtonColor, getIcon, getIconComponent, getIconMultiSelect, getModalColor, modalStateConfig, useFilteredItems, useMultiSelectHandlers, useProgress };
package/dist/index.js CHANGED
@@ -2804,7 +2804,7 @@ var SCTabs = ({ options, defaultOption, typeIcon, background, iconPosition, colo
2804
2804
  };
2805
2805
 
2806
2806
  // src/Components/Calendario/Calendar.tsx
2807
- import React25, { useState as useState12 } from "react";
2807
+ import React26, { useState as useState12 } from "react";
2808
2808
  import { Box as Box19, CircularProgress as CircularProgress4 } from "@mui/material";
2809
2809
 
2810
2810
  // src/Components/Calendario/CalendarToolbar.tsx
@@ -2841,7 +2841,6 @@ var CalendarToolbar = ({
2841
2841
  };
2842
2842
  const getFormattedDate = () => {
2843
2843
  const sunday = labelDate.day(0);
2844
- const saturday = sunday.add(6, "day");
2845
2844
  if (view === "month") {
2846
2845
  const textMonth = labelDate.format("MMMM YYYY");
2847
2846
  return textMonth.charAt(0).toUpperCase() + textMonth.slice(1);
@@ -2976,7 +2975,7 @@ var CalendarEventCard = ({ event: event2, color, sx, onClick, onHover }) => {
2976
2975
  onMouseEnter: handlePopoverOpen,
2977
2976
  onMouseLeave: handlePopoverClose
2978
2977
  },
2979
- capitalize(event2.title)
2978
+ event2.title.charAt(0).toUpperCase() + event2.title.slice(1).toLowerCase()
2980
2979
  ),
2981
2980
  /* @__PURE__ */ React21.createElement(
2982
2981
  Popover4,
@@ -2996,7 +2995,7 @@ var CalendarEventCard = ({ event: event2, color, sx, onClick, onHover }) => {
2996
2995
  onClose: handlePopoverClose,
2997
2996
  disableRestoreFocus: true
2998
2997
  },
2999
- onHover ? onHover(event2) : /* @__PURE__ */ React21.createElement(Typography17, null, "Sin contenido")
2998
+ onHover ? onHover(event2) : " "
3000
2999
  )
3001
3000
  )
3002
3001
  );
@@ -3089,54 +3088,33 @@ var MonthView = ({ events, isLoading, onDayClick, onMoreClick, currentDate, onEv
3089
3088
  onHover: onEventHover
3090
3089
  }
3091
3090
  ))),
3092
- dayEvents.length > 2 && /* @__PURE__ */ React22.createElement(Stack10, { justifyContent: "flex-end", px: 1, pb: 0.5, onClick: (e) => e.stopPropagation() }, /* @__PURE__ */ React22.createElement(
3093
- SCDrawer,
3091
+ dayEvents.length > 2 && /* @__PURE__ */ React22.createElement(
3092
+ Stack10,
3094
3093
  {
3095
- width: "350px",
3096
- title: day.format("DD [de] MMMM YYYY"),
3097
- open: openDrawer,
3098
- buttonDrawer: { text: `+ ${dayEvents.length}` },
3099
- anchor: "right",
3100
- actions: false,
3101
- arrayElements: [{
3102
- component: (() => {
3103
- const [first, ...rest] = dayEvents;
3104
- return /* @__PURE__ */ React22.createElement(Box16, { display: "flex", width: "100%", flexDirection: "column", height: "100%", pr: 1.5 }, /* @__PURE__ */ React22.createElement(Typography18, { width: "100%", color: "text.secondary" }, " Proximo evento "), first && /* @__PURE__ */ React22.createElement(Box16, { p: 1, pb: 1, width: "100%" }, /* @__PURE__ */ React22.createElement(
3105
- CalendarEventCard,
3106
- {
3107
- event: first,
3108
- color: stateColors[first.state],
3109
- onClick: () => onEventClick == null ? void 0 : onEventClick(first, day),
3110
- sx: {
3111
- whiteSpace: "normal",
3112
- "& .MuiTypography-root": {
3113
- whiteSpace: "normal",
3114
- overflow: "visible",
3115
- textOverflow: "unset"
3116
- }
3117
- }
3118
- }
3119
- )), /* @__PURE__ */ React22.createElement(Divider6, { flexItem: true, sx: { width: "100%" } }), /* @__PURE__ */ React22.createElement(Typography18, { width: "100%", py: 1, color: "text.secondary" }, " Eventos restantes "), /* @__PURE__ */ React22.createElement(
3120
- Box16,
3121
- {
3122
- width: "100%",
3123
- height: "100%",
3124
- flex: 1,
3125
- overflow: "auto",
3126
- p: 1,
3127
- pt: 1,
3128
- display: "flex",
3129
- flexDirection: "column",
3130
- gap: 1.5
3131
- },
3132
- rest.map((event2) => /* @__PURE__ */ React22.createElement(
3094
+ justifyItems: "center",
3095
+ px: 1,
3096
+ pb: 0.5,
3097
+ onClick: (e) => e.stopPropagation(),
3098
+ sx: { "& .MuiButtonBase-root": { width: "100%" } }
3099
+ },
3100
+ /* @__PURE__ */ React22.createElement(
3101
+ SCDrawer,
3102
+ {
3103
+ width: "350px",
3104
+ title: day.format("DD [de] MMMM YYYY"),
3105
+ open: openDrawer,
3106
+ buttonDrawer: { text: `+ ${dayEvents.length}` },
3107
+ anchor: "right",
3108
+ actions: false,
3109
+ arrayElements: [{
3110
+ component: (() => {
3111
+ const [first, ...rest] = dayEvents;
3112
+ return /* @__PURE__ */ React22.createElement(Box16, { display: "flex", width: "100%", flexDirection: "column", height: "100%", pr: 1.5 }, /* @__PURE__ */ React22.createElement(Typography18, { width: "100%", color: "text.secondary" }, " Proximo evento "), first && /* @__PURE__ */ React22.createElement(Box16, { p: 1, pb: 1, width: "100%" }, /* @__PURE__ */ React22.createElement(
3133
3113
  CalendarEventCard,
3134
3114
  {
3135
- key: `${event2.id}-${day.toString()}`,
3136
- event: event2,
3137
- color: stateColors[event2.state],
3138
- onClick: () => onEventClick == null ? void 0 : onEventClick(event2, day),
3139
- onHover: onEventHover,
3115
+ event: first,
3116
+ color: stateColors[first.state],
3117
+ onClick: () => onEventClick == null ? void 0 : onEventClick(first, day),
3140
3118
  sx: {
3141
3119
  whiteSpace: "normal",
3142
3120
  "& .MuiTypography-root": {
@@ -3146,21 +3124,60 @@ var MonthView = ({ events, isLoading, onDayClick, onMoreClick, currentDate, onEv
3146
3124
  }
3147
3125
  }
3148
3126
  }
3149
- ))
3150
- ));
3151
- })()
3152
- }]
3153
- }
3154
- ))
3127
+ )), /* @__PURE__ */ React22.createElement(Divider6, { flexItem: true, sx: { width: "100%" } }), /* @__PURE__ */ React22.createElement(Typography18, { width: "100%", py: 1, color: "text.secondary" }, " Eventos restantes "), /* @__PURE__ */ React22.createElement(
3128
+ Box16,
3129
+ {
3130
+ width: "100%",
3131
+ height: "100%",
3132
+ flex: 1,
3133
+ overflow: "auto",
3134
+ p: 1,
3135
+ pt: 1,
3136
+ display: "flex",
3137
+ flexDirection: "column",
3138
+ gap: 1.5
3139
+ },
3140
+ rest.map((event2) => /* @__PURE__ */ React22.createElement(
3141
+ CalendarEventCard,
3142
+ {
3143
+ key: `${event2.id}-${day.toString()}`,
3144
+ event: event2,
3145
+ color: stateColors[event2.state],
3146
+ onClick: () => onEventClick == null ? void 0 : onEventClick(event2, day),
3147
+ onHover: onEventHover,
3148
+ sx: {
3149
+ whiteSpace: "normal",
3150
+ "& .MuiTypography-root": {
3151
+ whiteSpace: "normal",
3152
+ overflow: "visible",
3153
+ textOverflow: "unset"
3154
+ }
3155
+ }
3156
+ }
3157
+ ))
3158
+ ));
3159
+ })()
3160
+ }]
3161
+ }
3162
+ )
3163
+ )
3155
3164
  );
3156
3165
  }))));
3157
3166
  };
3158
3167
 
3159
3168
  // src/Components/Calendario/Views/WeekView.tsx
3160
- import React23 from "react";
3169
+ import React24 from "react";
3161
3170
  import { Box as Box17, CircularProgress as CircularProgress2, Typography as Typography19 } from "@mui/material";
3162
3171
  import dayjs5 from "dayjs";
3163
3172
  import localeData2 from "dayjs/plugin/localeData";
3173
+
3174
+ // src/assets/LogoCalendario.tsx
3175
+ import React23 from "react";
3176
+ var LogoCalendario = () => {
3177
+ return /* @__PURE__ */ React23.createElement("svg", { width: "60", height: "61", viewBox: "0 0 60 61", fill: "none", xmlns: "http://www.w3.org/2000/svg" }, /* @__PURE__ */ React23.createElement("g", { "clip-path": "url(#clip0_5353_24891)" }, /* @__PURE__ */ React23.createElement("path", { "fill-rule": "evenodd", "clip-rule": "evenodd", d: "M40.7361 11.1589C39.7792 11.1589 39.0106 11.9722 39.0106 12.9661V15.4375H20.0309V12.9661C20.0309 11.964 19.2545 11.1589 18.3055 11.1589C17.3487 11.1589 16.5801 11.9722 16.5801 12.9661V15.4375H12.8819C12.0652 15.4375 11.4038 16.0918 11.4038 16.8998V20.6551C11.4038 21.463 12.0652 22.1174 12.8819 22.1174H46.8383C47.655 22.1174 48.3165 21.463 48.3165 20.6551V16.8998C48.3165 16.0918 47.655 15.4375 46.8383 15.4375H42.4615V12.9661C42.4615 11.964 41.6851 11.1589 40.7361 11.1589ZM19.4827 19.2049C19.6528 19.1343 19.7361 19.006 19.7724 18.8352C19.6916 18.9714 19.594 19.0957 19.4827 19.2049Z", fill: "#00BCD4" }), /* @__PURE__ */ React23.createElement("path", { "fill-rule": "evenodd", "clip-rule": "evenodd", d: "M14.2037 25.8653C13.7579 25.8653 13.425 26.2168 13.425 26.6093V47.3669C13.425 47.7595 13.7579 48.1109 14.2037 48.1109H46.0004C46.4782 48.1109 46.8656 47.7236 46.8656 47.2458V26.6093C46.8656 26.2168 46.5327 25.8653 46.087 25.8653H14.2037ZM11.6948 26.6093C11.6948 25.2255 12.8384 24.135 14.2037 24.135H46.087C47.4522 24.135 48.5959 25.2255 48.5959 26.6093V47.2458C48.5959 48.6792 47.4339 49.8412 46.0004 49.8412H14.2037C12.8384 49.8412 11.6948 48.7508 11.6948 47.3669V26.6093Z", fill: "#6392BD" }), /* @__PURE__ */ React23.createElement("path", { d: "M19.481 30.9138C19.481 30.5164 20.1155 30.1903 20.9058 30.1903C21.6894 30.1903 22.3305 30.5131 22.3305 30.9138V32.8862C22.3305 33.2836 21.6894 33.6097 20.9058 33.6097C20.1222 33.6097 19.481 33.2869 19.481 32.8862V30.9138Z", fill: "#6392BD" }), /* @__PURE__ */ React23.createElement("path", { d: "M30.0242 30.1903C29.2339 30.1903 28.5995 30.5164 28.5995 30.9138V32.8862C28.5995 33.2869 29.2406 33.6097 30.0242 33.6097C30.8079 33.6097 31.449 33.2836 31.449 32.8862V30.9138C31.449 30.5131 30.8079 30.1903 30.0242 30.1903Z", fill: "#6392BD" }), /* @__PURE__ */ React23.createElement("path", { d: "M37.7179 30.9138C37.7179 30.5164 38.3524 30.1903 39.1427 30.1903C39.608 30.1903 40.022 30.3038 40.2825 30.4797C40.3515 30.5276 40.4116 30.5788 40.4561 30.6344C40.5274 30.7201 40.5675 30.8147 40.5675 30.9138V32.8862C40.5675 33.2836 39.9263 33.6097 39.1427 33.6097C38.3591 33.6097 37.7179 33.2869 37.7179 32.8862V30.9138Z", fill: "#6392BD" }), /* @__PURE__ */ React23.createElement("path", { d: "M20.9058 39.8787C20.1155 39.8787 19.481 40.2048 19.481 40.6022V42.5746C19.481 42.687 19.5322 42.7927 19.6213 42.8874C19.7036 42.9731 19.8172 43.0499 19.9552 43.1122C20.2068 43.228 20.5407 43.2981 20.9058 43.2981C21.6894 43.2981 22.3305 42.972 22.3305 42.5746V40.6022C22.3305 40.2015 21.6894 39.8787 20.9058 39.8787Z", fill: "#6392BD" }), /* @__PURE__ */ React23.createElement("path", { d: "M29.524 39.9477C29.7087 39.9032 29.9158 39.8787 30.1339 39.8787C30.9176 39.8787 31.5587 40.2015 31.5587 40.6022V42.5746C31.5587 42.972 30.9176 43.2981 30.1339 43.2981C29.3503 43.2981 28.7092 42.9753 28.7092 42.5746V40.6022C28.7092 40.315 29.0409 40.0646 29.524 39.9477Z", fill: "#6392BD" }), /* @__PURE__ */ React23.createElement("path", { d: "M38.5141 39.9482C38.6989 39.9037 38.9059 39.8792 39.1241 39.8792C39.9077 39.8792 40.5488 40.202 40.5488 40.6027V42.5751C40.5488 42.9725 39.9077 43.2986 39.1241 43.2986C38.3405 43.2986 37.6993 42.9758 37.6993 42.5751V40.6027C37.6993 40.3155 38.031 40.0651 38.5141 39.9482Z", fill: "#6392BD" })), /* @__PURE__ */ React23.createElement("defs", null, /* @__PURE__ */ React23.createElement("clipPath", { id: "clip0_5353_24891" }, /* @__PURE__ */ React23.createElement("rect", { width: "60", height: "60", fill: "white", transform: "translate(0 0.5)" }))));
3178
+ };
3179
+
3180
+ // src/Components/Calendario/Views/WeekView.tsx
3164
3181
  dayjs5.extend(localeData2);
3165
3182
  var WeekView = ({
3166
3183
  events,
@@ -3192,9 +3209,9 @@ var WeekView = ({
3192
3209
  }
3193
3210
  return "none";
3194
3211
  };
3195
- return /* @__PURE__ */ React23.createElement(Box17, { display: "flex", flexDirection: "column", height: "100%" }, /* @__PURE__ */ React23.createElement(Box17, { display: "flex", bgcolor: "transparent" }, /* @__PURE__ */ React23.createElement(Box17, { width: 45, bgcolor: "transparent" }), days.map((day) => {
3212
+ return /* @__PURE__ */ React24.createElement(Box17, { display: "flex", flexDirection: "column", height: "100%" }, /* @__PURE__ */ React24.createElement(Box17, { display: "flex", bgcolor: "transparent" }, /* @__PURE__ */ React24.createElement(Box17, { width: 45, bgcolor: "transparent" }), days.map((day) => {
3196
3213
  const isToday2 = day.format("YYYY-MM-DD") === todayString;
3197
- return /* @__PURE__ */ React23.createElement(
3214
+ return /* @__PURE__ */ React24.createElement(
3198
3215
  Box17,
3199
3216
  {
3200
3217
  key: day.toString(),
@@ -3211,19 +3228,19 @@ var WeekView = ({
3211
3228
  borderBottom: isToday2 ? 2 : 0,
3212
3229
  borderColor: isToday2 ? "primary.main" : "transparent"
3213
3230
  },
3214
- /* @__PURE__ */ React23.createElement(Typography19, { variant: "h6", color: "text.primary" }, day.format("D")),
3215
- /* @__PURE__ */ React23.createElement(Typography19, { variant: "caption", color: "text.secondary" }, day.format("dddd"))
3231
+ /* @__PURE__ */ React24.createElement(Typography19, { variant: "h6", color: "text.primary" }, day.format("D")),
3232
+ /* @__PURE__ */ React24.createElement(Typography19, { variant: "caption", color: "text.secondary" }, day.format("dddd"))
3216
3233
  );
3217
- })), isLoading ? /* @__PURE__ */ React23.createElement(Box17, { display: "flex", alignItems: "center", justifyContent: "center", width: "100%", height: "450px" }, /* @__PURE__ */ React23.createElement(CircularProgress2, { sx: { width: "60px", height: "60px" }, variant: "indeterminate" })) : !isLoading && noEvents ? /* @__PURE__ */ React23.createElement(
3234
+ })), isLoading ? /* @__PURE__ */ React24.createElement(Box17, { display: "flex", alignItems: "center", justifyContent: "center", width: "100%", height: "450px" }, /* @__PURE__ */ React24.createElement(CircularProgress2, { sx: { width: "60px", height: "60px" }, variant: "indeterminate" })) : !isLoading && noEvents ? /* @__PURE__ */ React24.createElement(
3218
3235
  EmptyState,
3219
3236
  {
3220
3237
  title: "Inicia la gesti\xF3n de las actividades",
3221
3238
  subtitle: "Selecciona un mec\xE1nico y as\xEDgnale las actividades a realizar.",
3222
- icon: /* @__PURE__ */ React23.createElement("img", { src: Icon_Scheduler_default, alt: "icon_calendario", style: { width: 60, height: 60 } })
3239
+ icon: /* @__PURE__ */ React24.createElement(LogoCalendario, null)
3223
3240
  }
3224
3241
  ) : (
3225
3242
  // Grid de horas y eventos
3226
- /* @__PURE__ */ React23.createElement(Box17, { display: "flex", flex: 1 }, /* @__PURE__ */ React23.createElement(Box17, { width: 45, bgcolor: "transparent" }, hours.map((h) => /* @__PURE__ */ React23.createElement(
3243
+ /* @__PURE__ */ React24.createElement(Box17, { display: "flex", flex: 1 }, /* @__PURE__ */ React24.createElement(Box17, { width: 45, bgcolor: "transparent" }, hours.map((h) => /* @__PURE__ */ React24.createElement(
3227
3244
  Box17,
3228
3245
  {
3229
3246
  key: h,
@@ -3232,7 +3249,7 @@ var WeekView = ({
3232
3249
  pr: 1,
3233
3250
  borderColor: "divider"
3234
3251
  },
3235
- /* @__PURE__ */ React23.createElement(Typography19, { variant: "caption", color: "text.secondary" }, dayjs5().hour(h).format("h A"))
3252
+ /* @__PURE__ */ React24.createElement(Typography19, { variant: "caption", color: "text.secondary" }, dayjs5().hour(h).format("h A"))
3236
3253
  ))), days.map((day) => {
3237
3254
  const dayEvents = events.filter(
3238
3255
  (event2) => day.isBetween(event2.start.startOf("day"), event2.end.endOf("day"), null, "[]")
@@ -3241,7 +3258,7 @@ var WeekView = ({
3241
3258
  const endsInRange = event2.end.hour() >= startHour && event2.end.hour() <= endHour;
3242
3259
  return startsInRange || endsInRange;
3243
3260
  }).sort((a, b) => a.start.valueOf() - b.start.valueOf());
3244
- return /* @__PURE__ */ React23.createElement(
3261
+ return /* @__PURE__ */ React24.createElement(
3245
3262
  Box17,
3246
3263
  {
3247
3264
  key: day.toString(),
@@ -3254,7 +3271,7 @@ var WeekView = ({
3254
3271
  },
3255
3272
  hours.map((hourIdx) => {
3256
3273
  const borderType = getCellBorderType(hourIdx, dayEvents);
3257
- return /* @__PURE__ */ React23.createElement(
3274
+ return /* @__PURE__ */ React24.createElement(
3258
3275
  Box17,
3259
3276
  {
3260
3277
  key: hourIdx,
@@ -3270,7 +3287,7 @@ var WeekView = ({
3270
3287
  const eventEnd = day.isSame(event2.end, "day") ? event2.end : day.endOf("day").hour(endHour).minute(59);
3271
3288
  const startMinutes = (eventStart.hour() - startHour) * 60 + eventStart.minute();
3272
3289
  const durationMinutes = eventEnd.diff(eventStart, "minute");
3273
- return /* @__PURE__ */ React23.createElement(
3290
+ return /* @__PURE__ */ React24.createElement(
3274
3291
  CalendarEventCard,
3275
3292
  {
3276
3293
  key: `${event2.id}-${day.toString()}`,
@@ -3295,7 +3312,7 @@ var WeekView = ({
3295
3312
  };
3296
3313
 
3297
3314
  // src/Components/Calendario/Views/DayView.tsx
3298
- import React24 from "react";
3315
+ import React25 from "react";
3299
3316
  import { Box as Box18, CircularProgress as CircularProgress3, Typography as Typography20 } from "@mui/material";
3300
3317
  import dayjs6 from "dayjs";
3301
3318
  var DayView = ({
@@ -3327,14 +3344,14 @@ var DayView = ({
3327
3344
  (event2) => currentDate.isBetween(event2.start.startOf("day"), event2.end.endOf("day"), null, "[]")
3328
3345
  );
3329
3346
  const noEvents = events.length === 0;
3330
- return /* @__PURE__ */ React24.createElement(Box18, { display: "flex", flexDirection: "column", height: "100%" }, /* @__PURE__ */ React24.createElement(Box18, { display: "flex", borderBottom: "1px solid", borderColor: "primary.main", bgcolor: "background.paper" }, /* @__PURE__ */ React24.createElement(Box18, { width: 47, bgcolor: "background.default", borderBottom: "1px solid", borderColor: "transparent" }), /* @__PURE__ */ React24.createElement(Box18, { flex: 1, display: "flex", flexDirection: "column", textAlign: "start", gap: 0.5, py: 1, bgcolor: "primary.50" }, /* @__PURE__ */ React24.createElement(Typography20, { variant: "h6", color: "text.secondary" }, currentDate.format("D")), /* @__PURE__ */ React24.createElement(Typography20, { variant: "caption", color: "text.secondary" }, currentDate.format("dddd")))), isLoading ? /* @__PURE__ */ React24.createElement(Box18, { display: "flex", alignItems: "center", justifyContent: "center", width: "100%", height: "450px" }, /* @__PURE__ */ React24.createElement(CircularProgress3, { sx: { width: "60px", height: "60px" }, variant: "indeterminate" })) : noEvents ? /* @__PURE__ */ React24.createElement(
3347
+ return /* @__PURE__ */ React25.createElement(Box18, { display: "flex", flexDirection: "column", height: "100%" }, /* @__PURE__ */ React25.createElement(Box18, { display: "flex", borderBottom: "1px solid", borderColor: "primary.main", bgcolor: "background.paper" }, /* @__PURE__ */ React25.createElement(Box18, { width: 47, bgcolor: "background.default", borderBottom: "1px solid", borderColor: "transparent" }), /* @__PURE__ */ React25.createElement(Box18, { flex: 1, display: "flex", flexDirection: "column", textAlign: "start", gap: 0.5, py: 1, bgcolor: "primary.50" }, /* @__PURE__ */ React25.createElement(Typography20, { variant: "h6", color: "text.secondary" }, currentDate.format("D")), /* @__PURE__ */ React25.createElement(Typography20, { variant: "caption", color: "text.secondary" }, currentDate.format("dddd")))), isLoading ? /* @__PURE__ */ React25.createElement(Box18, { display: "flex", alignItems: "center", justifyContent: "center", width: "100%", height: "450px" }, /* @__PURE__ */ React25.createElement(CircularProgress3, { sx: { width: "60px", height: "60px" }, variant: "indeterminate" })) : noEvents ? /* @__PURE__ */ React25.createElement(
3331
3348
  EmptyState,
3332
3349
  {
3333
3350
  title: "Inicia la gesti\xF3n de las actividades",
3334
3351
  subtitle: "Selecciona un mec\xE1nico y as\xEDgnale las actividades a realizar.",
3335
- icon: /* @__PURE__ */ React24.createElement("img", { src: Icon_Scheduler_default, alt: "icon_calendario", style: { width: 60, height: 60 } })
3352
+ icon: /* @__PURE__ */ React25.createElement("img", { src: Icon_Scheduler_default, alt: "icon_calendario", style: { width: 60, height: 60 } })
3336
3353
  }
3337
- ) : /* @__PURE__ */ React24.createElement(Box18, { display: "flex", flex: 1 }, /* @__PURE__ */ React24.createElement(Box18, { width: 47, bgcolor: "background.default" }, hours.map((h) => /* @__PURE__ */ React24.createElement(
3354
+ ) : /* @__PURE__ */ React25.createElement(Box18, { display: "flex", flex: 1 }, /* @__PURE__ */ React25.createElement(Box18, { width: 47, bgcolor: "background.default" }, hours.map((h) => /* @__PURE__ */ React25.createElement(
3338
3355
  Box18,
3339
3356
  {
3340
3357
  key: h,
@@ -3345,10 +3362,10 @@ var DayView = ({
3345
3362
  borderRight: "1px solid",
3346
3363
  borderColor: "divider"
3347
3364
  },
3348
- /* @__PURE__ */ React24.createElement(Typography20, { variant: "caption", color: "text.secondary" }, dayjs6().hour(h).format("h A"))
3349
- ))), /* @__PURE__ */ React24.createElement(Box18, { flex: 1, position: "relative" }, hours.map((hourIdx) => {
3365
+ /* @__PURE__ */ React25.createElement(Typography20, { variant: "caption", color: "text.secondary" }, dayjs6().hour(h).format("h A"))
3366
+ ))), /* @__PURE__ */ React25.createElement(Box18, { flex: 1, position: "relative" }, hours.map((hourIdx) => {
3350
3367
  const borderType = getCellBorderType(hourIdx, dayEvents);
3351
- return /* @__PURE__ */ React24.createElement(
3368
+ return /* @__PURE__ */ React25.createElement(
3352
3369
  Box18,
3353
3370
  {
3354
3371
  key: hourIdx,
@@ -3367,7 +3384,7 @@ var DayView = ({
3367
3384
  const clampedEnd = eventEnd.isAfter(maxEnd) ? maxEnd : eventEnd;
3368
3385
  const startMinutes = (clampedStart.hour() - startHour) * 60 + clampedStart.minute();
3369
3386
  const durationMinutes = clampedEnd.diff(clampedStart, "minute");
3370
- return /* @__PURE__ */ React24.createElement(
3387
+ return /* @__PURE__ */ React25.createElement(
3371
3388
  CalendarEventCard,
3372
3389
  {
3373
3390
  key: `${event2.id}-${currentDate.toString()}`,
@@ -3412,12 +3429,18 @@ var Calendar = ({
3412
3429
  const handleNavigate = (action) => {
3413
3430
  let newDate = currentDate;
3414
3431
  const unit = view === "month" ? "month" : "day";
3415
- if (action === "PREV") newDate = currentDate.subtract(1, unit);
3416
- else if (action === "NEXT") newDate = currentDate.add(1, unit);
3417
- else if (action === "TODAY") newDate = dayjs7();
3432
+ if (action === "PREV") {
3433
+ if (view === "day") newDate = currentDate.subtract(1, "day");
3434
+ if (view === "week") newDate = currentDate.subtract(1, "week");
3435
+ if (view === "month") newDate = currentDate.subtract(1, "month");
3436
+ } else if (action === "NEXT") {
3437
+ if (view === "day") newDate = currentDate.add(1, "day");
3438
+ if (view === "week") newDate = currentDate.add(1, "week");
3439
+ if (view === "month") newDate = currentDate.add(1, "month");
3440
+ } else if (action === "TODAY") newDate = dayjs7();
3418
3441
  setCurrentDate(newDate);
3419
3442
  };
3420
- return /* @__PURE__ */ React25.createElement(Box19, null, /* @__PURE__ */ React25.createElement(
3443
+ return /* @__PURE__ */ React26.createElement(Box19, null, /* @__PURE__ */ React26.createElement(
3421
3444
  CalendarToolbar,
3422
3445
  {
3423
3446
  labelDate: currentDate,
@@ -3426,7 +3449,7 @@ var Calendar = ({
3426
3449
  onNavigate: handleNavigate
3427
3450
  },
3428
3451
  toolbar
3429
- ), isLoading ? /* @__PURE__ */ React25.createElement(React25.Fragment, null, /* @__PURE__ */ React25.createElement(Box19, null, /* @__PURE__ */ React25.createElement(
3452
+ ), isLoading ? /* @__PURE__ */ React26.createElement(React26.Fragment, null, /* @__PURE__ */ React26.createElement(Box19, null, /* @__PURE__ */ React26.createElement(
3430
3453
  Box19,
3431
3454
  {
3432
3455
  display: "flex",
@@ -3434,8 +3457,8 @@ var Calendar = ({
3434
3457
  alignItems: "center",
3435
3458
  height: "400px"
3436
3459
  },
3437
- /* @__PURE__ */ React25.createElement(CircularProgress4, { variant: "indeterminate" })
3438
- ))) : /* @__PURE__ */ React25.createElement(React25.Fragment, null, view === "month" && /* @__PURE__ */ React25.createElement(
3460
+ /* @__PURE__ */ React26.createElement(CircularProgress4, { variant: "indeterminate" })
3461
+ ))) : /* @__PURE__ */ React26.createElement(React26.Fragment, null, view === "month" && /* @__PURE__ */ React26.createElement(
3439
3462
  MonthView,
3440
3463
  {
3441
3464
  events,
@@ -3445,7 +3468,7 @@ var Calendar = ({
3445
3468
  onEventClick,
3446
3469
  onEventHover
3447
3470
  }
3448
- ), view === "week" && /* @__PURE__ */ React25.createElement(
3471
+ ), view === "week" && /* @__PURE__ */ React26.createElement(
3449
3472
  WeekView,
3450
3473
  {
3451
3474
  events,
@@ -3457,7 +3480,7 @@ var Calendar = ({
3457
3480
  startHour,
3458
3481
  endHour
3459
3482
  }
3460
- ), view === "day" && /* @__PURE__ */ React25.createElement(
3483
+ ), view === "day" && /* @__PURE__ */ React26.createElement(
3461
3484
  DayView,
3462
3485
  {
3463
3486
  events,
@@ -3471,7 +3494,7 @@ var Calendar = ({
3471
3494
  };
3472
3495
 
3473
3496
  // src/Components/SCTime.tsx
3474
- import React26, { useState as useState13 } from "react";
3497
+ import React27, { useState as useState13 } from "react";
3475
3498
  import { Box as Box20, InputAdornment as InputAdornment6, Popover as Popover5, ClickAwayListener } from "@mui/material";
3476
3499
  import { LocalizationProvider as LocalizationProvider3 } from "@mui/x-date-pickers/LocalizationProvider";
3477
3500
  import { AdapterDayjs as AdapterDayjs2 } from "@mui/x-date-pickers/AdapterDayjs";
@@ -3528,7 +3551,7 @@ var SCTime = ({
3528
3551
  setIsOpenPopover(false);
3529
3552
  setAnchorEl(null);
3530
3553
  };
3531
- return /* @__PURE__ */ React26.createElement(LocalizationProvider3, { dateAdapter: AdapterDayjs2 }, /* @__PURE__ */ React26.createElement(Box20, { sx: { position: "relative", width: "120px" } }, /* @__PURE__ */ React26.createElement(
3554
+ return /* @__PURE__ */ React27.createElement(LocalizationProvider3, { dateAdapter: AdapterDayjs2 }, /* @__PURE__ */ React27.createElement(Box20, { sx: { position: "relative", width: "120px" } }, /* @__PURE__ */ React27.createElement(
3532
3555
  TimeField,
3533
3556
  {
3534
3557
  label,
@@ -3540,7 +3563,7 @@ var SCTime = ({
3540
3563
  slotProps: {
3541
3564
  textField: {
3542
3565
  InputProps: {
3543
- endAdornment: /* @__PURE__ */ React26.createElement(InputAdornment6, { position: "end" }, /* @__PURE__ */ React26.createElement(
3566
+ endAdornment: /* @__PURE__ */ React27.createElement(InputAdornment6, { position: "end" }, /* @__PURE__ */ React27.createElement(
3544
3567
  AccessTimeIcon,
3545
3568
  {
3546
3569
  color: disabled ? "disabled" : "action",
@@ -3569,7 +3592,7 @@ var SCTime = ({
3569
3592
  }
3570
3593
  }
3571
3594
  }
3572
- ), /* @__PURE__ */ React26.createElement(
3595
+ ), /* @__PURE__ */ React27.createElement(
3573
3596
  Popover5,
3574
3597
  {
3575
3598
  open: isOpenPopover,
@@ -3597,7 +3620,7 @@ var SCTime = ({
3597
3620
  }
3598
3621
  }
3599
3622
  },
3600
- /* @__PURE__ */ React26.createElement(ClickAwayListener, { onClickAway: handleClose }, /* @__PURE__ */ React26.createElement(Box20, { sx: { p: 0 } }, /* @__PURE__ */ React26.createElement(
3623
+ /* @__PURE__ */ React27.createElement(ClickAwayListener, { onClickAway: handleClose }, /* @__PURE__ */ React27.createElement(Box20, { sx: { p: 0 } }, /* @__PURE__ */ React27.createElement(
3601
3624
  DigitalClock,
3602
3625
  {
3603
3626
  value: state,
@@ -3618,11 +3641,88 @@ var SCTime = ({
3618
3641
  )));
3619
3642
  };
3620
3643
 
3644
+ // src/Components/SCCard.tsx
3645
+ import React28 from "react";
3646
+ import { Button as Button11, Box as Box21, SvgIcon as SvgIcon8 } from "@mui/material";
3647
+ import IconButton11 from "@mui/material/IconButton";
3648
+ import Card from "@mui/material/Card";
3649
+ import CardHeader from "@mui/material/CardHeader";
3650
+ import CardMedia from "@mui/material/CardMedia";
3651
+ import CardContent from "@mui/material/CardContent";
3652
+ import CardActions from "@mui/material/CardActions";
3653
+ import Collapse from "@mui/material/Collapse";
3654
+ import ExpandMoreIcon from "@mui/icons-material/ExpandMore";
3655
+ import * as Muicon8 from "@mui/icons-material";
3656
+ var SCCard = ({ title, image, iconTitle, actionsTitle, subtitle, content, actions, expand }) => {
3657
+ let iconTitleValidation = "";
3658
+ let IconTitle;
3659
+ const [expanded, setExpanded] = React28.useState(false);
3660
+ if (iconTitle) {
3661
+ if (Muicon8[iconTitle] == void 0) {
3662
+ if (iconTitle && React28.isValidElement(iconTitle) && iconTitle.type == void 0) {
3663
+ iconTitleValidation = "image";
3664
+ IconTitle = iconTitle;
3665
+ } else {
3666
+ iconTitleValidation = "icon";
3667
+ IconTitle = iconTitle;
3668
+ }
3669
+ } else {
3670
+ iconTitleValidation = "icon";
3671
+ IconTitle = Muicon8[iconTitle];
3672
+ }
3673
+ }
3674
+ const handleExpandClick = () => {
3675
+ setExpanded(!expanded);
3676
+ };
3677
+ return /* @__PURE__ */ React28.createElement(Card, { sx: { maxWidth: 345 } }, title && /* @__PURE__ */ React28.createElement(
3678
+ CardHeader,
3679
+ {
3680
+ avatar: iconTitle ? iconTitleValidation === "image" ? /* @__PURE__ */ React28.createElement(Box21, { sx: { marginRight: "16px", width: "44px", height: "44px", borderRadius: "1px" } }, /* @__PURE__ */ React28.createElement("img", { src: IconTitle, width: "44px", height: "44px" })) : /* @__PURE__ */ React28.createElement(SvgIcon8, { color: "action", fontSize: "small", component: IconTitle, sx: { marginRight: "16px" } }) : void 0,
3681
+ action: (expand == null ? void 0 : expand.position) == "top" ? (expand == null ? void 0 : expand.type) === "text" ? /* @__PURE__ */ React28.createElement(Button11, { onClick: handleExpandClick, sx: { marginRight: "auto" } }, "Expandir") : (expand == null ? void 0 : expand.type) === "icon" && /* @__PURE__ */ React28.createElement(IconButton11, { onClick: handleExpandClick, sx: { marginRight: "auto" }, size: "small" }, /* @__PURE__ */ React28.createElement(ExpandMoreIcon, { fontSize: "small" })) : actionsTitle,
3682
+ title,
3683
+ subheader: subtitle,
3684
+ sx: {
3685
+ "& .MuiCardHeader-title": {
3686
+ fontSize: "14px",
3687
+ color: "text.primary"
3688
+ },
3689
+ "& .MuiCardHeader-subheader": {
3690
+ fontSize: "13px",
3691
+ color: "text.secondary"
3692
+ },
3693
+ "& .MuiCardHeader-action": {
3694
+ height: "40px !important",
3695
+ display: "flex",
3696
+ alignItems: "center"
3697
+ }
3698
+ }
3699
+ }
3700
+ ), image && /* @__PURE__ */ React28.createElement(
3701
+ CardMedia,
3702
+ {
3703
+ component: "img",
3704
+ height: "194",
3705
+ image
3706
+ }
3707
+ ), content && /* @__PURE__ */ React28.createElement(CardContent, { sx: { padding: "8px 16px !important" } }, content), ((expand == null ? void 0 : expand.position) == "bottom" || actions != void 0) && /* @__PURE__ */ React28.createElement(CardActions, { disableSpacing: true, sx: { justifyContent: "flex-end" } }, (expand == null ? void 0 : expand.position) === "bottom" ? (expand == null ? void 0 : expand.type) === "text" ? /* @__PURE__ */ React28.createElement(Button11, { onClick: handleExpandClick, sx: { marginRight: "auto" } }, "Expandir") : (expand == null ? void 0 : expand.type) === "icon" && /* @__PURE__ */ React28.createElement(IconButton11, { onClick: handleExpandClick, sx: { marginRight: "auto" } }, /* @__PURE__ */ React28.createElement(ExpandMoreIcon, null)) : null, actions && actions.length > 0 ? actions.map((action, index) => /* @__PURE__ */ React28.createElement(
3708
+ Button11,
3709
+ {
3710
+ key: index,
3711
+ size: "small",
3712
+ color: action.color || "primary",
3713
+ variant: action.variant || "text",
3714
+ onClick: action.fn,
3715
+ disabled: action.disabled || false
3716
+ },
3717
+ action.text
3718
+ )) : ""), expand && /* @__PURE__ */ React28.createElement(Collapse, { in: expanded, timeout: "auto", unmountOnExit: true }, /* @__PURE__ */ React28.createElement(CardContent, { sx: { padding: "8px 16px !important" } }, expand.content)));
3719
+ };
3720
+
3621
3721
  // src/Theme/index.ts
3622
3722
  import { createTheme } from "@mui/material/styles";
3623
3723
 
3624
3724
  // src/Theme/components.ts
3625
- import React27 from "react";
3725
+ import React29 from "react";
3626
3726
  import {
3627
3727
  InfoRounded as InfoRounded2,
3628
3728
  CheckCircleRounded as CheckCircleRounded2,
@@ -4325,10 +4425,10 @@ var components = {
4325
4425
  MuiAlert: {
4326
4426
  defaultProps: {
4327
4427
  iconMapping: {
4328
- success: React27.createElement(CheckCircleRounded2),
4329
- error: React27.createElement(ErrorRounded2),
4330
- warning: React27.createElement(WarningRounded2),
4331
- info: React27.createElement(InfoRounded2)
4428
+ success: React29.createElement(CheckCircleRounded2),
4429
+ error: React29.createElement(ErrorRounded2),
4430
+ warning: React29.createElement(WarningRounded2),
4431
+ info: React29.createElement(InfoRounded2)
4332
4432
  }
4333
4433
  },
4334
4434
  variants: [
@@ -5376,6 +5476,7 @@ export {
5376
5476
  PageHeader,
5377
5477
  SCAutocomplete,
5378
5478
  SCCalendarSwipeable,
5479
+ SCCard,
5379
5480
  SCDataGrid,
5380
5481
  SCDataGridInitial,
5381
5482
  SCDateRange,