oraculo-ui 0.1.5 → 0.1.7

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.mts CHANGED
@@ -142,18 +142,26 @@ interface OraculoClubOlimpoVisualProps {
142
142
  }
143
143
  declare const OraculoClubOlimpoVisual: React.FC<OraculoClubOlimpoVisualProps>;
144
144
 
145
- interface OraculoDestacadoItem {
146
- id?: string | number;
147
- src: string;
148
- alt: string;
145
+ interface OraculoSeccionDestacadosItem {
146
+ body: string;
147
+ image: string;
148
+ title: string;
149
+ summary_body: string;
150
+ summary_title: string;
151
+ groups_forbidden: number[];
152
+ groups_allowed: number[];
153
+ promotion: string;
154
+ tags: string;
155
+ summary_image?: string;
149
156
  }
150
157
  interface OraculoSeccionDestacadosProps {
151
- items: OraculoDestacadoItem[];
158
+ items: OraculoSeccionDestacadosItem[];
152
159
  title?: string;
153
160
  iconUrl?: string;
154
161
  onViewMore?: () => void;
155
162
  className?: string;
156
163
  }
164
+
157
165
  declare function OraculoSeccionDestacados({ items, title, iconUrl, onViewMore, className, }: OraculoSeccionDestacadosProps): react_jsx_runtime.JSX.Element;
158
166
 
159
167
  interface OraculoGameItem {
@@ -272,4 +280,4 @@ declare function OraculoPageLanding({ props }: {
272
280
  props: parametros;
273
281
  }): react_jsx_runtime.JSX.Element;
274
282
 
275
- export { type OraculoBonosItem, OraculoButton, type OraculoButtonProps, OraculoCarousel, OraculoCarouselDots, type OraculoCarouselDotsProps, type OraculoCarouselOptions, type OraculoCarouselProps, type OraculoCarouselRef, OraculoClubOlimpoVisual, type OraculoClubOlimpoVisualProps, type OraculoDestacadoItem, OraculoGameCard, type OraculoGameCardProps, type OraculoGameItem, OraculoGameRankCard, type OraculoGameRankCardProps, type OraculoGameRankCardSizes, OraculoGameSlide, type OraculoGameSlideItem, type OraculoGameSlideProps, OraculoLiveCasinoCard, type OraculoLiveCasinoCardProps, OraculoPageLanding, OraculoSeccionBonoBienvenida, type OraculoSeccionBonoProps, OraculoSeccionCasino, OraculoSeccionCasinoEnVivo, type OraculoSeccionCasinoEnVivoProps, type OraculoSeccionCasinoProps, OraculoSeccionClubOlimpo, type OraculoSeccionClubOlimpoItem, OraculoSeccionDestacados, type OraculoSeccionDestacadosProps, OraculoSeccionTopJuegos, type OraculoSeccionTopJuegosProps, OraculoSeccionVirtuales, type OraculoSeccionVirtualesProps, OraculoSectionTitle, type OraculoSectionTitleProps, OraculoSeccionTopJuegos as OraculoTopJuegoItem, OraculoWelcomeBanner, type OraculoWelcomeBannerProps };
283
+ export { type OraculoBonosItem, OraculoButton, type OraculoButtonProps, OraculoCarousel, OraculoCarouselDots, type OraculoCarouselDotsProps, type OraculoCarouselOptions, type OraculoCarouselProps, type OraculoCarouselRef, OraculoClubOlimpoVisual, type OraculoClubOlimpoVisualProps, OraculoGameCard, type OraculoGameCardProps, type OraculoGameItem, OraculoGameRankCard, type OraculoGameRankCardProps, type OraculoGameRankCardSizes, OraculoGameSlide, type OraculoGameSlideItem, type OraculoGameSlideProps, OraculoLiveCasinoCard, type OraculoLiveCasinoCardProps, OraculoPageLanding, OraculoSeccionBonoBienvenida, type OraculoSeccionBonoProps, OraculoSeccionCasino, OraculoSeccionCasinoEnVivo, type OraculoSeccionCasinoEnVivoProps, type OraculoSeccionCasinoProps, OraculoSeccionClubOlimpo, type OraculoSeccionClubOlimpoItem, OraculoSeccionDestacados, type OraculoSeccionDestacadosItem, type OraculoSeccionDestacadosProps, OraculoSeccionTopJuegos, type OraculoSeccionTopJuegosProps, OraculoSeccionVirtuales, type OraculoSeccionVirtualesProps, OraculoSectionTitle, type OraculoSectionTitleProps, OraculoSeccionTopJuegos as OraculoTopJuegoItem, OraculoWelcomeBanner, type OraculoWelcomeBannerProps };
package/dist/index.d.ts CHANGED
@@ -142,18 +142,26 @@ interface OraculoClubOlimpoVisualProps {
142
142
  }
143
143
  declare const OraculoClubOlimpoVisual: React.FC<OraculoClubOlimpoVisualProps>;
144
144
 
145
- interface OraculoDestacadoItem {
146
- id?: string | number;
147
- src: string;
148
- alt: string;
145
+ interface OraculoSeccionDestacadosItem {
146
+ body: string;
147
+ image: string;
148
+ title: string;
149
+ summary_body: string;
150
+ summary_title: string;
151
+ groups_forbidden: number[];
152
+ groups_allowed: number[];
153
+ promotion: string;
154
+ tags: string;
155
+ summary_image?: string;
149
156
  }
150
157
  interface OraculoSeccionDestacadosProps {
151
- items: OraculoDestacadoItem[];
158
+ items: OraculoSeccionDestacadosItem[];
152
159
  title?: string;
153
160
  iconUrl?: string;
154
161
  onViewMore?: () => void;
155
162
  className?: string;
156
163
  }
164
+
157
165
  declare function OraculoSeccionDestacados({ items, title, iconUrl, onViewMore, className, }: OraculoSeccionDestacadosProps): react_jsx_runtime.JSX.Element;
158
166
 
159
167
  interface OraculoGameItem {
@@ -272,4 +280,4 @@ declare function OraculoPageLanding({ props }: {
272
280
  props: parametros;
273
281
  }): react_jsx_runtime.JSX.Element;
274
282
 
275
- export { type OraculoBonosItem, OraculoButton, type OraculoButtonProps, OraculoCarousel, OraculoCarouselDots, type OraculoCarouselDotsProps, type OraculoCarouselOptions, type OraculoCarouselProps, type OraculoCarouselRef, OraculoClubOlimpoVisual, type OraculoClubOlimpoVisualProps, type OraculoDestacadoItem, OraculoGameCard, type OraculoGameCardProps, type OraculoGameItem, OraculoGameRankCard, type OraculoGameRankCardProps, type OraculoGameRankCardSizes, OraculoGameSlide, type OraculoGameSlideItem, type OraculoGameSlideProps, OraculoLiveCasinoCard, type OraculoLiveCasinoCardProps, OraculoPageLanding, OraculoSeccionBonoBienvenida, type OraculoSeccionBonoProps, OraculoSeccionCasino, OraculoSeccionCasinoEnVivo, type OraculoSeccionCasinoEnVivoProps, type OraculoSeccionCasinoProps, OraculoSeccionClubOlimpo, type OraculoSeccionClubOlimpoItem, OraculoSeccionDestacados, type OraculoSeccionDestacadosProps, OraculoSeccionTopJuegos, type OraculoSeccionTopJuegosProps, OraculoSeccionVirtuales, type OraculoSeccionVirtualesProps, OraculoSectionTitle, type OraculoSectionTitleProps, OraculoSeccionTopJuegos as OraculoTopJuegoItem, OraculoWelcomeBanner, type OraculoWelcomeBannerProps };
283
+ export { type OraculoBonosItem, OraculoButton, type OraculoButtonProps, OraculoCarousel, OraculoCarouselDots, type OraculoCarouselDotsProps, type OraculoCarouselOptions, type OraculoCarouselProps, type OraculoCarouselRef, OraculoClubOlimpoVisual, type OraculoClubOlimpoVisualProps, OraculoGameCard, type OraculoGameCardProps, type OraculoGameItem, OraculoGameRankCard, type OraculoGameRankCardProps, type OraculoGameRankCardSizes, OraculoGameSlide, type OraculoGameSlideItem, type OraculoGameSlideProps, OraculoLiveCasinoCard, type OraculoLiveCasinoCardProps, OraculoPageLanding, OraculoSeccionBonoBienvenida, type OraculoSeccionBonoProps, OraculoSeccionCasino, OraculoSeccionCasinoEnVivo, type OraculoSeccionCasinoEnVivoProps, type OraculoSeccionCasinoProps, OraculoSeccionClubOlimpo, type OraculoSeccionClubOlimpoItem, OraculoSeccionDestacados, type OraculoSeccionDestacadosItem, type OraculoSeccionDestacadosProps, OraculoSeccionTopJuegos, type OraculoSeccionTopJuegosProps, OraculoSeccionVirtuales, type OraculoSeccionVirtualesProps, OraculoSectionTitle, type OraculoSectionTitleProps, OraculoSeccionTopJuegos as OraculoTopJuegoItem, OraculoWelcomeBanner, type OraculoWelcomeBannerProps };
package/dist/index.js CHANGED
@@ -318,7 +318,7 @@ function OraculoGameRankCard({
318
318
  /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
319
319
  "img",
320
320
  {
321
- src: imageUrl,
321
+ src: `https://olimpo.bet${imageUrl}`,
322
322
  alt: "Juego de casino",
323
323
  loading: "lazy",
324
324
  style: {
@@ -888,47 +888,31 @@ function OraculoSeccionDestacados({
888
888
  marginBottom: 16
889
889
  },
890
890
  children: [
891
- /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
892
- OraculoSectionTitle,
893
- {
894
- title,
895
- iconUrl,
896
- size: "md"
897
- }
898
- ),
899
- /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(
900
- "div",
901
- {
902
- style: {
903
- display: "flex",
904
- gap: 8
905
- },
906
- children: [
907
- /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
908
- OraculoButton,
909
- {
910
- ariaLabel: "Anterior",
911
- variant: "secondary",
912
- iconOnly: true,
913
- leftIcon: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(ChevronLeftRounded_default, {}),
914
- onClick: handlePrev,
915
- disabled: navState.isStart
916
- }
917
- ),
918
- /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
919
- OraculoButton,
920
- {
921
- ariaLabel: "Siguiente",
922
- variant: "secondary",
923
- iconOnly: true,
924
- rightIcon: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(ChevronRightRounded_default, {}),
925
- onClick: handleNext,
926
- disabled: navState.isEnd
927
- }
928
- )
929
- ]
930
- }
931
- ),
891
+ /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(OraculoSectionTitle, { title, iconUrl, size: "md" }),
892
+ /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)("div", { style: { display: "flex", gap: 8 }, children: [
893
+ /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
894
+ OraculoButton,
895
+ {
896
+ ariaLabel: "Anterior",
897
+ variant: "secondary",
898
+ iconOnly: true,
899
+ leftIcon: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(ChevronLeftRounded_default, {}),
900
+ onClick: handlePrev,
901
+ disabled: navState.isStart
902
+ }
903
+ ),
904
+ /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
905
+ OraculoButton,
906
+ {
907
+ ariaLabel: "Siguiente",
908
+ variant: "secondary",
909
+ iconOnly: true,
910
+ rightIcon: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(ChevronRightRounded_default, {}),
911
+ onClick: handleNext,
912
+ disabled: navState.isEnd
913
+ }
914
+ )
915
+ ] }),
932
916
  /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(OraculoButton, { variant: "secondary", onClick: handleViewMore, children: "Ver m\xE1s" })
933
917
  ]
934
918
  }
@@ -945,32 +929,29 @@ function OraculoSeccionDestacados({
945
929
  768: { perPage: 1.15, focus: "start" },
946
930
  1024: { perPage: 2.5, focus: "start" }
947
931
  },
948
- renderItem: (item) => {
949
- var _a;
950
- return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
951
- "div",
952
- {
953
- style: {
954
- textAlign: "center",
955
- marginTop: 16
956
- },
957
- children: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
958
- "img",
959
- {
960
- src: item.src,
961
- alt: item.alt,
962
- style: {
963
- width: "100%",
964
- height: "auto",
965
- borderRadius: 8,
966
- display: "block"
967
- }
968
- }
969
- )
932
+ renderItem: (item) => /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
933
+ "div",
934
+ {
935
+ style: {
936
+ textAlign: "center",
937
+ marginTop: 16
970
938
  },
971
- (_a = item.id) != null ? _a : item.src
972
- );
973
- },
939
+ children: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
940
+ "img",
941
+ {
942
+ src: item.image,
943
+ alt: item.title,
944
+ style: {
945
+ width: "100%",
946
+ height: "auto",
947
+ borderRadius: 8,
948
+ display: "block"
949
+ }
950
+ }
951
+ )
952
+ },
953
+ `${item.title}-${item.image}`
954
+ ),
974
955
  onMove: ({ isStart, isEnd }) => setNavState({ isStart, isEnd })
975
956
  }
976
957
  )
@@ -978,6 +959,7 @@ function OraculoSeccionDestacados({
978
959
  }
979
960
 
980
961
  // src/organisms/OraculoSeccionTopJuegos/OraculoSeccionTopJuegos.tsx
962
+ var import_react3 = require("react");
981
963
  var import_Stack = __toESM(require("@mui/material/Stack"));
982
964
  var import_Box6 = __toESM(require("@mui/material/Box"));
983
965
  var import_jsx_runtime14 = require("react/jsx-runtime");
@@ -987,6 +969,21 @@ function OraculoSeccionTopJuegos({
987
969
  iconUrl,
988
970
  onCardClick
989
971
  }) {
972
+ const normalizedItems = (0, import_react3.useMemo)(
973
+ () => items.map((item, index) => {
974
+ var _a;
975
+ return {
976
+ ...item,
977
+ // si no viene orden, usamos el índice (1-based)
978
+ orden: (_a = item.orden) != null ? _a : index + 1,
979
+ _originalIndex: index
980
+ };
981
+ }).sort((a, b) => {
982
+ if (a.orden != null && b.orden != null) return a.orden - b.orden;
983
+ return a._originalIndex - b._originalIndex;
984
+ }),
985
+ [items]
986
+ );
990
987
  return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("section", { style: { width: "100%" }, children: /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(import_Stack.default, { direction: "column", spacing: 2, useFlexGap: true, children: [
991
988
  /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(OraculoSectionTitle, { title, iconUrl, size: "md" }),
992
989
  /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
@@ -1002,11 +999,11 @@ function OraculoSeccionTopJuegos({
1002
999
  justifyItems: "center",
1003
1000
  width: "100%"
1004
1001
  },
1005
- children: items.slice(0, 6).map((juego, idx) => /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
1002
+ children: normalizedItems.slice(0, 6).map((juego) => /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
1006
1003
  OraculoGameRankCard,
1007
1004
  {
1008
1005
  imageUrl: juego.logo || "",
1009
- orden: juego.orden || idx + 1,
1006
+ orden: juego.orden,
1010
1007
  onClick: () => onCardClick == null ? void 0 : onCardClick(juego)
1011
1008
  },
1012
1009
  juego.machine
@@ -1170,7 +1167,7 @@ var OraculoSeccionCasinoEnVivo = ({
1170
1167
  var OraculoSeccionCasinoEnVivo_default = OraculoSeccionCasinoEnVivo;
1171
1168
 
1172
1169
  // src/organisms/OraculoSeccionCasino/OraculoSeccionCasino.tsx
1173
- var import_react3 = require("react");
1170
+ var import_react4 = require("react");
1174
1171
  var import_Stack3 = __toESM(require("@mui/material/Stack"));
1175
1172
  var import_Box8 = __toESM(require("@mui/material/Box"));
1176
1173
  var import_jsx_runtime16 = require("react/jsx-runtime");
@@ -1214,8 +1211,8 @@ var OraculoSeccionCasino = ({
1214
1211
  mosaicFirst = true,
1215
1212
  gridSize = 4
1216
1213
  }) => {
1217
- const carouselRef = (0, import_react3.useRef)(null);
1218
- const [navState, setNavState] = (0, import_react3.useState)({ isStart: true, isEnd: false });
1214
+ const carouselRef = (0, import_react4.useRef)(null);
1215
+ const [navState, setNavState] = (0, import_react4.useState)({ isStart: true, isEnd: false });
1219
1216
  const slides = buildCasinoSlides(items, mosaicFirst, gridSize);
1220
1217
  const handlePrev = () => {
1221
1218
  var _a;
@@ -1326,7 +1323,7 @@ var OraculoSeccionCasino = ({
1326
1323
  var OraculoSeccionCasino_default = OraculoSeccionCasino;
1327
1324
 
1328
1325
  // src/organisms/OraculoSeccionVirtuales/OraculoSeccionVirtuales.tsx
1329
- var import_react4 = require("react");
1326
+ var import_react5 = require("react");
1330
1327
  var import_Stack4 = __toESM(require("@mui/material/Stack"));
1331
1328
  var import_Box9 = __toESM(require("@mui/material/Box"));
1332
1329
  var import_jsx_runtime17 = require("react/jsx-runtime");
@@ -1370,8 +1367,8 @@ var OraculoSeccionVirtuales = ({
1370
1367
  mosaicFirst = true,
1371
1368
  gridSize = 4
1372
1369
  }) => {
1373
- const carouselRef = (0, import_react4.useRef)(null);
1374
- const [navState, setNavState] = (0, import_react4.useState)({ isStart: true, isEnd: false });
1370
+ const carouselRef = (0, import_react5.useRef)(null);
1371
+ const [navState, setNavState] = (0, import_react5.useState)({ isStart: true, isEnd: false });
1375
1372
  const slides = buildVirtualSlides(items, mosaicFirst, gridSize);
1376
1373
  const handlePrev = () => {
1377
1374
  var _a;
@@ -1483,7 +1480,7 @@ var OraculoSeccionVirtuales = ({
1483
1480
  var OraculoSeccionVirtuales_default = OraculoSeccionVirtuales;
1484
1481
 
1485
1482
  // src/organisms/OraculoSeccionBonoBienvenida/OraculoSeccionBonoBienvenida.tsx
1486
- var import_react5 = require("react");
1483
+ var import_react6 = require("react");
1487
1484
  var import_Box10 = __toESM(require("@mui/material/Box"));
1488
1485
  var import_Typography4 = __toESM(require("@mui/material/Typography"));
1489
1486
  var import_useMediaQuery = __toESM(require("@mui/material/useMediaQuery"));
@@ -1539,9 +1536,9 @@ var OraculoSeccionBonoBienvenida = ({
1539
1536
  const showDots = items.length > 1;
1540
1537
  const bgUrl = backgroundImageUrl != null ? backgroundImageUrl : "/assets/img/home/BonoBienvenida/Fondobg.png";
1541
1538
  const sectionSx = buildSectionSx(bgUrl);
1542
- const carouselRef = (0, import_react5.useRef)(null);
1543
- const [navState, setNavState] = (0, import_react5.useState)({ isStart: true, isEnd: false });
1544
- const [activeIndex, setActiveIndex] = (0, import_react5.useState)(0);
1539
+ const carouselRef = (0, import_react6.useRef)(null);
1540
+ const [navState, setNavState] = (0, import_react6.useState)({ isStart: true, isEnd: false });
1541
+ const [activeIndex, setActiveIndex] = (0, import_react6.useState)(0);
1545
1542
  if (isMobile) {
1546
1543
  return /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(
1547
1544
  import_Box10.default,
@@ -1673,7 +1670,7 @@ var OraculoSeccionBonoBienvenida = ({
1673
1670
  var OraculoSeccionBonoBienvenida_default = OraculoSeccionBonoBienvenida;
1674
1671
 
1675
1672
  // src/organisms/OraculoSeccionClubOlimpo/OraculoSeccionClubOlimpo.tsx
1676
- var import_react6 = require("react");
1673
+ var import_react7 = require("react");
1677
1674
  var import_jsx_runtime19 = require("react/jsx-runtime");
1678
1675
  var OraculoSeccionClubOlimpo = ({
1679
1676
  className = "",
@@ -1682,12 +1679,12 @@ var OraculoSeccionClubOlimpo = ({
1682
1679
  selectedIndex = 0,
1683
1680
  ariaLabel
1684
1681
  }) => {
1685
- const rootRef = (0, import_react6.useRef)(null);
1686
- const bottomRef = (0, import_react6.useRef)(null);
1682
+ const rootRef = (0, import_react7.useRef)(null);
1683
+ const bottomRef = (0, import_react7.useRef)(null);
1687
1684
  if (!items) return null;
1688
1685
  const safeIndex = Math.min(Math.max(selectedIndex, 0), 1);
1689
1686
  const item = items;
1690
- (0, import_react6.useLayoutEffect)(() => {
1687
+ (0, import_react7.useLayoutEffect)(() => {
1691
1688
  if (!rootRef.current || !bottomRef.current) return;
1692
1689
  if (typeof ResizeObserver === "undefined") return;
1693
1690
  const root = rootRef.current;
@@ -1747,10 +1744,52 @@ function OraculoPageLanding({ props }) {
1747
1744
  }
1748
1745
  ];
1749
1746
  const listaDestacados = [
1750
- { id: 1, src: "/assets/img/home/Destacados/Banner01.png", alt: "Gol Seguro", href: "/destacados" },
1751
- { id: 2, src: "/assets/img/home/Destacados/Banner02.png", alt: "Promo 2", href: "/destacados" },
1752
- { id: 3, src: "/assets/img/home/Destacados/Banner01.png", alt: "Gol Seguro", href: "/destacados" },
1753
- { id: 4, src: "/assets/img/home/Destacados/Banner02.png", alt: "Promo 2", href: "/destacados" }
1747
+ {
1748
+ image: "/assets/img/home/Destacados/Banner01.png",
1749
+ title: "Gol Seguro",
1750
+ tags: "/destacados",
1751
+ // aquí puedes usar la ruta que antes estaba en href
1752
+ body: "",
1753
+ summary_body: "",
1754
+ summary_title: "",
1755
+ groups_forbidden: [],
1756
+ groups_allowed: [],
1757
+ promotion: ""
1758
+ // summary_image: "/lo-que-sea.png", // opcional
1759
+ },
1760
+ {
1761
+ image: "/assets/img/home/Destacados/Banner02.png",
1762
+ title: "Promo 2",
1763
+ tags: "/destacados",
1764
+ body: "",
1765
+ summary_body: "",
1766
+ summary_title: "",
1767
+ groups_forbidden: [],
1768
+ groups_allowed: [],
1769
+ promotion: ""
1770
+ },
1771
+ {
1772
+ image: "/assets/img/home/Destacados/Banner01.png",
1773
+ title: "Gol Seguro",
1774
+ tags: "/destacados",
1775
+ body: "",
1776
+ summary_body: "",
1777
+ summary_title: "",
1778
+ groups_forbidden: [],
1779
+ groups_allowed: [],
1780
+ promotion: ""
1781
+ },
1782
+ {
1783
+ image: "/assets/img/home/Destacados/Banner02.png",
1784
+ title: "Promo 2",
1785
+ tags: "/destacados",
1786
+ body: "",
1787
+ summary_body: "",
1788
+ summary_title: "",
1789
+ groups_forbidden: [],
1790
+ groups_allowed: [],
1791
+ promotion: ""
1792
+ }
1754
1793
  ];
1755
1794
  return /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(import_material2.Container, { className: "oli-font", sx: { backgroundColor: "#121212", position: "relative", pb: 5 }, maxWidth: false, children: [
1756
1795
  /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
package/dist/index.mjs CHANGED
@@ -272,7 +272,7 @@ function OraculoGameRankCard({
272
272
  /* @__PURE__ */ jsx5(
273
273
  "img",
274
274
  {
275
- src: imageUrl,
275
+ src: `https://olimpo.bet${imageUrl}`,
276
276
  alt: "Juego de casino",
277
277
  loading: "lazy",
278
278
  style: {
@@ -842,47 +842,31 @@ function OraculoSeccionDestacados({
842
842
  marginBottom: 16
843
843
  },
844
844
  children: [
845
- /* @__PURE__ */ jsx11(
846
- OraculoSectionTitle,
847
- {
848
- title,
849
- iconUrl,
850
- size: "md"
851
- }
852
- ),
853
- /* @__PURE__ */ jsxs8(
854
- "div",
855
- {
856
- style: {
857
- display: "flex",
858
- gap: 8
859
- },
860
- children: [
861
- /* @__PURE__ */ jsx11(
862
- OraculoButton,
863
- {
864
- ariaLabel: "Anterior",
865
- variant: "secondary",
866
- iconOnly: true,
867
- leftIcon: /* @__PURE__ */ jsx11(ChevronLeftRounded_default, {}),
868
- onClick: handlePrev,
869
- disabled: navState.isStart
870
- }
871
- ),
872
- /* @__PURE__ */ jsx11(
873
- OraculoButton,
874
- {
875
- ariaLabel: "Siguiente",
876
- variant: "secondary",
877
- iconOnly: true,
878
- rightIcon: /* @__PURE__ */ jsx11(ChevronRightRounded_default, {}),
879
- onClick: handleNext,
880
- disabled: navState.isEnd
881
- }
882
- )
883
- ]
884
- }
885
- ),
845
+ /* @__PURE__ */ jsx11(OraculoSectionTitle, { title, iconUrl, size: "md" }),
846
+ /* @__PURE__ */ jsxs8("div", { style: { display: "flex", gap: 8 }, children: [
847
+ /* @__PURE__ */ jsx11(
848
+ OraculoButton,
849
+ {
850
+ ariaLabel: "Anterior",
851
+ variant: "secondary",
852
+ iconOnly: true,
853
+ leftIcon: /* @__PURE__ */ jsx11(ChevronLeftRounded_default, {}),
854
+ onClick: handlePrev,
855
+ disabled: navState.isStart
856
+ }
857
+ ),
858
+ /* @__PURE__ */ jsx11(
859
+ OraculoButton,
860
+ {
861
+ ariaLabel: "Siguiente",
862
+ variant: "secondary",
863
+ iconOnly: true,
864
+ rightIcon: /* @__PURE__ */ jsx11(ChevronRightRounded_default, {}),
865
+ onClick: handleNext,
866
+ disabled: navState.isEnd
867
+ }
868
+ )
869
+ ] }),
886
870
  /* @__PURE__ */ jsx11(OraculoButton, { variant: "secondary", onClick: handleViewMore, children: "Ver m\xE1s" })
887
871
  ]
888
872
  }
@@ -899,32 +883,29 @@ function OraculoSeccionDestacados({
899
883
  768: { perPage: 1.15, focus: "start" },
900
884
  1024: { perPage: 2.5, focus: "start" }
901
885
  },
902
- renderItem: (item) => {
903
- var _a;
904
- return /* @__PURE__ */ jsx11(
905
- "div",
906
- {
907
- style: {
908
- textAlign: "center",
909
- marginTop: 16
910
- },
911
- children: /* @__PURE__ */ jsx11(
912
- "img",
913
- {
914
- src: item.src,
915
- alt: item.alt,
916
- style: {
917
- width: "100%",
918
- height: "auto",
919
- borderRadius: 8,
920
- display: "block"
921
- }
922
- }
923
- )
886
+ renderItem: (item) => /* @__PURE__ */ jsx11(
887
+ "div",
888
+ {
889
+ style: {
890
+ textAlign: "center",
891
+ marginTop: 16
924
892
  },
925
- (_a = item.id) != null ? _a : item.src
926
- );
927
- },
893
+ children: /* @__PURE__ */ jsx11(
894
+ "img",
895
+ {
896
+ src: item.image,
897
+ alt: item.title,
898
+ style: {
899
+ width: "100%",
900
+ height: "auto",
901
+ borderRadius: 8,
902
+ display: "block"
903
+ }
904
+ }
905
+ )
906
+ },
907
+ `${item.title}-${item.image}`
908
+ ),
928
909
  onMove: ({ isStart, isEnd }) => setNavState({ isStart, isEnd })
929
910
  }
930
911
  )
@@ -932,6 +913,7 @@ function OraculoSeccionDestacados({
932
913
  }
933
914
 
934
915
  // src/organisms/OraculoSeccionTopJuegos/OraculoSeccionTopJuegos.tsx
916
+ import { useMemo } from "react";
935
917
  import Stack from "@mui/material/Stack";
936
918
  import Box6 from "@mui/material/Box";
937
919
  import { jsx as jsx12, jsxs as jsxs9 } from "react/jsx-runtime";
@@ -941,6 +923,21 @@ function OraculoSeccionTopJuegos({
941
923
  iconUrl,
942
924
  onCardClick
943
925
  }) {
926
+ const normalizedItems = useMemo(
927
+ () => items.map((item, index) => {
928
+ var _a;
929
+ return {
930
+ ...item,
931
+ // si no viene orden, usamos el índice (1-based)
932
+ orden: (_a = item.orden) != null ? _a : index + 1,
933
+ _originalIndex: index
934
+ };
935
+ }).sort((a, b) => {
936
+ if (a.orden != null && b.orden != null) return a.orden - b.orden;
937
+ return a._originalIndex - b._originalIndex;
938
+ }),
939
+ [items]
940
+ );
944
941
  return /* @__PURE__ */ jsx12("section", { style: { width: "100%" }, children: /* @__PURE__ */ jsxs9(Stack, { direction: "column", spacing: 2, useFlexGap: true, children: [
945
942
  /* @__PURE__ */ jsx12(OraculoSectionTitle, { title, iconUrl, size: "md" }),
946
943
  /* @__PURE__ */ jsx12(
@@ -956,11 +953,11 @@ function OraculoSeccionTopJuegos({
956
953
  justifyItems: "center",
957
954
  width: "100%"
958
955
  },
959
- children: items.slice(0, 6).map((juego, idx) => /* @__PURE__ */ jsx12(
956
+ children: normalizedItems.slice(0, 6).map((juego) => /* @__PURE__ */ jsx12(
960
957
  OraculoGameRankCard,
961
958
  {
962
959
  imageUrl: juego.logo || "",
963
- orden: juego.orden || idx + 1,
960
+ orden: juego.orden,
964
961
  onClick: () => onCardClick == null ? void 0 : onCardClick(juego)
965
962
  },
966
963
  juego.machine
@@ -1704,10 +1701,52 @@ function OraculoPageLanding({ props }) {
1704
1701
  }
1705
1702
  ];
1706
1703
  const listaDestacados = [
1707
- { id: 1, src: "/assets/img/home/Destacados/Banner01.png", alt: "Gol Seguro", href: "/destacados" },
1708
- { id: 2, src: "/assets/img/home/Destacados/Banner02.png", alt: "Promo 2", href: "/destacados" },
1709
- { id: 3, src: "/assets/img/home/Destacados/Banner01.png", alt: "Gol Seguro", href: "/destacados" },
1710
- { id: 4, src: "/assets/img/home/Destacados/Banner02.png", alt: "Promo 2", href: "/destacados" }
1704
+ {
1705
+ image: "/assets/img/home/Destacados/Banner01.png",
1706
+ title: "Gol Seguro",
1707
+ tags: "/destacados",
1708
+ // aquí puedes usar la ruta que antes estaba en href
1709
+ body: "",
1710
+ summary_body: "",
1711
+ summary_title: "",
1712
+ groups_forbidden: [],
1713
+ groups_allowed: [],
1714
+ promotion: ""
1715
+ // summary_image: "/lo-que-sea.png", // opcional
1716
+ },
1717
+ {
1718
+ image: "/assets/img/home/Destacados/Banner02.png",
1719
+ title: "Promo 2",
1720
+ tags: "/destacados",
1721
+ body: "",
1722
+ summary_body: "",
1723
+ summary_title: "",
1724
+ groups_forbidden: [],
1725
+ groups_allowed: [],
1726
+ promotion: ""
1727
+ },
1728
+ {
1729
+ image: "/assets/img/home/Destacados/Banner01.png",
1730
+ title: "Gol Seguro",
1731
+ tags: "/destacados",
1732
+ body: "",
1733
+ summary_body: "",
1734
+ summary_title: "",
1735
+ groups_forbidden: [],
1736
+ groups_allowed: [],
1737
+ promotion: ""
1738
+ },
1739
+ {
1740
+ image: "/assets/img/home/Destacados/Banner02.png",
1741
+ title: "Promo 2",
1742
+ tags: "/destacados",
1743
+ body: "",
1744
+ summary_body: "",
1745
+ summary_title: "",
1746
+ groups_forbidden: [],
1747
+ groups_allowed: [],
1748
+ promotion: ""
1749
+ }
1711
1750
  ];
1712
1751
  return /* @__PURE__ */ jsxs14(Container, { className: "oli-font", sx: { backgroundColor: "#121212", position: "relative", pb: 5 }, maxWidth: false, children: [
1713
1752
  /* @__PURE__ */ jsx18(
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "oraculo-ui",
3
- "version": "0.1.5",
3
+ "version": "0.1.7",
4
4
  "main": "./dist/index.js",
5
5
  "module": "./dist/index.mjs",
6
6
  "types": "./dist/index.d.ts",
@@ -15,9 +15,9 @@
15
15
  },
16
16
  "peerDependencies": {
17
17
  "@mui/material": ">=5",
18
+ "@splidejs/react-splide": ">=0.7.0",
18
19
  "react": ">=18",
19
- "react-dom": ">=18",
20
- "@splidejs/react-splide": ">=0.7.0"
20
+ "react-dom": ">=18"
21
21
  },
22
22
  "devDependencies": {
23
23
  "@types/react": "^18.3.27",