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