oraculo-ui 0.1.7 → 0.1.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (34) hide show
  1. package/dist/OraculoSeccionBonoBienvenida-EDS6UQVL.mjs +9 -0
  2. package/dist/OraculoSeccionBonoBienvenida-MGMLDCRG.css +220 -0
  3. package/dist/OraculoSeccionCasino-GXRRODCJ.mjs +11 -0
  4. package/dist/OraculoSeccionCasino-Q2VV44XD.css +216 -0
  5. package/dist/OraculoSeccionCasinoEnVivo-ISYMJSUN.mjs +8 -0
  6. package/dist/OraculoSeccionCasinoEnVivo-MMXETHJA.css +156 -0
  7. package/dist/OraculoSeccionClubOlimpo-APZYPQ5V.css +116 -0
  8. package/dist/OraculoSeccionClubOlimpo-MYTRV5IN.css +273 -0
  9. package/dist/OraculoSeccionClubOlimpo-TV3LABJ5.mjs +9 -0
  10. package/dist/OraculoSeccionClubOlimpo-XGB4KUKX.mjs +7 -0
  11. package/dist/OraculoSeccionDestacados-QU6BT2NM.mjs +18 -0
  12. package/dist/OraculoSeccionDestacados-WQX2GQNY.css +397 -0
  13. package/dist/OraculoSeccionTopJuegos-3AR4L7SZ.css +59 -0
  14. package/dist/OraculoSeccionTopJuegos-FZUYQEMC.mjs +8 -0
  15. package/dist/OraculoSeccionVirtuales-MGW5X23B.mjs +11 -0
  16. package/dist/OraculoSeccionVirtuales-OP2CSKUP.css +216 -0
  17. package/dist/chunk-2D7ZJMJV.mjs +118 -0
  18. package/dist/chunk-5GTDKE3I.mjs +30 -0
  19. package/dist/chunk-AFPCFXMZ.mjs +174 -0
  20. package/dist/chunk-AIT7B2J3.mjs +192 -0
  21. package/dist/chunk-DKP3HTEP.mjs +183 -0
  22. package/dist/chunk-IJQLK4NO.mjs +73 -0
  23. package/dist/chunk-PVY5Z3JS.mjs +249 -0
  24. package/dist/chunk-PXIOKT7L.mjs +39177 -0
  25. package/dist/chunk-PZJSZNXJ.mjs +6 -0
  26. package/dist/chunk-VHW77D2M.mjs +91 -0
  27. package/dist/chunk-VIPLL6XT.mjs +43 -0
  28. package/dist/chunk-WPLILXPP.mjs +389 -0
  29. package/dist/chunk-YY5T37WR.mjs +175 -0
  30. package/dist/index.d.mts +45 -2
  31. package/dist/index.d.ts +45 -2
  32. package/dist/index.js +39897 -1277
  33. package/dist/index.mjs +41 -1812
  34. package/package.json +1 -1
package/dist/index.mjs CHANGED
@@ -1,1818 +1,46 @@
1
- // src/atoms/OraculoButton/OraculoButton.tsx
2
- import { Link as MuiLink } from "@mui/material";
3
- import { Fragment, jsx, jsxs } from "react/jsx-runtime";
4
- function OraculoButton({
5
- children,
6
- onClick,
7
- href,
8
- target,
9
- rel,
10
- type = "button",
11
- disabled = false,
12
- variant = "primary",
13
- size,
14
- fullWidth = false,
15
- fullHeight = false,
16
- className = "",
17
- ariaLabel,
18
- leftIcon,
19
- rightIcon,
20
- iconOnly
21
- }) {
22
- const hasText = !!children && children !== true;
23
- const hasLeft = !!leftIcon;
24
- const hasRight = !!rightIcon;
25
- const onlyOneIcon = (hasLeft ? 1 : 0) + (hasRight ? 1 : 0) === 1;
26
- const isIconOnly = iconOnly != null ? iconOnly : onlyOneIcon && !hasText;
27
- const cls = [
28
- "orc-btn",
29
- variant === "secondary" ? "orc-btn--secondary" : variant === "tertiary" ? "orc-btn--tertiary" : "orc-btn--primary",
30
- size ? `orc-btn--${size}` : "",
31
- fullWidth ? "orc-btn--full" : "",
32
- fullHeight ? "orc-btn--fullHeight" : "",
33
- isIconOnly ? "orc-btn--iconOnly" : "",
34
- className
35
- ].filter(Boolean).join(" ");
36
- const content = /* @__PURE__ */ jsxs(Fragment, { children: [
37
- leftIcon && /* @__PURE__ */ jsx("span", { className: "orc-btn__icon", children: leftIcon }),
38
- !isIconOnly && /* @__PURE__ */ jsx("span", { className: "orc-btn__label", children }),
39
- rightIcon && /* @__PURE__ */ jsx("span", { className: "orc-btn__icon", children: rightIcon })
40
- ] });
41
- const ariaDisabled = disabled ? true : void 0;
42
- if (href) {
43
- return /* @__PURE__ */ jsx(
44
- MuiLink,
45
- {
46
- href,
47
- target,
48
- rel,
49
- "aria-label": ariaLabel,
50
- "aria-disabled": ariaDisabled,
51
- tabIndex: ariaDisabled ? -1 : void 0,
52
- className: cls,
53
- onClick: ariaDisabled ? (e) => e.preventDefault() : onClick,
54
- children: content
55
- }
56
- );
57
- }
58
- return /* @__PURE__ */ jsx(
59
- "button",
60
- {
61
- type,
62
- onClick,
63
- disabled: !!ariaDisabled,
64
- "aria-label": ariaLabel,
65
- className: cls,
66
- children: content
67
- }
68
- );
69
- }
70
-
71
- // src/atoms/OraculoSectionTitle/OraculoSectionTitle.tsx
72
- import { jsx as jsx2, jsxs as jsxs2 } from "react/jsx-runtime";
73
- function OraculoSectionTitle({
74
- title,
75
- iconUrl,
76
- size = "md",
77
- className = ""
78
- }) {
79
- const sizeClass = size ? `orc-section-title--${size}` : "";
80
- const wrapperClass = [
81
- "orc-section-title",
82
- sizeClass,
83
- className
84
- ].filter(Boolean).join(" ");
85
- return /* @__PURE__ */ jsxs2("div", { className: wrapperClass, children: [
86
- iconUrl && /* @__PURE__ */ jsx2(
87
- "img",
88
- {
89
- src: iconUrl,
90
- alt: "",
91
- className: "orc-section-title__icon"
92
- }
93
- ),
94
- /* @__PURE__ */ jsx2("h2", { className: "orc-section-title__title", children: title })
95
- ] });
96
- }
97
-
98
- // src/atoms/OraculoCarouselDots/OraculoCarouselDots.tsx
99
- import { jsx as jsx3 } from "react/jsx-runtime";
100
- var OraculoCarouselDots = ({
101
- total,
102
- active,
103
- onSelect,
104
- className = ""
105
- }) => {
106
- if (total <= 1) return null;
107
- const rootClass = ["orc-dots", className].filter(Boolean).join(" ");
108
- return /* @__PURE__ */ jsx3("div", { className: rootClass, role: "tablist", children: Array.from({ length: total }).map((_, i) => /* @__PURE__ */ jsx3("span", { className: "orc-dots__cell", children: /* @__PURE__ */ jsx3(
109
- "button",
110
- {
111
- type: "button",
112
- role: "tab",
113
- "aria-selected": i === active,
114
- "aria-label": `Ir al slide ${i + 1}`,
115
- className: "orc-dots__dot" + (i === active ? " orc-dots__dot--active" : ""),
116
- onClick: () => onSelect == null ? void 0 : onSelect(i)
117
- }
118
- ) }, i)) });
119
- };
120
- var OraculoCarouselDots_default = OraculoCarouselDots;
121
-
122
- // src/molecules/OraculoCarousel/OraculoCarousel.tsx
123
1
  import {
124
- useRef,
125
- useImperativeHandle,
126
- forwardRef,
127
- useCallback
128
- } from "react";
2
+ OraculoPageLanding,
3
+ OraculoPageLandingPreview_default,
4
+ OraculoSeccionDestacados
5
+ } from "./chunk-PXIOKT7L.mjs";
129
6
  import {
130
- Splide as SplideRaw,
131
- SplideSlide as SplideSlideRaw
132
- } from "@splidejs/react-splide";
133
- import { jsx as jsx4 } from "react/jsx-runtime";
134
- var Splide = SplideRaw;
135
- var SplideSlide = SplideSlideRaw;
136
- var OraculoCarousel = forwardRef(
137
- ({
138
- items = [],
139
- renderItem,
140
- perPage = 4,
141
- gap = "12px",
142
- breakpoints = {
143
- 1024: { perPage: 3, gap: "10px" },
144
- 768: { perPage: 1.3, gap: "10px", padding: { right: "16px" } }
145
- },
146
- options = {},
147
- className = "",
148
- onMove
149
- }, ref) => {
150
- const splideRef = useRef(null);
151
- useImperativeHandle(ref, () => ({
152
- next: () => {
153
- var _a;
154
- return (_a = splideRef.current) == null ? void 0 : _a.go(">");
155
- },
156
- prev: () => {
157
- var _a;
158
- return (_a = splideRef.current) == null ? void 0 : _a.go("<");
159
- },
160
- go: (index) => {
161
- var _a;
162
- return (_a = splideRef.current) == null ? void 0 : _a.go(index);
163
- }
164
- }));
165
- const handleMove = useCallback(
166
- (splide) => {
167
- const index = splide.index;
168
- const total = splide.length;
169
- const perPage2 = splide.options.perPage || 1;
170
- const isStart = index === 0;
171
- const isEnd = index >= total - perPage2;
172
- onMove == null ? void 0 : onMove({ index, isStart, isEnd, total });
173
- },
174
- [onMove]
175
- );
176
- const handleMounted = useCallback(
177
- (splide) => {
178
- handleMove(splide);
179
- },
180
- [handleMove]
181
- );
182
- return /* @__PURE__ */ jsx4("div", { className, style: { width: "100%" }, children: /* @__PURE__ */ jsx4(
183
- Splide,
184
- {
185
- ref: splideRef,
186
- options: {
187
- type: "slide",
188
- trimSpace: false,
189
- perPage,
190
- gap,
191
- drag: true,
192
- pagination: false,
193
- rewind: false,
194
- arrows: false,
195
- focus: 0,
196
- autoWidth: true,
197
- breakpoints,
198
- ...options
199
- },
200
- onMove: handleMove,
201
- onMounted: handleMounted,
202
- children: items.map((item, index) => {
203
- var _a;
204
- return /* @__PURE__ */ jsx4(SplideSlide, { children: renderItem(item, index) }, (_a = item.id) != null ? _a : index);
205
- })
206
- }
207
- ) });
208
- }
209
- );
210
- var OraculoCarousel_default = OraculoCarousel;
211
-
212
- // src/molecules/OraculoGameRankCard/OraculoGameRankCard.tsx
213
- import Box from "@mui/material/Box";
214
- import { jsx as jsx5, jsxs as jsxs3 } from "react/jsx-runtime";
215
- function OraculoGameRankCard({
216
- imageUrl,
217
- orden = 1,
218
- onClick,
219
- sizes = {
220
- xs: { w: 104, h: 112, r: 18, font: 48 },
221
- md: { w: 186, h: 264, r: 22.6, font: 64 }
222
- }
223
- }) {
224
- var _a, _b, _c, _d;
225
- const getVal = (k, def) => {
226
- var _a2, _b2, _c2, _d2;
227
- return {
228
- xs: (_b2 = (_a2 = sizes.xs) == null ? void 0 : _a2[k]) != null ? _b2 : def,
229
- md: (_d2 = (_c2 = sizes.md) == null ? void 0 : _c2[k]) != null ? _d2 : def
230
- };
231
- };
232
- const W = getVal("w", 186);
233
- const H = getVal("h", 264);
234
- const R = getVal("r", 22.6);
235
- const F = getVal("font", 64);
236
- const hang = {
237
- xs: Math.round(((_b = (_a = sizes.xs) == null ? void 0 : _a.font) != null ? _b : 64) * 0.28),
238
- md: Math.round(((_d = (_c = sizes.md) == null ? void 0 : _c.font) != null ? _d : 64) * 0.28)
239
- };
240
- return /* @__PURE__ */ jsxs3(
241
- Box,
242
- {
243
- onClick,
244
- role: "button",
245
- sx: {
246
- position: "relative",
247
- width: "100%",
248
- maxWidth: { xs: `${W.xs}px`, md: `${W.md}px` },
249
- aspectRatio: {
250
- xs: `${W.xs}/${H.xs}`,
251
- md: `${W.md}/${H.md}`
252
- },
253
- borderRadius: { xs: `${R.xs}px`, md: `${R.md}px` },
254
- boxSizing: "border-box",
255
- cursor: "pointer",
256
- overflow: "visible",
257
- pb: { xs: `${hang.xs}px`, md: `${hang.md}px` },
258
- transition: "transform .15s ease, box-shadow .15s ease",
259
- "&:hover": { transform: "translateY(-2px)", boxShadow: 8 }
260
- },
261
- children: [
262
- /* @__PURE__ */ jsxs3(
263
- Box,
264
- {
265
- sx: {
266
- position: "absolute",
267
- inset: 0,
268
- borderRadius: "inherit",
269
- overflow: "hidden"
270
- },
271
- children: [
272
- /* @__PURE__ */ jsx5(
273
- "img",
274
- {
275
- src: `https://olimpo.bet${imageUrl}`,
276
- alt: "Juego de casino",
277
- loading: "lazy",
278
- style: {
279
- width: "100%",
280
- height: "100%",
281
- objectFit: "cover",
282
- display: "block"
283
- }
284
- }
285
- ),
286
- /* @__PURE__ */ jsx5(
287
- Box,
288
- {
289
- sx: {
290
- position: "absolute",
291
- inset: 0,
292
- background: "linear-gradient(21.29deg, rgba(11,13,27,.8) -1.16%, rgba(255,255,255,0) 55%)",
293
- mixBlendMode: "multiply"
294
- }
295
- }
296
- )
297
- ]
298
- }
299
- ),
300
- /* @__PURE__ */ jsx5(
301
- Box,
302
- {
303
- component: "span",
304
- sx: {
305
- position: "absolute",
306
- left: 8,
307
- bottom: {
308
- xs: `-${hang.xs}px`,
309
- md: `-${hang.md}px`
310
- },
311
- fontFamily: "secondary",
312
- fontSize: {
313
- xs: `${F.xs}px`,
314
- md: `${F.md}px`
315
- },
316
- lineHeight: 1,
317
- color: "#3CC666",
318
- WebkitTextStroke: "1px #9ee86e",
319
- zIndex: 2,
320
- userSelect: "none"
321
- },
322
- children: orden
323
- }
324
- )
325
- ]
326
- }
327
- );
328
- }
329
-
330
- // src/molecules/OraculoLiveCasinoCard/OraculoLiveCasinoCard.tsx
331
- import Box2 from "@mui/material/Box";
332
- import Typography from "@mui/material/Typography";
333
- import { jsx as jsx6, jsxs as jsxs4 } from "react/jsx-runtime";
334
- var OraculoLiveCasinoCard = ({
335
- logo,
336
- provider,
337
- providerName,
338
- machine,
339
- onClick
340
- }) => {
341
- var _a;
342
- return /* @__PURE__ */ jsxs4(
343
- Box2,
344
- {
345
- onClick,
346
- sx: {
347
- flex: "0 0 auto",
348
- position: "relative",
349
- borderRadius: "20px",
350
- overflow: "hidden",
351
- width: { xs: 100, md: 180 },
352
- height: { xs: 200, md: 380 },
353
- transition: "width .50s ease, transform .28s ease",
354
- willChange: "width, transform",
355
- cursor: "pointer",
356
- zIndex: 0,
357
- "&:hover": {
358
- zIndex: 2,
359
- width: { md: 260, xs: 110 }
360
- },
361
- "&:hover .orc-live-provider-label": {
362
- opacity: 1
363
- }
364
- },
365
- children: [
366
- /* @__PURE__ */ jsx6(
367
- Box2,
368
- {
369
- component: "img",
370
- src: logo,
371
- alt: `Juego ${machine != null ? machine : ""}`,
372
- sx: {
373
- position: "absolute",
374
- inset: 0,
375
- width: "100%",
376
- height: "100%",
377
- objectFit: "cover",
378
- display: "block"
379
- }
380
- }
381
- ),
382
- /* @__PURE__ */ jsx6(
383
- Box2,
384
- {
385
- className: "orc-live-provider-label",
386
- sx: {
387
- position: "absolute",
388
- left: "50%",
389
- top: { xs: "75%", md: "80%" },
390
- transform: "translate(-50%, -50%)",
391
- zIndex: 3,
392
- opacity: 0,
393
- transition: "opacity .25s ease",
394
- pointerEvents: "none"
395
- },
396
- children: /* @__PURE__ */ jsx6(
397
- Typography,
398
- {
399
- sx: {
400
- color: "#fff",
401
- fontWeight: 700,
402
- fontSize: { xs: 11, md: 14 },
403
- textTransform: "capitalize"
404
- },
405
- children: (_a = provider != null ? provider : providerName) != null ? _a : ""
406
- }
407
- )
408
- }
409
- )
410
- ]
411
- }
412
- );
413
- };
414
- var OraculoLiveCasinoCard_default = OraculoLiveCasinoCard;
415
-
416
- // src/molecules/OraculoGameCard/OraculoGameCard.tsx
417
- import Box3 from "@mui/material/Box";
418
- import { jsx as jsx7 } from "react/jsx-runtime";
419
- var OraculoGameCard = ({
420
- imageUrl,
421
- onClick,
422
- size = "sm"
423
- }) => {
424
- const dim = size === "lg" ? { w: 280, h: 352 } : { w: 152, h: 168 };
425
- return /* @__PURE__ */ jsx7(
426
- Box3,
427
- {
428
- onClick,
429
- role: "button",
430
- sx: {
431
- position: "relative",
432
- width: `${dim.w}px`,
433
- height: `${dim.h}px`,
434
- borderRadius: "12px",
435
- overflow: "hidden",
436
- boxSizing: "border-box",
437
- transition: "transform .15s ease, box-shadow .15s ease",
438
- "&:hover": {
439
- transform: "translateY(-2px)",
440
- boxShadow: 8,
441
- cursor: "pointer"
442
- },
443
- opacity: 1
444
- },
445
- children: /* @__PURE__ */ jsx7(
446
- "img",
447
- {
448
- src: imageUrl,
449
- alt: "Juego de casino",
450
- loading: "lazy",
451
- style: {
452
- width: "100%",
453
- height: "100%",
454
- objectFit: "cover",
455
- display: "block",
456
- borderRadius: "inherit"
457
- }
458
- }
459
- )
460
- }
461
- );
462
- };
463
- var OraculoGameCard_default = OraculoGameCard;
464
-
465
- // src/molecules/OraculoGameSlide/OraculoGameSlide.tsx
466
- import Box4 from "@mui/material/Box";
467
- import { jsx as jsx8, jsxs as jsxs5 } from "react/jsx-runtime";
468
- var GAP = 12;
469
- var OraculoGameSlide = ({
470
- items,
471
- layout = "grid",
472
- onClick
473
- }) => {
474
- if (layout === "mosaic") {
475
- const big = items[0];
476
- const smalls = items.slice(1, 5);
477
- return /* @__PURE__ */ jsxs5(
478
- Box4,
479
- {
480
- sx: {
481
- display: "grid",
482
- gridTemplateRows: {
483
- xs: `repeat(2, 112px)`,
484
- md: `repeat(2, 168px)`
485
- },
486
- gridTemplateColumns: {
487
- xs: `184px`,
488
- md: `280px`
489
- },
490
- gridAutoFlow: "column",
491
- gridAutoColumns: {
492
- xs: `104px`,
493
- md: `152px`
494
- },
495
- columnGap: `${GAP}px`,
496
- rowGap: `${GAP}px`,
497
- alignItems: "stretch",
498
- justifyItems: "stretch"
499
- },
500
- children: [
501
- big && /* @__PURE__ */ jsx8(
502
- Box4,
503
- {
504
- sx: {
505
- width: { xs: 184, md: 280 },
506
- height: { xs: 234, md: 352 },
507
- gridRow: "1 / span 2",
508
- overflow: "hidden",
509
- borderRadius: 2,
510
- "& > *": { width: "100%", height: "100%" }
511
- },
512
- children: /* @__PURE__ */ jsx8(
513
- OraculoGameCard_default,
514
- {
515
- imageUrl: big.imageUrl,
516
- size: "lg",
517
- onClick: () => onClick == null ? void 0 : onClick(big, 0)
518
- }
519
- )
520
- }
521
- ),
522
- smalls.map((it, index) => /* @__PURE__ */ jsx8(
523
- Box4,
524
- {
525
- sx: {
526
- width: { xs: 104, md: 152 },
527
- height: { xs: 112, md: 168 },
528
- overflow: "hidden",
529
- borderRadius: 2,
530
- "& > *": { width: "100%", height: "100%" }
531
- },
532
- children: /* @__PURE__ */ jsx8(
533
- OraculoGameCard_default,
534
- {
535
- imageUrl: it.imageUrl,
536
- size: "sm",
537
- onClick: () => onClick == null ? void 0 : onClick(it, index + 1)
538
- }
539
- )
540
- },
541
- it.id
542
- ))
543
- ]
544
- }
545
- );
546
- }
547
- return /* @__PURE__ */ jsx8(
548
- Box4,
549
- {
550
- sx: {
551
- display: "grid",
552
- gridTemplateColumns: {
553
- xs: `repeat(2, 104px)`,
554
- md: `repeat(2, 152px)`
555
- },
556
- gridTemplateRows: {
557
- xs: `repeat(2, 112px)`,
558
- md: `repeat(2, 168px)`
559
- },
560
- gap: `${GAP}px`,
561
- "& > *": {
562
- overflow: "hidden",
563
- borderRadius: 2,
564
- "& > *": { width: "100%", height: "100%" }
565
- }
566
- },
567
- children: items.map((it, index) => /* @__PURE__ */ jsx8(Box4, { children: /* @__PURE__ */ jsx8(
568
- OraculoGameCard_default,
569
- {
570
- imageUrl: it.imageUrl,
571
- size: "sm",
572
- onClick: () => onClick == null ? void 0 : onClick(it, index)
573
- }
574
- ) }, it.id))
575
- }
576
- );
577
- };
578
- var OraculoGameSlide_default = OraculoGameSlide;
579
-
580
- // src/molecules/OraculoWelcomeBanner/OraculoWelcomeBanner.tsx
581
- import Box5 from "@mui/material/Box";
582
- import Typography2 from "@mui/material/Typography";
583
- import { jsx as jsx9, jsxs as jsxs6 } from "react/jsx-runtime";
584
- var OraculoWelcomeBanner = ({
585
- title,
586
- amount,
587
- subtitle,
588
- buttonText,
589
- onButtonClick,
590
- backgroundImage,
591
- alt,
592
- className = "",
593
- variant = "small"
594
- }) => {
595
- const symbol = amount ? amount.slice(0, 2) : "";
596
- const value = amount ? amount.slice(2) : "";
597
- const isLarge = variant === "large";
598
- return /* @__PURE__ */ jsxs6(
599
- Box5,
600
- {
601
- className,
602
- sx: {
603
- position: "relative",
604
- width: "100%",
605
- maxWidth: {
606
- xs: 328,
607
- lg: isLarge ? 618 : 456
608
- },
609
- mx: "auto"
610
- },
611
- children: [
612
- backgroundImage && /* @__PURE__ */ jsx9(
613
- Box5,
614
- {
615
- sx: {
616
- position: "relative",
617
- width: "100%",
618
- aspectRatio: {
619
- xs: "328 / 188",
620
- lg: isLarge ? "618 / 346" : "456 / 272"
621
- },
622
- borderRadius: "14px",
623
- overflow: "hidden"
624
- },
625
- children: /* @__PURE__ */ jsx9(
626
- Box5,
627
- {
628
- component: "img",
629
- src: backgroundImage,
630
- alt: alt != null ? alt : "Fondo promocional",
631
- sx: {
632
- width: "100%",
633
- height: "100%",
634
- objectFit: "cover",
635
- objectPosition: {
636
- xs: "50% 0%",
637
- lg: "45% 0%"
638
- },
639
- display: "block"
640
- }
641
- }
642
- )
643
- }
644
- ),
645
- /* @__PURE__ */ jsx9(
646
- Box5,
647
- {
648
- sx: {
649
- position: "absolute",
650
- inset: 0,
651
- display: "flex",
652
- alignItems: "center",
653
- justifyContent: "flex-end",
654
- color: "#e7f8ff",
655
- textAlign: "center",
656
- pl: "14%",
657
- pr: { xs: "14%", lg: "15%" }
658
- },
659
- children: /* @__PURE__ */ jsxs6(
660
- Box5,
661
- {
662
- sx: {
663
- maxWidth: "60%",
664
- display: "flex",
665
- flexDirection: "column",
666
- alignItems: "center"
667
- },
668
- children: [
669
- title && /* @__PURE__ */ jsx9(
670
- Typography2,
671
- {
672
- sx: {
673
- fontSize: { xs: 12, lg: 20 },
674
- fontWeight: 400,
675
- color: "#e7f8ff"
676
- },
677
- children: title
678
- }
679
- ),
680
- amount && /* @__PURE__ */ jsxs6(
681
- Box5,
682
- {
683
- component: "p",
684
- sx: {
685
- fontFamily: '"secondary", sans-serif',
686
- lineHeight: { xs: 0.9, lg: 0.87 },
687
- m: "4px 0",
688
- background: "linear-gradient(175deg, #EDC421 -12.56%, #FFFABF 17.99%, #EDC421 49.74%)",
689
- WebkitBackgroundClip: "text",
690
- WebkitTextFillColor: "transparent",
691
- WebkitTextStroke: "0.5px #fff8c1",
692
- filter: "drop-shadow(0px 4px 0px #8D4406) drop-shadow(0px 4px 4px rgba(28, 28, 28, 0.4))",
693
- display: "flex",
694
- alignItems: "baseline",
695
- justifyContent: "center"
696
- },
697
- children: [
698
- /* @__PURE__ */ jsx9(
699
- Box5,
700
- {
701
- component: "span",
702
- sx: { fontSize: { xs: 35, lg: 48 }, mr: 0.5 },
703
- children: symbol
704
- }
705
- ),
706
- /* @__PURE__ */ jsx9(
707
- Box5,
708
- {
709
- component: "span",
710
- sx: { fontSize: { xs: 52, lg: 77 } },
711
- children: value
712
- }
713
- )
714
- ]
715
- }
716
- ),
717
- subtitle && /* @__PURE__ */ jsx9(
718
- Typography2,
719
- {
720
- sx: {
721
- pb: "20px",
722
- fontSize: 14,
723
- fontWeight: 600,
724
- color: "#e7f8ff"
725
- },
726
- children: subtitle
727
- }
728
- ),
729
- buttonText && /* @__PURE__ */ jsx9(OraculoButton, { onClick: onButtonClick, children: buttonText })
730
- ]
731
- }
732
- )
733
- }
734
- )
735
- ]
736
- }
737
- );
738
- };
739
- var OraculoWelcomeBanner_default = OraculoWelcomeBanner;
740
-
741
- // src/molecules/OraculoClubOlimpoVisual/OraculoClubOlimpoVisual.tsx
742
- import { Fragment as Fragment2, jsx as jsx10, jsxs as jsxs7 } from "react/jsx-runtime";
743
- var OraculoClubOlimpoVisual = ({
744
- text,
745
- buttonLabel = "Conoce m\xE1s",
746
- onClick,
747
- imgAlt = "Club Olimpo",
748
- imgSrcMobile,
749
- imgSrcDesktopBg,
750
- imgSrcDesktopLogo
751
- }) => {
752
- return /* @__PURE__ */ jsxs7(Fragment2, { children: [
753
- /* @__PURE__ */ jsx10("div", { className: "orc-co-bgMobile", children: /* @__PURE__ */ jsx10(
754
- "img",
755
- {
756
- src: imgSrcMobile,
757
- alt: imgAlt,
758
- className: "orc-co-bgMobileImg"
759
- }
760
- ) }),
761
- /* @__PURE__ */ jsxs7("div", { className: "orc-co-bgDesktop", children: [
762
- imgSrcDesktopBg && /* @__PURE__ */ jsx10("div", { className: "orc-co-fillHost", children: /* @__PURE__ */ jsx10(
763
- "img",
764
- {
765
- src: imgSrcDesktopBg,
766
- alt: `${imgAlt} fondo`,
767
- className: "orc-co-bgDesktopImg"
768
- }
769
- ) }),
770
- imgSrcDesktopLogo && /* @__PURE__ */ jsx10("div", { className: "orc-co-logo", children: /* @__PURE__ */ jsx10(
771
- "img",
772
- {
773
- src: imgSrcDesktopLogo,
774
- alt: `${imgAlt} logo`,
775
- className: "orc-co-logoImg"
776
- }
777
- ) }),
778
- /* @__PURE__ */ jsxs7("div", { className: "orc-co-desktopContent", children: [
779
- /* @__PURE__ */ jsx10("p", { className: "orc-co-captionDesktop", children: text }),
780
- /* @__PURE__ */ jsx10(OraculoButton, { onClick, variant: "primary", size: "md", children: buttonLabel })
781
- ] })
782
- ] }),
783
- /* @__PURE__ */ jsxs7("div", { className: "orc-co-bottom", children: [
784
- /* @__PURE__ */ jsx10("p", { className: "orc-co-caption", children: text }),
785
- /* @__PURE__ */ jsx10(OraculoButton, { onClick, variant: "primary", size: "md", children: buttonLabel })
786
- ] })
787
- ] });
788
- };
789
- var OraculoClubOlimpoVisual_default = OraculoClubOlimpoVisual;
790
-
791
- // src/organisms/OraculoSeccionDestacados/OraculoSeccionDestacados.tsx
792
- import { useRef as useRef2, useState } from "react";
793
-
794
- // ../node_modules/@mui/icons-material/esm/utils/createSvgIcon.js
795
- import { createSvgIcon } from "@mui/material/utils";
796
-
797
- // ../node_modules/@mui/icons-material/esm/ChevronLeftRounded.js
798
- import { jsx as _jsx } from "react/jsx-runtime";
799
- var ChevronLeftRounded_default = createSvgIcon(/* @__PURE__ */ _jsx("path", {
800
- d: "M14.71 6.71a.996.996 0 0 0-1.41 0L8.71 11.3c-.39.39-.39 1.02 0 1.41l4.59 4.59c.39.39 1.02.39 1.41 0s.39-1.02 0-1.41L10.83 12l3.88-3.88c.39-.39.38-1.03 0-1.41"
801
- }), "ChevronLeftRounded");
802
-
803
- // ../node_modules/@mui/icons-material/esm/ChevronRightRounded.js
804
- import { jsx as _jsx2 } from "react/jsx-runtime";
805
- var ChevronRightRounded_default = createSvgIcon(/* @__PURE__ */ _jsx2("path", {
806
- d: "M9.29 6.71c-.39.39-.39 1.02 0 1.41L13.17 12l-3.88 3.88c-.39.39-.39 1.02 0 1.41s1.02.39 1.41 0l4.59-4.59c.39-.39.39-1.02 0-1.41L10.7 6.7c-.38-.38-1.02-.38-1.41.01"
807
- }), "ChevronRightRounded");
808
-
809
- // src/organisms/OraculoSeccionDestacados/OraculoSeccionDestacados.tsx
810
- import { jsx as jsx11, jsxs as jsxs8 } from "react/jsx-runtime";
811
- function OraculoSeccionDestacados({
812
- items,
813
- title = "Destacados",
814
- iconUrl,
815
- onViewMore,
816
- className = ""
817
- }) {
818
- const carouselRef = useRef2(null);
819
- const [navState, setNavState] = useState({ isStart: true, isEnd: false });
820
- const handlePrev = () => {
821
- var _a;
822
- (_a = carouselRef.current) == null ? void 0 : _a.prev();
823
- };
824
- const handleNext = () => {
825
- var _a;
826
- (_a = carouselRef.current) == null ? void 0 : _a.next();
827
- };
828
- const handleViewMore = () => {
829
- onViewMore == null ? void 0 : onViewMore();
830
- };
831
- const sectionClassName = className || void 0;
832
- return /* @__PURE__ */ jsxs8("section", { className: sectionClassName, style: { width: "100%" }, children: [
833
- /* @__PURE__ */ jsxs8(
834
- "header",
835
- {
836
- style: {
837
- display: "grid",
838
- gridTemplateColumns: "1fr auto auto",
839
- alignItems: "center",
840
- columnGap: 12,
841
- rowGap: 8,
842
- marginBottom: 16
843
- },
844
- children: [
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
- ] }),
870
- /* @__PURE__ */ jsx11(OraculoButton, { variant: "secondary", onClick: handleViewMore, children: "Ver m\xE1s" })
871
- ]
872
- }
873
- ),
874
- /* @__PURE__ */ jsx11(
875
- OraculoCarousel_default,
876
- {
877
- ref: carouselRef,
878
- items,
879
- perPage: 3.395,
880
- gap: "16px",
881
- options: { autoWidth: false },
882
- breakpoints: {
883
- 768: { perPage: 1.15, focus: "start" },
884
- 1024: { perPage: 2.5, focus: "start" }
885
- },
886
- renderItem: (item) => /* @__PURE__ */ jsx11(
887
- "div",
888
- {
889
- style: {
890
- textAlign: "center",
891
- marginTop: 16
892
- },
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
- ),
909
- onMove: ({ isStart, isEnd }) => setNavState({ isStart, isEnd })
910
- }
911
- )
912
- ] });
913
- }
914
-
915
- // src/organisms/OraculoSeccionTopJuegos/OraculoSeccionTopJuegos.tsx
916
- import { useMemo } from "react";
917
- import Stack from "@mui/material/Stack";
918
- import Box6 from "@mui/material/Box";
919
- import { jsx as jsx12, jsxs as jsxs9 } from "react/jsx-runtime";
920
- function OraculoSeccionTopJuegos({
921
- items,
922
- title = "Top Juegos",
923
- iconUrl,
924
- onCardClick
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
- );
941
- return /* @__PURE__ */ jsx12("section", { style: { width: "100%" }, children: /* @__PURE__ */ jsxs9(Stack, { direction: "column", spacing: 2, useFlexGap: true, children: [
942
- /* @__PURE__ */ jsx12(OraculoSectionTitle, { title, iconUrl, size: "md" }),
943
- /* @__PURE__ */ jsx12(
944
- Box6,
945
- {
946
- sx: {
947
- display: "grid",
948
- gridTemplateColumns: {
949
- xs: "repeat(3, minmax(0, 1fr))",
950
- md: "repeat(6, minmax(0, 1fr))"
951
- },
952
- gap: { xs: 1.5, md: 2 },
953
- justifyItems: "center",
954
- width: "100%"
955
- },
956
- children: normalizedItems.slice(0, 6).map((juego) => /* @__PURE__ */ jsx12(
957
- OraculoGameRankCard,
958
- {
959
- imageUrl: juego.logo || "",
960
- orden: juego.orden,
961
- onClick: () => onCardClick == null ? void 0 : onCardClick(juego)
962
- },
963
- juego.machine
964
- ))
965
- }
966
- )
967
- ] }) });
968
- }
969
-
970
- // src/organisms/OraculoSeccionCasinoEnVivo/OraculoSeccionCasinoEnVivo.tsx
971
- import Box7 from "@mui/material/Box";
972
- import Stack2 from "@mui/material/Stack";
973
- import Typography3 from "@mui/material/Typography";
974
- import { jsx as jsx13, jsxs as jsxs10 } from "react/jsx-runtime";
975
- var OraculoSeccionCasinoEnVivo = ({
976
- items,
977
- title = "Casino en vivo",
978
- subtitle = "Disfruta la emoci\xF3n en tus juegos favoritos y gana en tiempo real.",
979
- backgroundMobileUrl = "/assets/img/home/CasinoEnVivo/FondoMobile3.png",
980
- backgroundDesktopUrl = "/assets/img/home/CasinoEnVivo/FondoDesktop3.png",
981
- onCardClick,
982
- onViewMore,
983
- className
984
- }) => {
985
- return /* @__PURE__ */ jsxs10(
986
- Box7,
987
- {
988
- className,
989
- sx: {
990
- position: "relative",
991
- width: "100vw",
992
- left: "50%",
993
- right: "50%",
994
- transform: "translateX(-50%)",
995
- color: "white",
996
- overflow: "hidden"
997
- },
998
- children: [
999
- /* @__PURE__ */ jsx13(
1000
- Box7,
1001
- {
1002
- sx: {
1003
- position: "absolute",
1004
- inset: 0,
1005
- backgroundImage: {
1006
- xs: `
1007
- linear-gradient(to bottom, #121212 0%, rgba(18,18,18,0) 10%),
1008
- linear-gradient(to top, #121212 0%, rgba(18,18,18,0) 10%),
1009
- url('${backgroundMobileUrl}')
1010
- `,
1011
- md: `
1012
- linear-gradient(to bottom, #121212 0%, rgba(18,18,18,0) 10%),
1013
- linear-gradient(to top, #121212 0%, rgba(18,18,18,0) 10%),
1014
- url('${backgroundDesktopUrl}')
1015
- `
1016
- },
1017
- backgroundSize: "cover",
1018
- backgroundPosition: "center",
1019
- backgroundRepeat: "no-repeat",
1020
- zIndex: 0
1021
- }
1022
- }
1023
- ),
1024
- /* @__PURE__ */ jsxs10(
1025
- Box7,
1026
- {
1027
- sx: {
1028
- position: "relative",
1029
- zIndex: 1,
1030
- maxWidth: 1200,
1031
- height: { xs: "450px", md: "550px" },
1032
- mx: "auto",
1033
- px: { xs: 2.5, md: 6 },
1034
- display: "flex",
1035
- flexDirection: { xs: "column", md: "row" },
1036
- alignItems: { xs: "center", md: "center" },
1037
- justifyContent: "center",
1038
- gap: { xs: 0, md: 15 },
1039
- textAlign: { xs: "center", md: "left" }
1040
- },
1041
- children: [
1042
- /* @__PURE__ */ jsxs10(Stack2, { spacing: 3, sx: { maxWidth: { md: 280 } }, children: [
1043
- /* @__PURE__ */ jsx13(
1044
- Typography3,
1045
- {
1046
- variant: "h4",
1047
- sx: {
1048
- fontWeight: 800,
1049
- fontSize: { xs: 24, md: 40 },
1050
- WebkitTextStroke: "0.5px rgba(255, 255, 255, .5)",
1051
- textShadow: "0 0 2px rgba(255, 255, 255, .95),0 0 4px rgba(255, 255, 255, .6),0 1px 0 #898989"
1052
- },
1053
- children: title
1054
- }
1055
- ),
1056
- /* @__PURE__ */ jsx13(
1057
- Typography3,
1058
- {
1059
- sx: {
1060
- fontSize: { xs: 14, md: 18 },
1061
- color: "rgba(255,255,255,0.9)",
1062
- marginX: { xs: 4, md: 0 },
1063
- lineHeight: 1.5
1064
- },
1065
- children: subtitle
1066
- }
1067
- ),
1068
- /* @__PURE__ */ jsx13(Box7, { sx: { display: { xs: "none", md: "block" } }, children: /* @__PURE__ */ jsx13(
1069
- OraculoButton,
1070
- {
1071
- variant: "primary",
1072
- size: "md",
1073
- onClick: () => onViewMore == null ? void 0 : onViewMore(),
1074
- children: "Ver m\xE1s"
1075
- }
1076
- ) })
1077
- ] }),
1078
- /* @__PURE__ */ jsx13(
1079
- Box7,
1080
- {
1081
- sx: {
1082
- display: "flex",
1083
- gap: { xs: 2, md: 3 },
1084
- justifyContent: "center",
1085
- overflowX: { xs: "auto", md: "visible" },
1086
- py: { xs: 3, md: 0 },
1087
- alignItems: "center"
1088
- },
1089
- children: items.map((juego, idx) => {
1090
- var _a, _b;
1091
- return /* @__PURE__ */ jsx13(
1092
- OraculoLiveCasinoCard_default,
1093
- {
1094
- logo: (_b = juego.logo) != null ? _b : "",
1095
- provider: juego.provider,
1096
- providerName: juego.web_name,
1097
- machine: juego.machine,
1098
- onClick: () => onCardClick == null ? void 0 : onCardClick(juego, idx)
1099
- },
1100
- (_a = juego.orden) != null ? _a : idx
1101
- );
1102
- })
1103
- }
1104
- ),
1105
- /* @__PURE__ */ jsx13(Box7, { sx: { display: { xs: "block", md: "none" } }, children: /* @__PURE__ */ jsx13(
1106
- OraculoButton,
1107
- {
1108
- variant: "primary",
1109
- size: "lg",
1110
- onClick: () => onViewMore == null ? void 0 : onViewMore(),
1111
- children: "Ver m\xE1s"
1112
- }
1113
- ) })
1114
- ]
1115
- }
1116
- )
1117
- ]
1118
- }
1119
- );
1120
- };
1121
- var OraculoSeccionCasinoEnVivo_default = OraculoSeccionCasinoEnVivo;
1122
-
1123
- // src/organisms/OraculoSeccionCasino/OraculoSeccionCasino.tsx
1124
- import { useRef as useRef3, useState as useState2 } from "react";
1125
- import Stack3 from "@mui/material/Stack";
1126
- import Box8 from "@mui/material/Box";
1127
- import { jsx as jsx14, jsxs as jsxs11 } from "react/jsx-runtime";
1128
- var buildCasinoSlides = (games, mosaicFirst = true, gridSize = 4) => {
1129
- const baseItems = games.map((g, idx) => {
1130
- var _a, _b, _c;
1131
- return {
1132
- id: (_b = (_a = g.orden) != null ? _a : g.machine) != null ? _b : idx,
1133
- imageUrl: (_c = g.logo) != null ? _c : ""
1134
- };
1135
- });
1136
- if (!baseItems.length) return [];
1137
- const slides = [];
1138
- let start = 0;
1139
- if (mosaicFirst) {
1140
- const take = Math.min(baseItems.length, 5);
1141
- slides.push({
1142
- id: "mosaic-0",
1143
- kind: "mosaic",
1144
- items: baseItems.slice(0, take)
1145
- });
1146
- start = take;
1147
- }
1148
- while (start < baseItems.length) {
1149
- const end = Math.min(start + gridSize, baseItems.length);
1150
- slides.push({
1151
- id: `grid-${start}`,
1152
- kind: "grid",
1153
- items: baseItems.slice(start, end)
1154
- });
1155
- start = end;
1156
- }
1157
- return slides;
1158
- };
1159
- var OraculoSeccionCasino = ({
1160
- items,
1161
- title = "Casino",
1162
- iconUrl = "/assets/img/home/Casino/diamante.svg",
1163
- onItemClick,
1164
- onViewMore,
1165
- mosaicFirst = true,
1166
- gridSize = 4
1167
- }) => {
1168
- const carouselRef = useRef3(null);
1169
- const [navState, setNavState] = useState2({ isStart: true, isEnd: false });
1170
- const slides = buildCasinoSlides(items, mosaicFirst, gridSize);
1171
- const handlePrev = () => {
1172
- var _a;
1173
- (_a = carouselRef.current) == null ? void 0 : _a.prev();
1174
- };
1175
- const handleNext = () => {
1176
- var _a;
1177
- (_a = carouselRef.current) == null ? void 0 : _a.next();
1178
- };
1179
- const handleViewMore = () => {
1180
- onViewMore == null ? void 0 : onViewMore();
1181
- };
1182
- return /* @__PURE__ */ jsx14("section", { children: /* @__PURE__ */ jsxs11(Stack3, { direction: "column", spacing: 2, useFlexGap: true, children: [
1183
- /* @__PURE__ */ jsxs11(
1184
- Box8,
1185
- {
1186
- sx: {
1187
- display: "grid",
1188
- gridTemplateColumns: "1fr auto auto",
1189
- alignItems: "center",
1190
- columnGap: 1.5,
1191
- rowGap: 1
1192
- },
1193
- children: [
1194
- /* @__PURE__ */ jsx14(
1195
- OraculoSectionTitle,
1196
- {
1197
- title,
1198
- iconUrl,
1199
- size: "md"
1200
- }
1201
- ),
1202
- /* @__PURE__ */ jsxs11(
1203
- Box8,
1204
- {
1205
- sx: {
1206
- display: "flex",
1207
- gap: 1,
1208
- justifyContent: "flex-end"
1209
- },
1210
- children: [
1211
- /* @__PURE__ */ jsx14(
1212
- OraculoButton,
1213
- {
1214
- ariaLabel: "Anterior",
1215
- variant: "secondary",
1216
- iconOnly: true,
1217
- leftIcon: /* @__PURE__ */ jsx14(ChevronLeftRounded_default, {}),
1218
- onClick: handlePrev,
1219
- disabled: navState.isStart
1220
- }
1221
- ),
1222
- /* @__PURE__ */ jsx14(
1223
- OraculoButton,
1224
- {
1225
- ariaLabel: "Siguiente",
1226
- variant: "secondary",
1227
- iconOnly: true,
1228
- rightIcon: /* @__PURE__ */ jsx14(ChevronRightRounded_default, {}),
1229
- onClick: handleNext,
1230
- disabled: navState.isEnd
1231
- }
1232
- )
1233
- ]
1234
- }
1235
- ),
1236
- /* @__PURE__ */ jsx14(Box8, { sx: { justifySelf: "end" }, children: /* @__PURE__ */ jsx14(OraculoButton, { variant: "secondary", onClick: handleViewMore, children: "Ver m\xE1s" }) })
1237
- ]
1238
- }
1239
- ),
1240
- /* @__PURE__ */ jsx14(
1241
- OraculoCarousel_default,
1242
- {
1243
- ref: carouselRef,
1244
- items: slides,
1245
- perPage: 1,
1246
- gap: "0px",
1247
- options: {
1248
- autoWidth: true,
1249
- gap: "12px",
1250
- trimSpace: false,
1251
- pagination: false,
1252
- arrows: false,
1253
- drag: true,
1254
- focus: "start"
1255
- },
1256
- renderItem: (slide) => /* @__PURE__ */ jsx14("div", { style: { alignSelf: "start" }, children: /* @__PURE__ */ jsx14(
1257
- OraculoGameSlide_default,
1258
- {
1259
- items: slide.items,
1260
- layout: slide.kind === "mosaic" ? "mosaic" : "grid",
1261
- onClick: (itm) => {
1262
- const game = items.find(
1263
- (g, idx) => {
1264
- var _a;
1265
- return ((_a = g.orden) != null ? _a : idx) === itm.id;
1266
- }
1267
- );
1268
- if (game) onItemClick == null ? void 0 : onItemClick(game);
1269
- }
1270
- }
1271
- ) }),
1272
- onMove: ({ isStart, isEnd }) => setNavState({ isStart, isEnd })
1273
- }
1274
- )
1275
- ] }) });
1276
- };
1277
- var OraculoSeccionCasino_default = OraculoSeccionCasino;
1278
-
1279
- // src/organisms/OraculoSeccionVirtuales/OraculoSeccionVirtuales.tsx
1280
- import { useRef as useRef4, useState as useState3 } from "react";
1281
- import Stack4 from "@mui/material/Stack";
1282
- import Box9 from "@mui/material/Box";
1283
- import { jsx as jsx15, jsxs as jsxs12 } from "react/jsx-runtime";
1284
- var buildVirtualSlides = (games, mosaicFirst = true, gridSize = 4) => {
1285
- const baseItems = games.map((g, idx) => {
1286
- var _a, _b;
1287
- return {
1288
- id: (_a = g.orden) != null ? _a : idx,
1289
- imageUrl: (_b = g.logo) != null ? _b : ""
1290
- };
1291
- });
1292
- if (!baseItems.length) return [];
1293
- const slides = [];
1294
- let start = 0;
1295
- if (mosaicFirst) {
1296
- const take = Math.min(baseItems.length, 5);
1297
- slides.push({
1298
- id: "mosaic-0",
1299
- kind: "mosaic",
1300
- items: baseItems.slice(0, take)
1301
- });
1302
- start = take;
1303
- }
1304
- while (start < baseItems.length) {
1305
- const end = Math.min(start + gridSize, baseItems.length);
1306
- slides.push({
1307
- id: `grid-${start}`,
1308
- kind: "grid",
1309
- items: baseItems.slice(start, end)
1310
- });
1311
- start = end;
1312
- }
1313
- return slides;
1314
- };
1315
- var OraculoSeccionVirtuales = ({
1316
- items,
1317
- title = "Virtuales",
1318
- iconUrl = "/assets/img/home/Virtuales/virtuales.svg",
1319
- onItemClick,
1320
- onViewMore,
1321
- mosaicFirst = true,
1322
- gridSize = 4
1323
- }) => {
1324
- const carouselRef = useRef4(null);
1325
- const [navState, setNavState] = useState3({ isStart: true, isEnd: false });
1326
- const slides = buildVirtualSlides(items, mosaicFirst, gridSize);
1327
- const handlePrev = () => {
1328
- var _a;
1329
- (_a = carouselRef.current) == null ? void 0 : _a.prev();
1330
- };
1331
- const handleNext = () => {
1332
- var _a;
1333
- (_a = carouselRef.current) == null ? void 0 : _a.next();
1334
- };
1335
- const handleViewMore = () => {
1336
- onViewMore == null ? void 0 : onViewMore();
1337
- };
1338
- return /* @__PURE__ */ jsx15("section", { children: /* @__PURE__ */ jsxs12(Stack4, { direction: "column", spacing: 2, useFlexGap: true, children: [
1339
- /* @__PURE__ */ jsxs12(
1340
- Box9,
1341
- {
1342
- sx: {
1343
- display: "grid",
1344
- gridTemplateColumns: "1fr auto auto",
1345
- alignItems: "center",
1346
- columnGap: 1.5,
1347
- rowGap: 1
1348
- },
1349
- children: [
1350
- /* @__PURE__ */ jsx15(
1351
- OraculoSectionTitle,
1352
- {
1353
- title,
1354
- iconUrl,
1355
- size: "md"
1356
- }
1357
- ),
1358
- /* @__PURE__ */ jsxs12(
1359
- Box9,
1360
- {
1361
- sx: {
1362
- display: "flex",
1363
- gap: 1,
1364
- justifyContent: "flex-end"
1365
- },
1366
- children: [
1367
- /* @__PURE__ */ jsx15(
1368
- OraculoButton,
1369
- {
1370
- ariaLabel: "Anterior",
1371
- variant: "secondary",
1372
- iconOnly: true,
1373
- leftIcon: /* @__PURE__ */ jsx15(ChevronLeftRounded_default, {}),
1374
- onClick: handlePrev,
1375
- disabled: navState.isStart
1376
- }
1377
- ),
1378
- /* @__PURE__ */ jsx15(
1379
- OraculoButton,
1380
- {
1381
- ariaLabel: "Siguiente",
1382
- variant: "secondary",
1383
- iconOnly: true,
1384
- rightIcon: /* @__PURE__ */ jsx15(ChevronRightRounded_default, {}),
1385
- onClick: handleNext,
1386
- disabled: navState.isEnd
1387
- }
1388
- )
1389
- ]
1390
- }
1391
- ),
1392
- /* @__PURE__ */ jsx15(Box9, { sx: { justifySelf: "end" }, children: /* @__PURE__ */ jsx15(OraculoButton, { variant: "secondary", onClick: handleViewMore, children: "Ver m\xE1s" }) })
1393
- ]
1394
- }
1395
- ),
1396
- /* @__PURE__ */ jsx15(
1397
- OraculoCarousel_default,
1398
- {
1399
- ref: carouselRef,
1400
- items: slides,
1401
- perPage: 1,
1402
- gap: "0",
1403
- options: {
1404
- autoWidth: true,
1405
- gap: "12px",
1406
- trimSpace: false,
1407
- pagination: false,
1408
- arrows: false,
1409
- drag: true,
1410
- focus: "start",
1411
- perMove: 1
1412
- },
1413
- renderItem: (slide) => /* @__PURE__ */ jsx15("div", { style: { alignSelf: "start" }, children: /* @__PURE__ */ jsx15(
1414
- OraculoGameSlide_default,
1415
- {
1416
- items: slide.items,
1417
- layout: slide.kind === "mosaic" ? "mosaic" : "grid",
1418
- onClick: (itm) => {
1419
- const game = items.find(
1420
- (g, idx) => {
1421
- var _a;
1422
- return ((_a = g.orden) != null ? _a : idx) === itm.id;
1423
- }
1424
- );
1425
- if (game) onItemClick == null ? void 0 : onItemClick(game);
1426
- }
1427
- }
1428
- ) }),
1429
- onMove: ({ isStart, isEnd }) => setNavState({ isStart, isEnd })
1430
- }
1431
- )
1432
- ] }) });
1433
- };
1434
- var OraculoSeccionVirtuales_default = OraculoSeccionVirtuales;
1435
-
1436
- // src/organisms/OraculoSeccionBonoBienvenida/OraculoSeccionBonoBienvenida.tsx
1437
- import { useRef as useRef5, useState as useState4 } from "react";
1438
- import Box10 from "@mui/material/Box";
1439
- import Typography4 from "@mui/material/Typography";
1440
- import useMediaQuery from "@mui/material/useMediaQuery";
1441
- import { Fragment as Fragment3, jsx as jsx16, jsxs as jsxs13 } from "react/jsx-runtime";
1442
- var buildSectionSx = (bgUrl) => ({
1443
- width: "100vw",
1444
- position: "relative",
1445
- left: "50%",
1446
- right: "50%",
1447
- marginLeft: "-50vw",
1448
- marginRight: "-50vw",
1449
- py: 8,
1450
- color: "#fff",
1451
- backgroundImage: `
1452
- linear-gradient(to bottom,#121212 0%, rgba(18,18,18,0) 10%),
1453
- linear-gradient(to top, #121212 0%, rgba(18,18,18,0) 10%),
1454
- linear-gradient(to left, #121212 0%, rgba(18,18,18,0) 10%),
1455
- linear-gradient(to right, #121212 0%, rgba(18,18,18,0) 10%),
1456
- url("${bgUrl}")
1457
- `,
1458
- backgroundRepeat: "no-repeat",
1459
- backgroundPosition: "center",
1460
- backgroundSize: "cover"
1461
- });
1462
- var headlineBaseSx = {
1463
- textAlign: "center",
1464
- lineHeight: 1.1,
1465
- mb: 1.5
1466
- };
1467
- var hlTopSx = {
1468
- display: "inline-block",
1469
- fontWeight: 600,
1470
- fontSize: 24
1471
- };
1472
- var hlBottomSx = {
1473
- display: "inline-block",
1474
- fontSize: 24,
1475
- lineHeight: 1.1,
1476
- WebkitTextStroke: "0.3px rgba(255, 255, 255, .5)",
1477
- textShadow: `
1478
- 0 0 2px rgba(255, 255, 255, .95),
1479
- 0 0 6px rgba(255, 255, 255, .6),
1480
- 0 1px 0 rgba(137, 137, 137, .85)
1481
- `
1482
- };
1483
- var OraculoSeccionBonoBienvenida = ({
1484
- headline,
1485
- items,
1486
- backgroundImageUrl
1487
- }) => {
1488
- const [hl1 = "", hl2 = ""] = (headline || "").split("\n");
1489
- const isMobile = useMediaQuery("(max-width: 767px)");
1490
- const showDots = items.length > 1;
1491
- const bgUrl = backgroundImageUrl != null ? backgroundImageUrl : "/assets/img/home/BonoBienvenida/Fondobg.png";
1492
- const sectionSx = buildSectionSx(bgUrl);
1493
- const carouselRef = useRef5(null);
1494
- const [navState, setNavState] = useState4({ isStart: true, isEnd: false });
1495
- const [activeIndex, setActiveIndex] = useState4(0);
1496
- if (isMobile) {
1497
- return /* @__PURE__ */ jsxs13(
1498
- Box10,
1499
- {
1500
- component: "section",
1501
- sx: {
1502
- ...sectionSx,
1503
- textAlign: "center"
1504
- },
1505
- children: [
1506
- (hl1 || hl2) && /* @__PURE__ */ jsxs13(Box10, { sx: headlineBaseSx, children: [
1507
- hl1 && /* @__PURE__ */ jsx16(Typography4, { component: "span", sx: hlTopSx, children: hl1 }),
1508
- hl2 && /* @__PURE__ */ jsxs13(Fragment3, { children: [
1509
- /* @__PURE__ */ jsx16("br", {}),
1510
- /* @__PURE__ */ jsx16(Typography4, { component: "span", sx: hlBottomSx, children: hl2 })
1511
- ] })
1512
- ] }),
1513
- /* @__PURE__ */ jsxs13(Box10, { children: [
1514
- /* @__PURE__ */ jsx16(
1515
- OraculoCarousel_default,
1516
- {
1517
- ref: carouselRef,
1518
- items,
1519
- perPage: 1,
1520
- gap: "12px",
1521
- breakpoints: {
1522
- 480: {
1523
- perPage: 1,
1524
- gap: "8px",
1525
- padding: { left: "8px", right: "8px" }
1526
- },
1527
- 768: {
1528
- perPage: 1,
1529
- gap: "12px",
1530
- padding: { left: "8px", right: "8px" }
1531
- }
1532
- },
1533
- options: {
1534
- autoWidth: false
1535
- },
1536
- renderItem: (it) => /* @__PURE__ */ jsx16(OraculoWelcomeBanner_default, { ...it, onButtonClick: items[0].onButtonClick }),
1537
- onMove: ({ index, isStart, isEnd }) => {
1538
- setNavState({ isStart, isEnd });
1539
- setActiveIndex(index);
1540
- }
1541
- }
1542
- ),
1543
- showDots && /* @__PURE__ */ jsx16(
1544
- OraculoCarouselDots_default,
1545
- {
1546
- total: items.length,
1547
- active: activeIndex,
1548
- onSelect: (i) => {
1549
- var _a;
1550
- setActiveIndex(i);
1551
- (_a = carouselRef.current) == null ? void 0 : _a.go(i);
1552
- }
1553
- }
1554
- )
1555
- ] })
1556
- ]
1557
- }
1558
- );
1559
- }
1560
- return /* @__PURE__ */ jsx16(Box10, { component: "section", sx: sectionSx, children: /* @__PURE__ */ jsxs13(
1561
- Box10,
1562
- {
1563
- sx: {
1564
- maxWidth: 1200,
1565
- mx: 5,
1566
- px: 2,
1567
- display: "grid",
1568
- gridTemplateColumns: "200px auto",
1569
- alignItems: "center"
1570
- },
1571
- children: [
1572
- (hl1 || hl2) && /* @__PURE__ */ jsx16(
1573
- Box10,
1574
- {
1575
- sx: {
1576
- display: "flex",
1577
- alignItems: "center",
1578
- justifyContent: "flex-start",
1579
- minHeight: "100%"
1580
- },
1581
- children: /* @__PURE__ */ jsxs13(
1582
- Box10,
1583
- {
1584
- sx: {
1585
- ...headlineBaseSx,
1586
- textAlign: "left",
1587
- mb: 0
1588
- },
1589
- children: [
1590
- hl1 && /* @__PURE__ */ jsx16(Typography4, { component: "span", sx: hlTopSx, children: hl1 }),
1591
- hl2 && /* @__PURE__ */ jsxs13(Fragment3, { children: [
1592
- /* @__PURE__ */ jsx16("br", {}),
1593
- /* @__PURE__ */ jsx16(Typography4, { component: "span", sx: hlBottomSx, children: hl2 })
1594
- ] })
1595
- ]
1596
- }
1597
- )
1598
- }
1599
- ),
1600
- /* @__PURE__ */ jsx16(
1601
- Box10,
1602
- {
1603
- sx: {
1604
- display: "flex",
1605
- justifyContent: "center",
1606
- alignItems: "center",
1607
- flexWrap: "nowrap",
1608
- gap: 4
1609
- },
1610
- children: items.map((it, idx) => /* @__PURE__ */ jsx16(
1611
- OraculoWelcomeBanner_default,
1612
- {
1613
- onButtonClick: it.onButtonClick,
1614
- ...it
1615
- },
1616
- idx
1617
- ))
1618
- }
1619
- )
1620
- ]
1621
- }
1622
- ) });
1623
- };
1624
- var OraculoSeccionBonoBienvenida_default = OraculoSeccionBonoBienvenida;
1625
-
1626
- // src/organisms/OraculoSeccionClubOlimpo/OraculoSeccionClubOlimpo.tsx
1627
- import { useLayoutEffect, useRef as useRef6 } from "react";
1628
- import { jsx as jsx17 } from "react/jsx-runtime";
1629
- var OraculoSeccionClubOlimpo = ({
1630
- className = "",
1631
- fullBleed = true,
1632
- items,
1633
- selectedIndex = 0,
1634
- ariaLabel
1635
- }) => {
1636
- const rootRef = useRef6(null);
1637
- const bottomRef = useRef6(null);
1638
- if (!items) return null;
1639
- const safeIndex = Math.min(Math.max(selectedIndex, 0), 1);
1640
- const item = items;
1641
- useLayoutEffect(() => {
1642
- if (!rootRef.current || !bottomRef.current) return;
1643
- if (typeof ResizeObserver === "undefined") return;
1644
- const root = rootRef.current;
1645
- const bottom = bottomRef.current;
1646
- const update = () => {
1647
- root.style.setProperty(
1648
- "--orc-co-bottomH",
1649
- `${bottom.offsetHeight + 16}px`
1650
- );
1651
- };
1652
- const ro = new ResizeObserver(update);
1653
- ro.observe(bottom);
1654
- update();
1655
- return () => ro.disconnect();
1656
- }, []);
1657
- const rootClass = [
1658
- "orc-co-wrap",
1659
- fullBleed ? "orc-co-fullBleed" : "",
1660
- className
1661
- ].filter(Boolean).join(" ");
1662
- return /* @__PURE__ */ jsx17(
1663
- "section",
1664
- {
1665
- ref: rootRef,
1666
- className: rootClass,
1667
- "aria-label": ariaLabel || item.imgAlt || "Club Olimpo",
1668
- children: /* @__PURE__ */ jsx17("div", { ref: bottomRef, children: /* @__PURE__ */ jsx17(
1669
- OraculoClubOlimpoVisual_default,
1670
- {
1671
- text: item.text,
1672
- onClick: item.onClick,
1673
- imgAlt: item.imgAlt,
1674
- imgSrcMobile: item.images.mobile,
1675
- imgSrcDesktopBg: item.images.desktopBg,
1676
- imgSrcDesktopLogo: item.images.desktopLogo
1677
- }
1678
- ) })
1679
- }
1680
- );
1681
- };
1682
- var OraculoSeccionClubOlimpo_default = OraculoSeccionClubOlimpo;
1683
-
1684
- // src/templates/OraculoPageLanding.tsx
7
+ OraculoClubOlimpoVisual_default,
8
+ OraculoSeccionClubOlimpo_default
9
+ } from "./chunk-2D7ZJMJV.mjs";
10
+ import "./chunk-PZJSZNXJ.mjs";
11
+ import {
12
+ OraculoGameRankCard,
13
+ OraculoSeccionTopJuegos
14
+ } from "./chunk-DKP3HTEP.mjs";
15
+ import {
16
+ OraculoLiveCasinoCard_default,
17
+ OraculoSeccionCasinoEnVivo_default
18
+ } from "./chunk-PVY5Z3JS.mjs";
19
+ import {
20
+ OraculoSeccionCasino_default
21
+ } from "./chunk-AFPCFXMZ.mjs";
22
+ import {
23
+ OraculoSeccionVirtuales_default
24
+ } from "./chunk-YY5T37WR.mjs";
25
+ import {
26
+ OraculoGameCard_default,
27
+ OraculoGameSlide_default
28
+ } from "./chunk-AIT7B2J3.mjs";
29
+ import {
30
+ OraculoSectionTitle
31
+ } from "./chunk-5GTDKE3I.mjs";
32
+ import {
33
+ OraculoCarouselDots_default,
34
+ OraculoSeccionBonoBienvenida_default,
35
+ OraculoWelcomeBanner_default
36
+ } from "./chunk-WPLILXPP.mjs";
37
+ import {
38
+ OraculoCarousel_default
39
+ } from "./chunk-VHW77D2M.mjs";
1685
40
  import {
1686
- Container,
1687
- Stack as Stack5
1688
- } from "@mui/material";
1689
- import { jsx as jsx18, jsxs as jsxs14 } from "react/jsx-runtime";
1690
- function OraculoPageLanding({ props }) {
1691
- const clubOlimpoItems = [
1692
- {
1693
- text: "\xA1Canjea bonos, productos \n y las mejores experiencias!",
1694
- imgAlt: "Club Olimpo",
1695
- images: {
1696
- mobile: "/assets/img/home/ClubOlimpo/FondoMobile.png",
1697
- desktopBg: "/assets/img/home/ClubOlimpo/FondoDesktop.png",
1698
- desktopLogo: "/assets/img/home/ClubOlimpo/Logo.png"
1699
- },
1700
- onClick: () => console.log("CTA Club Olimpo")
1701
- }
1702
- ];
1703
- const listaDestacados = [
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
- }
1750
- ];
1751
- return /* @__PURE__ */ jsxs14(Container, { className: "oli-font", sx: { backgroundColor: "#121212", position: "relative", pb: 5 }, maxWidth: false, children: [
1752
- /* @__PURE__ */ jsx18(
1753
- OraculoSeccionBonoBienvenida_default,
1754
- {
1755
- headline: props.bonos.headline,
1756
- items: props.bonos.items
1757
- }
1758
- ),
1759
- /* @__PURE__ */ jsxs14(Stack5, { direction: "column", spacing: 12, useFlexGap: true, children: [
1760
- /* @__PURE__ */ jsx18(
1761
- OraculoSeccionTopJuegos,
1762
- {
1763
- items: props.topJuegos.items,
1764
- title: props.topJuegos.title,
1765
- iconUrl: props.topJuegos.iconUrl,
1766
- onCardClick: props.topJuegos.onCardClick
1767
- }
1768
- ),
1769
- /* @__PURE__ */ jsx18(
1770
- OraculoSeccionCasino_default,
1771
- {
1772
- items: props.casino.items,
1773
- title: props.casino.title,
1774
- iconUrl: props.casino.iconUrl,
1775
- onItemClick: props.casino.onItemClick,
1776
- onViewMore: props.casino.onViewMore
1777
- }
1778
- )
1779
- ] }),
1780
- /* @__PURE__ */ jsx18(
1781
- OraculoSeccionCasinoEnVivo_default,
1782
- {
1783
- items: props.casinoEnVivo.items,
1784
- title: props.casinoEnVivo.title,
1785
- subtitle: props.casinoEnVivo.subtitle,
1786
- backgroundMobileUrl: props.casinoEnVivo.backgroundMobileUrl,
1787
- backgroundDesktopUrl: props.casinoEnVivo.backgroundDesktopUrl,
1788
- onCardClick: props.casinoEnVivo.onCardClick,
1789
- onViewMore: props.casinoEnVivo.onViewMore
1790
- }
1791
- ),
1792
- /* @__PURE__ */ jsxs14(Stack5, { direction: "column", spacing: 12, useFlexGap: true, children: [
1793
- /* @__PURE__ */ jsx18(
1794
- OraculoSeccionVirtuales_default,
1795
- {
1796
- items: props.virtuales.items,
1797
- title: props.virtuales.title,
1798
- iconUrl: props.virtuales.iconUrl,
1799
- onItemClick: props.virtuales.onItemClick,
1800
- onViewMore: props.virtuales.onViewMore
1801
- }
1802
- ),
1803
- /* @__PURE__ */ jsx18(
1804
- OraculoSeccionDestacados,
1805
- {
1806
- items: listaDestacados,
1807
- title: "Destacados",
1808
- iconUrl: "/assets/img/home/Destacados/starIcon.svg",
1809
- onViewMore: () => console.log("Ver m\xE1s clickeado")
1810
- }
1811
- ),
1812
- /* @__PURE__ */ jsx18(OraculoSeccionClubOlimpo_default, { items: props.clubOlimpo })
1813
- ] })
1814
- ] });
1815
- }
41
+ OraculoButton
42
+ } from "./chunk-IJQLK4NO.mjs";
43
+ import "./chunk-VIPLL6XT.mjs";
1816
44
  export {
1817
45
  OraculoButton,
1818
46
  OraculoCarousel_default as OraculoCarousel,
@@ -1823,6 +51,7 @@ export {
1823
51
  OraculoGameSlide_default as OraculoGameSlide,
1824
52
  OraculoLiveCasinoCard_default as OraculoLiveCasinoCard,
1825
53
  OraculoPageLanding,
54
+ OraculoPageLandingPreview_default as OraculoPageLandingPreview,
1826
55
  OraculoSeccionBonoBienvenida_default as OraculoSeccionBonoBienvenida,
1827
56
  OraculoSeccionCasino_default as OraculoSeccionCasino,
1828
57
  OraculoSeccionCasinoEnVivo_default as OraculoSeccionCasinoEnVivo,