oraculo-ui 0.1.1 → 0.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.css CHANGED
@@ -214,3 +214,184 @@
214
214
  line-height: 26px;
215
215
  }
216
216
  }
217
+
218
+ /* src/atoms/OraculoCarouselDots/OraculoCarouselDots.css */
219
+ .orc-dots {
220
+ --dot-size: 8px;
221
+ --dot-cell: 20px;
222
+ --dot-active-h: 8px;
223
+ --dot-active-w: 20px;
224
+ --dot-bg: #ffffff;
225
+ --dot-surface: #ffffff;
226
+ --dot-accent: #9EE86E;
227
+ display: flex;
228
+ gap: 0px;
229
+ justify-content: center;
230
+ margin-top: 10px;
231
+ }
232
+ .orc-dots__cell {
233
+ width: var(--dot-cell);
234
+ display: inline-flex;
235
+ justify-content: center;
236
+ }
237
+ .orc-dots__dot {
238
+ width: var(--dot-size);
239
+ height: var(--dot-size);
240
+ border-radius: 9999px;
241
+ background: var(--dot-bg);
242
+ border: 0;
243
+ padding: 0;
244
+ cursor: pointer;
245
+ position: relative;
246
+ transition:
247
+ transform .15s ease,
248
+ background .15s ease,
249
+ width .2s ease,
250
+ height .2s ease;
251
+ }
252
+ .orc-dots__dot:hover {
253
+ transform: scale(1.06);
254
+ }
255
+ .orc-dots__dot--active {
256
+ width: var(--dot-active-w);
257
+ height: var(--dot-active-h);
258
+ border-radius: 9999px;
259
+ background: #fff;
260
+ position: relative;
261
+ overflow: hidden;
262
+ }
263
+ .orc-dots__dot--active::after {
264
+ content: "";
265
+ position: absolute;
266
+ top: 0;
267
+ bottom: 0;
268
+ left: 0;
269
+ width: 40%;
270
+ background: var(--dot-accent);
271
+ border-radius: inherit;
272
+ }
273
+ .orc-dots__dot--active {
274
+ outline: 0;
275
+ outline-offset: 0;
276
+ }
277
+ .orc-dots__dot:focus-visible {
278
+ outline: 2px solid var(--dot-accent);
279
+ outline-offset: 2px;
280
+ }
281
+
282
+ /* src/organisms/OraculoSeccionClubOlimpo/OraculoSeccionClubOlimpo.css */
283
+ .orc-co-wrap {
284
+ --orc-co-art-w: 887px;
285
+ --orc-co-art-h: 510px;
286
+ --orc-co-text: #ffffff;
287
+ --orc-co-art-left: clamp(120px, 18vw, 280px);
288
+ --orc-co-art-top: 20px;
289
+ --orc-co-logo-left: 163px;
290
+ --orc-co-logo-top: 120px;
291
+ --orc-co-logo-w: 220px;
292
+ --orc-co-content-left: 120px;
293
+ --orc-co-content-top: 290px;
294
+ min-height: var(--orc-co-minH, 520px);
295
+ position: relative;
296
+ }
297
+ .orc-co-fullBleed {
298
+ width: 100vw;
299
+ margin-left: 50%;
300
+ transform: translateX(-50%);
301
+ }
302
+ .orc-co-bottom {
303
+ position: absolute;
304
+ left: 50%;
305
+ transform: translateX(-50%);
306
+ bottom: 20px;
307
+ z-index: 2;
308
+ display: grid;
309
+ justify-items: center;
310
+ gap: 12px;
311
+ border-radius: 12px;
312
+ }
313
+ .orc-co-caption {
314
+ color: var(--orc-co-text);
315
+ font-size: 14px;
316
+ text-align: center;
317
+ font-weight: 400;
318
+ text-wrap: balance;
319
+ line-height: 1.4;
320
+ }
321
+ .orc-co-bgMobile {
322
+ position: relative;
323
+ width: 100%;
324
+ min-height: 360px;
325
+ overflow: hidden;
326
+ }
327
+ .orc-co-bgMobileImg {
328
+ width: 100%;
329
+ height: 100%;
330
+ object-fit: cover;
331
+ }
332
+ .orc-co-bgDesktop,
333
+ .orc-co-logo,
334
+ .orc-co-desktopContent {
335
+ display: none;
336
+ }
337
+ @media (min-width: 1024px) {
338
+ .orc-co-bgMobile {
339
+ display: none;
340
+ }
341
+ .orc-co-bottom {
342
+ display: none;
343
+ }
344
+ .orc-co-bgDesktop {
345
+ position: absolute;
346
+ inset: 0;
347
+ z-index: 0;
348
+ display: block;
349
+ }
350
+ .orc-co-bgDesktop > .orc-co-fillHost {
351
+ position: absolute;
352
+ width: var(--orc-co-art-w);
353
+ height: var(--orc-co-art-h);
354
+ top: var(--orc-co-art-top);
355
+ left: var(--orc-co-art-left);
356
+ }
357
+ .orc-co-bgDesktopImg {
358
+ width: 100%;
359
+ height: 100%;
360
+ object-fit: cover;
361
+ display: block;
362
+ }
363
+ .orc-co-logo {
364
+ display: block;
365
+ position: absolute;
366
+ left: var(--orc-co-logo-left);
367
+ top: var(--orc-co-logo-top);
368
+ width: var(--orc-co-logo-w);
369
+ aspect-ratio: 3 / 2;
370
+ z-index: 2;
371
+ }
372
+ .orc-co-logoImg {
373
+ width: 100%;
374
+ height: 100%;
375
+ object-fit: contain;
376
+ display: block;
377
+ }
378
+ .orc-co-desktopContent {
379
+ display: grid;
380
+ position: absolute;
381
+ left: var(--orc-co-content-left);
382
+ top: var(--orc-co-content-top);
383
+ gap: 16px;
384
+ justify-items: center;
385
+ text-align: center;
386
+ z-index: 2;
387
+ }
388
+ .orc-co-captionDesktop {
389
+ margin: 0;
390
+ color: var(--orc-co-text);
391
+ font-family: var(--clmc-font, inherit);
392
+ font-weight: 400;
393
+ font-size: clamp(14px, 1.5vw, 18px);
394
+ max-width: 28ch;
395
+ text-wrap: balance;
396
+ }
397
+ }
package/dist/index.d.mts CHANGED
@@ -29,6 +29,14 @@ interface OraculoSectionTitleProps {
29
29
  }
30
30
  declare function OraculoSectionTitle({ title, iconUrl, size, className, }: OraculoSectionTitleProps): react_jsx_runtime.JSX.Element;
31
31
 
32
+ interface OraculoCarouselDotsProps {
33
+ total: number;
34
+ active: number;
35
+ onSelect?: (index: number) => void;
36
+ className?: string;
37
+ }
38
+ declare const OraculoCarouselDots: React.FC<OraculoCarouselDotsProps>;
39
+
32
40
  interface OraculoCarouselOptions {
33
41
  type?: string;
34
42
  perPage?: number;
@@ -109,6 +117,32 @@ interface OraculoGameSlideProps {
109
117
  }
110
118
  declare const OraculoGameSlide: React.FC<OraculoGameSlideProps>;
111
119
 
120
+ interface OraculoWelcomeBannerProps {
121
+ title?: string;
122
+ amount?: string;
123
+ subtitle?: string;
124
+ buttonText?: string;
125
+ onButtonClick?: () => void;
126
+ backgroundImage?: string;
127
+ alt?: string;
128
+ className?: string;
129
+ /** Tamaño en desktop: "small" (456x272) o "large" (618x346) */
130
+ variant?: "small" | "large";
131
+ }
132
+ declare const OraculoWelcomeBanner: React.FC<OraculoWelcomeBannerProps>;
133
+
134
+ interface OraculoClubOlimpoVisualProps {
135
+ text: string;
136
+ buttonLabel?: string;
137
+ onClick?: () => void;
138
+ imgAlt?: string;
139
+ imgSrcMobile: string;
140
+ imgSrcDesktopBg?: string;
141
+ imgSrcDesktopLogo?: string;
142
+ priority?: boolean;
143
+ }
144
+ declare const OraculoClubOlimpoVisual: React.FC<OraculoClubOlimpoVisualProps>;
145
+
112
146
  interface OraculoDestacadoItem {
113
147
  id?: string | number;
114
148
  src: string;
@@ -219,4 +253,37 @@ interface OraculoSeccionVirtualesProps {
219
253
  }
220
254
  declare const OraculoSeccionVirtuales: React.FC<OraculoSeccionVirtualesProps>;
221
255
 
222
- export { OraculoButton, type OraculoButtonProps, OraculoCarousel, type OraculoCarouselOptions, type OraculoCarouselProps, type OraculoCarouselRef, type OraculoDestacadoItem, OraculoGameCard, type OraculoGameCardProps, type OraculoGameItem, OraculoGameRankCard, type OraculoGameRankCardProps, type OraculoGameRankCardSizes, OraculoGameSlide, type OraculoGameSlideItem, type OraculoGameSlideProps, OraculoLiveCasinoCard, type OraculoLiveCasinoCardProps, type OraculoLiveCasinoItem, OraculoSeccionCasino, OraculoSeccionCasinoEnVivo, type OraculoSeccionCasinoEnVivoProps, type OraculoSeccionCasinoProps, OraculoSeccionDestacados, type OraculoSeccionDestacadosProps, OraculoSeccionTopJuegos, type OraculoSeccionTopJuegosProps, OraculoSeccionVirtuales, type OraculoSeccionVirtualesProps, OraculoSectionTitle, type OraculoSectionTitleProps, type OraculoTopJuegoItem };
256
+ interface OraculoSeccionBonoBienvenidaProps {
257
+ /** Título principal, admite salto con "\n" para dos líneas */
258
+ headline?: string;
259
+ items: OraculoWelcomeBannerProps[];
260
+ /** Fondo de la sección (full width) */
261
+ backgroundImageUrl?: string;
262
+ }
263
+ declare const OraculoSeccionBonoBienvenida: React.FC<OraculoSeccionBonoBienvenidaProps>;
264
+
265
+ type OraculoClubOlimpoItem = {
266
+ text: string;
267
+ imgAlt: string;
268
+ images: {
269
+ mobile: string;
270
+ desktopBg: string;
271
+ desktopLogo: string;
272
+ };
273
+ onClick?: () => void;
274
+ priority?: boolean;
275
+ };
276
+ interface OraculoSeccionClubOlimpoProps {
277
+ className?: string;
278
+ /** Si true, hace el efecto full-bleed (100vw centrado) */
279
+ fullBleed?: boolean;
280
+ /** Lista de variantes (puedes pasar 1 o varias). */
281
+ items: OraculoClubOlimpoItem[];
282
+ /** Índice del item a mostrar si pasas varios. */
283
+ selectedIndex?: number;
284
+ /** aria-label de la sección (fallback al imgAlt del item seleccionado). */
285
+ ariaLabel?: string;
286
+ }
287
+ declare const OraculoSeccionClubOlimpo: React.FC<OraculoSeccionClubOlimpoProps>;
288
+
289
+ export { OraculoButton, type OraculoButtonProps, OraculoCarousel, OraculoCarouselDots, type OraculoCarouselDotsProps, type OraculoCarouselOptions, type OraculoCarouselProps, type OraculoCarouselRef, type OraculoClubOlimpoItem, OraculoClubOlimpoVisual, type OraculoClubOlimpoVisualProps, type OraculoDestacadoItem, OraculoGameCard, type OraculoGameCardProps, type OraculoGameItem, OraculoGameRankCard, type OraculoGameRankCardProps, type OraculoGameRankCardSizes, OraculoGameSlide, type OraculoGameSlideItem, type OraculoGameSlideProps, OraculoLiveCasinoCard, type OraculoLiveCasinoCardProps, type OraculoLiveCasinoItem, OraculoSeccionBonoBienvenida, type OraculoSeccionBonoBienvenidaProps, OraculoSeccionCasino, OraculoSeccionCasinoEnVivo, type OraculoSeccionCasinoEnVivoProps, type OraculoSeccionCasinoProps, OraculoSeccionClubOlimpo, type OraculoSeccionClubOlimpoProps, OraculoSeccionDestacados, type OraculoSeccionDestacadosProps, OraculoSeccionTopJuegos, type OraculoSeccionTopJuegosProps, OraculoSeccionVirtuales, type OraculoSeccionVirtualesProps, OraculoSectionTitle, type OraculoSectionTitleProps, type OraculoTopJuegoItem, OraculoWelcomeBanner, type OraculoWelcomeBannerProps };
package/dist/index.d.ts CHANGED
@@ -29,6 +29,14 @@ interface OraculoSectionTitleProps {
29
29
  }
30
30
  declare function OraculoSectionTitle({ title, iconUrl, size, className, }: OraculoSectionTitleProps): react_jsx_runtime.JSX.Element;
31
31
 
32
+ interface OraculoCarouselDotsProps {
33
+ total: number;
34
+ active: number;
35
+ onSelect?: (index: number) => void;
36
+ className?: string;
37
+ }
38
+ declare const OraculoCarouselDots: React.FC<OraculoCarouselDotsProps>;
39
+
32
40
  interface OraculoCarouselOptions {
33
41
  type?: string;
34
42
  perPage?: number;
@@ -109,6 +117,32 @@ interface OraculoGameSlideProps {
109
117
  }
110
118
  declare const OraculoGameSlide: React.FC<OraculoGameSlideProps>;
111
119
 
120
+ interface OraculoWelcomeBannerProps {
121
+ title?: string;
122
+ amount?: string;
123
+ subtitle?: string;
124
+ buttonText?: string;
125
+ onButtonClick?: () => void;
126
+ backgroundImage?: string;
127
+ alt?: string;
128
+ className?: string;
129
+ /** Tamaño en desktop: "small" (456x272) o "large" (618x346) */
130
+ variant?: "small" | "large";
131
+ }
132
+ declare const OraculoWelcomeBanner: React.FC<OraculoWelcomeBannerProps>;
133
+
134
+ interface OraculoClubOlimpoVisualProps {
135
+ text: string;
136
+ buttonLabel?: string;
137
+ onClick?: () => void;
138
+ imgAlt?: string;
139
+ imgSrcMobile: string;
140
+ imgSrcDesktopBg?: string;
141
+ imgSrcDesktopLogo?: string;
142
+ priority?: boolean;
143
+ }
144
+ declare const OraculoClubOlimpoVisual: React.FC<OraculoClubOlimpoVisualProps>;
145
+
112
146
  interface OraculoDestacadoItem {
113
147
  id?: string | number;
114
148
  src: string;
@@ -219,4 +253,37 @@ interface OraculoSeccionVirtualesProps {
219
253
  }
220
254
  declare const OraculoSeccionVirtuales: React.FC<OraculoSeccionVirtualesProps>;
221
255
 
222
- export { OraculoButton, type OraculoButtonProps, OraculoCarousel, type OraculoCarouselOptions, type OraculoCarouselProps, type OraculoCarouselRef, type OraculoDestacadoItem, OraculoGameCard, type OraculoGameCardProps, type OraculoGameItem, OraculoGameRankCard, type OraculoGameRankCardProps, type OraculoGameRankCardSizes, OraculoGameSlide, type OraculoGameSlideItem, type OraculoGameSlideProps, OraculoLiveCasinoCard, type OraculoLiveCasinoCardProps, type OraculoLiveCasinoItem, OraculoSeccionCasino, OraculoSeccionCasinoEnVivo, type OraculoSeccionCasinoEnVivoProps, type OraculoSeccionCasinoProps, OraculoSeccionDestacados, type OraculoSeccionDestacadosProps, OraculoSeccionTopJuegos, type OraculoSeccionTopJuegosProps, OraculoSeccionVirtuales, type OraculoSeccionVirtualesProps, OraculoSectionTitle, type OraculoSectionTitleProps, type OraculoTopJuegoItem };
256
+ interface OraculoSeccionBonoBienvenidaProps {
257
+ /** Título principal, admite salto con "\n" para dos líneas */
258
+ headline?: string;
259
+ items: OraculoWelcomeBannerProps[];
260
+ /** Fondo de la sección (full width) */
261
+ backgroundImageUrl?: string;
262
+ }
263
+ declare const OraculoSeccionBonoBienvenida: React.FC<OraculoSeccionBonoBienvenidaProps>;
264
+
265
+ type OraculoClubOlimpoItem = {
266
+ text: string;
267
+ imgAlt: string;
268
+ images: {
269
+ mobile: string;
270
+ desktopBg: string;
271
+ desktopLogo: string;
272
+ };
273
+ onClick?: () => void;
274
+ priority?: boolean;
275
+ };
276
+ interface OraculoSeccionClubOlimpoProps {
277
+ className?: string;
278
+ /** Si true, hace el efecto full-bleed (100vw centrado) */
279
+ fullBleed?: boolean;
280
+ /** Lista de variantes (puedes pasar 1 o varias). */
281
+ items: OraculoClubOlimpoItem[];
282
+ /** Índice del item a mostrar si pasas varios. */
283
+ selectedIndex?: number;
284
+ /** aria-label de la sección (fallback al imgAlt del item seleccionado). */
285
+ ariaLabel?: string;
286
+ }
287
+ declare const OraculoSeccionClubOlimpo: React.FC<OraculoSeccionClubOlimpoProps>;
288
+
289
+ export { OraculoButton, type OraculoButtonProps, OraculoCarousel, OraculoCarouselDots, type OraculoCarouselDotsProps, type OraculoCarouselOptions, type OraculoCarouselProps, type OraculoCarouselRef, type OraculoClubOlimpoItem, OraculoClubOlimpoVisual, type OraculoClubOlimpoVisualProps, type OraculoDestacadoItem, OraculoGameCard, type OraculoGameCardProps, type OraculoGameItem, OraculoGameRankCard, type OraculoGameRankCardProps, type OraculoGameRankCardSizes, OraculoGameSlide, type OraculoGameSlideItem, type OraculoGameSlideProps, OraculoLiveCasinoCard, type OraculoLiveCasinoCardProps, type OraculoLiveCasinoItem, OraculoSeccionBonoBienvenida, type OraculoSeccionBonoBienvenidaProps, OraculoSeccionCasino, OraculoSeccionCasinoEnVivo, type OraculoSeccionCasinoEnVivoProps, type OraculoSeccionCasinoProps, OraculoSeccionClubOlimpo, type OraculoSeccionClubOlimpoProps, OraculoSeccionDestacados, type OraculoSeccionDestacadosProps, OraculoSeccionTopJuegos, type OraculoSeccionTopJuegosProps, OraculoSeccionVirtuales, type OraculoSeccionVirtualesProps, OraculoSectionTitle, type OraculoSectionTitleProps, type OraculoTopJuegoItem, OraculoWelcomeBanner, type OraculoWelcomeBannerProps };