@maycolem/stories 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +54 -0
- package/dist/index.cjs.js +17 -0
- package/dist/index.cjs.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.esm.js +3622 -0
- package/dist/index.esm.js.map +1 -0
- package/dist/src/App.d.ts +2 -0
- package/dist/src/components/ManagmentStoryComponent.d.ts +11 -0
- package/dist/src/components/ProfileStories.d.ts +4 -0
- package/dist/src/components/ProfileStory.d.ts +10 -0
- package/dist/src/components/StoryHeaderPlayer.d.ts +7 -0
- package/dist/src/components/StoryPlayer.d.ts +11 -0
- package/dist/src/components/StoryPlayerTypes.d.ts +118 -0
- package/dist/src/components/dataMock-IA.d.ts +2 -0
- package/dist/src/index.d.ts +6 -0
- package/dist/src/main.d.ts +1 -0
- package/dist/src/types/types.d.ts +150 -0
- package/dist/stories.css +1 -0
- package/dist/vite.config.d.ts +2 -0
- package/dist/vite.svg +1 -0
- package/package.json +40 -0
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { IBettingStory, IPromoStory, IStory } from '../types/types';
|
|
2
|
+
declare const ManagmentStoryComponent: ({ story }: {
|
|
3
|
+
story: IStory;
|
|
4
|
+
}) => import("react/jsx-runtime").JSX.Element;
|
|
5
|
+
export default ManagmentStoryComponent;
|
|
6
|
+
export declare const PromoStory: ({ story }: {
|
|
7
|
+
story: IPromoStory;
|
|
8
|
+
}) => import("react/jsx-runtime").JSX.Element;
|
|
9
|
+
export declare const BetCouponStory: ({ story }: {
|
|
10
|
+
story: IBettingStory;
|
|
11
|
+
}) => import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
interface Props {
|
|
2
|
+
image: any;
|
|
3
|
+
title?: any;
|
|
4
|
+
color: any;
|
|
5
|
+
className?: any;
|
|
6
|
+
onProfileClick?: any;
|
|
7
|
+
width?: string;
|
|
8
|
+
}
|
|
9
|
+
declare const ProfileStory: ({ image, title, color, className, onProfileClick, width, }: Props) => import("react/jsx-runtime").JSX.Element;
|
|
10
|
+
export default ProfileStory;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { default as React } from 'react';
|
|
2
|
+
import { StoriesProps } from './StoryPlayerTypes';
|
|
3
|
+
interface Props extends StoriesProps {
|
|
4
|
+
loop?: boolean;
|
|
5
|
+
currentIndex?: any;
|
|
6
|
+
onAllStoriesEnd?: any;
|
|
7
|
+
onOverlayClick?: any;
|
|
8
|
+
inline?: boolean;
|
|
9
|
+
}
|
|
10
|
+
declare const StoryPlayer: React.FC<Props>;
|
|
11
|
+
export default StoryPlayer;
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
import { default as React } from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* Interface de cada objeto de historia que acepta <Stories stories={[ ... ]} />
|
|
4
|
+
*/
|
|
5
|
+
export interface IStoryObject {
|
|
6
|
+
/** Tipo de historia:
|
|
7
|
+
* - `"image"` → renderiza una imagen con `url`
|
|
8
|
+
* - `"video"` → renderiza un reproductor de video con `url`
|
|
9
|
+
* - `"component"` → renderiza un componente React personalizado (campo `component`)
|
|
10
|
+
*/
|
|
11
|
+
type: "image" | "video" | "component";
|
|
12
|
+
/** URL de la imagen o video (solo para `type: "image" | "video"`) */
|
|
13
|
+
url?: string;
|
|
14
|
+
/** Duración en milisegundos de este slide. Si no se define, se usa `defaultDuration`. */
|
|
15
|
+
duration?: number;
|
|
16
|
+
/** Componente React a renderizar cuando `type: "component"` */
|
|
17
|
+
component?: React.ComponentType<any>;
|
|
18
|
+
/** Componente React que se muestra como cabecera de la story (por arriba) */
|
|
19
|
+
header?: React.ReactNode;
|
|
20
|
+
/**
|
|
21
|
+
* Texto, booleano o componente que activa “See More”.
|
|
22
|
+
* - Si es `string`, se muestra ese texto como enlace.
|
|
23
|
+
* - Si es `boolean` (`true`), aparece un “See More” genérico.
|
|
24
|
+
* - Si es componente React, se renderiza directamente.
|
|
25
|
+
*/
|
|
26
|
+
seeMore?: string | boolean | React.ReactNode;
|
|
27
|
+
/** Componente React que se monta en un overlay al hacer click en “See More” */
|
|
28
|
+
seeMoreComponent?: React.ReactNode;
|
|
29
|
+
/** Callback que se dispara al hacer click en “See More”. Recibe el índice actual (número). */
|
|
30
|
+
onSeeMoreClick?: (index: number) => void;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Interfaz para sobreescribir nombres de clase en distintas secciones de Stories
|
|
34
|
+
*/
|
|
35
|
+
export interface IStoryClassNames {
|
|
36
|
+
/** Clase para el contenedor principal de todo el componente Stories */
|
|
37
|
+
main?: string;
|
|
38
|
+
/** Clase para el contenedor que engloba la línea de progreso */
|
|
39
|
+
progressContainer?: string;
|
|
40
|
+
/** Clase para cada “caja” de progreso individual */
|
|
41
|
+
progressBarContainer?: string;
|
|
42
|
+
/** Clase para la propia barra de progreso (el elemento que crece) */
|
|
43
|
+
progressBar?: string;
|
|
44
|
+
/** Clase para el contenedor de cada historia (imagen/video/componente) */
|
|
45
|
+
storyContainer?: string;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Props que acepta el componente <Stories /> de stories-react
|
|
49
|
+
*/
|
|
50
|
+
export interface StoriesProps {
|
|
51
|
+
/** Arreglo de objetos de historia a renderizar (IStoryObject[]) */
|
|
52
|
+
stories: IStoryObject[];
|
|
53
|
+
/**
|
|
54
|
+
* Altura del contenedor de historias.
|
|
55
|
+
* Puede ser "100%" (por defecto) u otra unidad CSS (ej. "400px").
|
|
56
|
+
* @default "100%"
|
|
57
|
+
*/
|
|
58
|
+
height?: string;
|
|
59
|
+
/**
|
|
60
|
+
* Ancho del contenedor de historias.
|
|
61
|
+
* Puede ser "100%" (por defecto) u otra unidad CSS (ej. "300px").
|
|
62
|
+
* @default "100%"
|
|
63
|
+
*/
|
|
64
|
+
width?: string;
|
|
65
|
+
/**
|
|
66
|
+
* Callback que se llama cada vez que cambia la historia, recibiendo
|
|
67
|
+
* el índice (número) de la story que acaba de mostrarse.
|
|
68
|
+
*/
|
|
69
|
+
onStoryChange?: (index: number) => void;
|
|
70
|
+
/**
|
|
71
|
+
* Callback que se llama una sola vez, cuando se renderiza la primera story.
|
|
72
|
+
* Útil para inicializar lógica de “comienzo”.
|
|
73
|
+
*/
|
|
74
|
+
onStoriesStart?: () => void;
|
|
75
|
+
/**
|
|
76
|
+
* Callback que se dispara una sola vez cuando se completa la última historia
|
|
77
|
+
* del arreglo.
|
|
78
|
+
*/
|
|
79
|
+
onAllStoriesEnd?: () => void;
|
|
80
|
+
/**
|
|
81
|
+
* Índice de la historia que debe mostrarse primero.
|
|
82
|
+
* Si se pasa, arranca en esa posición en lugar de en 0.
|
|
83
|
+
*/
|
|
84
|
+
currentIndex?: number;
|
|
85
|
+
/**
|
|
86
|
+
* Duración por defecto (en milisegundos) que se usará cuando un IStoryObject
|
|
87
|
+
* no especifique `duration`.
|
|
88
|
+
* @default 10000
|
|
89
|
+
*/
|
|
90
|
+
defaultDuration?: number;
|
|
91
|
+
/**
|
|
92
|
+
* Permite sobreescribir las clases CSS en distintas secciones internas
|
|
93
|
+
* usando la interfaz IStoryClassNames.
|
|
94
|
+
* @default {}
|
|
95
|
+
*/
|
|
96
|
+
classNames?: IStoryClassNames;
|
|
97
|
+
/**
|
|
98
|
+
* Si se pone `false`, el slide sigue avanzando aunque el usuario cambie de pestaña
|
|
99
|
+
* o minimice la ventana. Por defecto está en `true` (pausa cuando la ventana no está activa).
|
|
100
|
+
* @default true
|
|
101
|
+
*/
|
|
102
|
+
pauseStoryWhenInActiveWindow?: boolean;
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Props que recibe un “componente personalizado” cuando lo usas como `type: "component"`.
|
|
106
|
+
* ReactInstaStories le inyecta estas propiedades para que controle
|
|
107
|
+
* pausa/reproducción desde dentro del componente.
|
|
108
|
+
*/
|
|
109
|
+
export interface CustomStoryComponentProps {
|
|
110
|
+
/** Llamar para pausar la historia actual desde el componente */
|
|
111
|
+
pause: () => void;
|
|
112
|
+
/** Llamar para reanudar la historia actual desde el componente */
|
|
113
|
+
resume: () => void;
|
|
114
|
+
/** Objeto IStoryObject con los datos de la historia actual */
|
|
115
|
+
story: IStoryObject;
|
|
116
|
+
/** Indica si la story está actualmente en pausa (`true`) o reproduciéndose (`false`) */
|
|
117
|
+
isPaused: boolean;
|
|
118
|
+
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export { default as MyStory } from './App';
|
|
2
|
+
export { default as ProfileStories } from './components/ProfileStories';
|
|
3
|
+
export { default as StoryPlayer } from './components/StoryPlayer';
|
|
4
|
+
export { default as ProfileStory } from './components/ProfileStory';
|
|
5
|
+
export { default as ManagmentStoryComponent } from './components/ManagmentStoryComponent';
|
|
6
|
+
export { default as StoryHeaderPlayer } from './components/StoryHeaderPlayer';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
export interface IStoriesProfile {
|
|
2
|
+
id: string;
|
|
3
|
+
stories: IStory[];
|
|
4
|
+
is_published: boolean;
|
|
5
|
+
show_red_chip: boolean;
|
|
6
|
+
order_index: number;
|
|
7
|
+
avatar: string;
|
|
8
|
+
name: string;
|
|
9
|
+
description: string;
|
|
10
|
+
color: string;
|
|
11
|
+
}
|
|
12
|
+
export type IStory = IBettingStory | IPromoStory;
|
|
13
|
+
export interface IBaseStory {
|
|
14
|
+
id: string;
|
|
15
|
+
title: string;
|
|
16
|
+
description: string;
|
|
17
|
+
image: string;
|
|
18
|
+
duration: number;
|
|
19
|
+
clicks: number | null;
|
|
20
|
+
views: number | null;
|
|
21
|
+
type: string;
|
|
22
|
+
}
|
|
23
|
+
export interface IBettingStory extends IBaseStory {
|
|
24
|
+
type: "betting";
|
|
25
|
+
btn_text: string;
|
|
26
|
+
matches: string[];
|
|
27
|
+
markets: string[];
|
|
28
|
+
results: string[];
|
|
29
|
+
coupon: string;
|
|
30
|
+
coupon_title: string;
|
|
31
|
+
coupon_result: CouponResult;
|
|
32
|
+
}
|
|
33
|
+
export interface IPromoStory extends IBaseStory {
|
|
34
|
+
type: "promo";
|
|
35
|
+
btn_text: string;
|
|
36
|
+
btn_url: string;
|
|
37
|
+
}
|
|
38
|
+
export interface CouponResult {
|
|
39
|
+
stakes: Stake[];
|
|
40
|
+
selections: Selection[];
|
|
41
|
+
betType: number;
|
|
42
|
+
stakeAdjustment: StakeAdjustment;
|
|
43
|
+
fullCoverData: FullCoverData;
|
|
44
|
+
}
|
|
45
|
+
export interface Stake {
|
|
46
|
+
value: number;
|
|
47
|
+
preciseValue: number;
|
|
48
|
+
type: number;
|
|
49
|
+
isEnabled: boolean;
|
|
50
|
+
isHighlighted: boolean;
|
|
51
|
+
}
|
|
52
|
+
export interface Selection {
|
|
53
|
+
odd: Odd;
|
|
54
|
+
event: Event;
|
|
55
|
+
status: number;
|
|
56
|
+
isBanker: boolean;
|
|
57
|
+
isEnabled: boolean;
|
|
58
|
+
sport: Sport;
|
|
59
|
+
category: Category;
|
|
60
|
+
competitors: Competitor[];
|
|
61
|
+
championship: Championship;
|
|
62
|
+
market: Market;
|
|
63
|
+
widgetInfo: WidgetInfo;
|
|
64
|
+
}
|
|
65
|
+
export interface Odd {
|
|
66
|
+
typeId: number;
|
|
67
|
+
price: number;
|
|
68
|
+
isMB: boolean;
|
|
69
|
+
oddStatus: number;
|
|
70
|
+
id: number;
|
|
71
|
+
name: string;
|
|
72
|
+
shouldUpdate: boolean;
|
|
73
|
+
lineDir?: number;
|
|
74
|
+
priceDir?: number;
|
|
75
|
+
}
|
|
76
|
+
export interface Event {
|
|
77
|
+
marketIds: number[];
|
|
78
|
+
isBooked: boolean;
|
|
79
|
+
isParlay: boolean;
|
|
80
|
+
offers?: {
|
|
81
|
+
type: number;
|
|
82
|
+
}[];
|
|
83
|
+
code: number;
|
|
84
|
+
hasStream: boolean;
|
|
85
|
+
extId: string;
|
|
86
|
+
sc: number;
|
|
87
|
+
rc: boolean;
|
|
88
|
+
pId: number;
|
|
89
|
+
et: number;
|
|
90
|
+
competitorIds: number[];
|
|
91
|
+
sportId: number;
|
|
92
|
+
catId: number;
|
|
93
|
+
champId: number;
|
|
94
|
+
status: number;
|
|
95
|
+
startDate: string;
|
|
96
|
+
id: number;
|
|
97
|
+
name: string;
|
|
98
|
+
liveTime?: string;
|
|
99
|
+
}
|
|
100
|
+
export interface Sport {
|
|
101
|
+
catIds: number[];
|
|
102
|
+
typeId: number;
|
|
103
|
+
iconName: string;
|
|
104
|
+
hasLiveEvents: boolean;
|
|
105
|
+
id: number;
|
|
106
|
+
name: string;
|
|
107
|
+
}
|
|
108
|
+
export interface Category {
|
|
109
|
+
champIds: number[];
|
|
110
|
+
iso?: string;
|
|
111
|
+
hasLiveEvents: boolean;
|
|
112
|
+
id: number;
|
|
113
|
+
name: string;
|
|
114
|
+
}
|
|
115
|
+
export interface Competitor {
|
|
116
|
+
id: number;
|
|
117
|
+
name: string;
|
|
118
|
+
}
|
|
119
|
+
export interface Championship {
|
|
120
|
+
offers?: {
|
|
121
|
+
type: number;
|
|
122
|
+
}[];
|
|
123
|
+
hasLiveEvents: boolean;
|
|
124
|
+
id: number;
|
|
125
|
+
name: string;
|
|
126
|
+
category: Category;
|
|
127
|
+
sport: Sport;
|
|
128
|
+
}
|
|
129
|
+
export interface Market {
|
|
130
|
+
oddIds: number[];
|
|
131
|
+
typeId: number;
|
|
132
|
+
isMB: boolean;
|
|
133
|
+
sportMarketId: number;
|
|
134
|
+
id: number;
|
|
135
|
+
name: string;
|
|
136
|
+
}
|
|
137
|
+
export interface WidgetInfo {
|
|
138
|
+
widget: number;
|
|
139
|
+
page: number;
|
|
140
|
+
tabIndex: number | null;
|
|
141
|
+
tipsterId: number | null;
|
|
142
|
+
}
|
|
143
|
+
export interface StakeAdjustment {
|
|
144
|
+
type: number;
|
|
145
|
+
value: number;
|
|
146
|
+
}
|
|
147
|
+
export interface FullCoverData {
|
|
148
|
+
type: number;
|
|
149
|
+
label: string | null;
|
|
150
|
+
}
|
package/dist/stories.css
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
@import"https://fonts.googleapis.com/css2?family=Antonio:wght@100..700&family=Rubik:ital,wght@0,300..900;1,300..900&display=swap";.App{padding:1rem}html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{margin:0;padding:0;border:0;font-size:100%;font:inherit;font-family:inherit;vertical-align:baseline}article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block}body,html{line-height:1;width:100%;height:100%;font-family:Rubik}ol,ul{list-style:none}blockquote,q{quotes:none}blockquote:before,blockquote:after,q:before,q:after{content:"";content:none}table{border-collapse:collapse;border-spacing:0}._ProfileStories_1akh2_1{display:flex;padding:1rem;gap:.75rem;justify-items:center;overflow:auto}._ScrollMenu_1akh2_9{position:relative}._scrollContainerClassName_1akh2_13{padding:16px 14px 14px;scrollbar-width:none;-ms-overflow-style:none}._scrollContainerClassName_1akh2_13::-webkit-scrollbar{display:none}._itemClassName_1akh2_22{padding-right:10px}._itemClassName_1akh2_22:last-child{padding-right:0}._ProfileStory_1ug8f_1{display:flex;flex-direction:column;width:var(--story-width);cursor:pointer;user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}._ProfileStoryWrap_1ug8f_11{border:2px solid var(--story-color);box-shadow:0 0 3px var(--story-color),0 0 10px var(--story-color);aspect-ratio:1;border-radius:50%;position:relative;padding:2px}._ProfileStory__wrapImage_1ug8f_20{width:100%;height:100%;border-radius:50%;background:linear-gradient(to top,#535353,#d5d5d5,transparent)}._ProfileStory__image_1ug8f_27{position:absolute;height:auto;width:100%;top:0;right:0;bottom:0;left:0;display:flex;justify-content:center}._ProfileStory__image_1ug8f_27>img{position:absolute;bottom:0;height:125%;width:auto;object-fit:cover;-webkit-user-drag:none}._ProfileStory__title_1ug8f_44{color:#222;font-size:calc(calc((var(--story-width) / 60) * 10));width:100%;text-align:center;margin:auto;margin-top:.5rem}.react-horizontal-scrolling-menu--scroll-container{display:flex;height:max-content;overflow-y:hidden;position:relative;width:100%}.react-horizontal-scrolling-menu--scroll-container.rtl{direction:rtl}.react-horizontal-scrolling-menu--inner-wrapper{display:flex;overflow-y:hidden}.react-horizontal-scrolling-menu--wrapper{display:flex;flex-direction:column}.react-horizontal-scrolling-menu--footer,.react-horizontal-scrolling-menu--header{width:100%}.react-horizontal-scrolling-menu--arrow-left,.react-horizontal-scrolling-menu--arrow-right{display:flex}.Actions-styles_left__eky50{left:0}.Actions-styles_left__eky50,.Actions-styles_right__zguoH{bottom:0;height:100%;position:absolute;top:0;width:50%;z-index:1}.Actions-styles_right__zguoH{right:0}.ProgressBar-styles_wrapper__oqUCo{background-color:#6a6a6a;border-radius:2px;height:2px;position:relative}.ProgressBar-styles_bar__x0O50{background-color:#eae8e8;border-radius:2px;bottom:0;height:2px;left:0;position:absolute;right:0;top:0;width:0}.progress-styles_wrapper__qQPyW{grid-gap:4px;display:grid;height:2px;left:0;padding:4px;position:absolute;right:0;top:0}.Story-styles_wrapper__oJP7j{align-content:center;align-items:center;display:flex;height:100%;width:100%}.Story-styles_header__-rnWL{left:0;position:absolute;right:0;top:12px}.Image-styles_image__gnfW1{height:100%;-o-object-fit:cover;object-fit:cover;width:100%}.Video-styles_video__BykuO{max-height:100%;max-width:100%;-o-object-fit:cover;object-fit:cover;width:100%}.Video-styles_loaderWrapper__TqVWk{align-content:center;align-items:center;bottom:0;display:flex;justify-content:center;left:0;position:absolute;right:0;top:0}.Video-styles_loader__FxxSV{animation:Video-styles_spin__ilbIB 1s linear infinite;border:4px solid #f3f3f3;border-radius:50%;border-top-color:#a5b0b7;height:40px;width:40px}.Video-styles_soundIcon__ZvYXE{background:transparent;border:none;cursor:pointer;outline:none;padding:16px;position:absolute;right:0;top:0;z-index:2}@keyframes Video-styles_spin__ilbIB{0%{transform:rotate(0)}to{transform:rotate(1turn)}}.CustomComponents-styles_component__w87Wx{height:100%;width:100%}.SeeMore-styles_seeMoreWrapper__kwjif{background-color:inherit;border:none;bottom:24px;cursor:pointer;display:flex;justify-content:center;left:0;outline:none;position:absolute;right:0;width:100%;z-index:2}.SeeMore-styles_defaultSeeMore__-B1QW{align-items:center;color:#fff;display:flex;flex-direction:column;font-size:14px;font-weight:600;justify-content:center;line-height:.8;width:100%}.SeeMore-styles_defaultSeeMore__-B1QW p{margin:0;padding:0}.SeeMoreComponent-styles_seeMoreComponentWrapper__0T6Ap{animation:SeeMoreComponent-styles_up__sRaEA .2s ease-in-out;animation-fill-mode:forwards;background-color:#fff;bottom:0;left:0;max-height:100%;overflow-y:auto;position:absolute;right:0;top:0;z-index:3}.SeeMoreComponent-styles_closeIcon__LMm3b{background-color:inherit;background:transparent;border:none;cursor:pointer;font-size:16px;outline:none;padding:16px;position:absolute;right:0;top:0}@keyframes SeeMoreComponent-styles_up__sRaEA{0%{transform:translateY(10%)}to{transform:translateY(0)}}.styles_main__-0FEu{-webkit-touch-callout:none;background-color:#000;position:relative;touch-action:manipulation;-webkit-user-select:none;-moz-user-select:none;user-select:none}._StoryPlayer_1720k_1{position:fixed;top:0;left:0;width:100vw;height:100vh;display:flex;justify-content:center;align-items:center;z-index:1000}._Overlay_1720k_13{background:#000000d9;height:100%;width:100%;position:absolute;left:0;top:0;cursor:pointer}._StoryPlayer__Wrap_1720k_23{position:relative;width:100%;height:100%}@media screen and (min-width: 600px){._StoryPlayer__Wrap_1720k_23{height:90dvh;height:90vh;width:initial;aspect-ratio:9 / 16}}._progressContainer_1720k_35{z-index:2}._StoryPlayer_1720k_1._inline_1720k_40{position:relative;width:100%;height:auto;max-width:350px;aspect-ratio:9 / 16}._StoryPlayer_1720k_1._inline_1720k_40 ._Overlay_1720k_13{display:none}@media screen and (min-width: 600px){._StoryPlayer_1720k_1._inline_1720k_40 ._StoryPlayer__Wrap_1720k_23{height:100%;width:100%;aspect-ratio:initial}}._story_ds79x_1{height:100%;width:100%;position:relative}._story_ds79x_1>img{width:100%;height:100%;object-fit:cover}._Button_ds79x_12{position:absolute;bottom:1rem;width:60%;left:20%;padding:.7rem;background:#fb3333;border:0;outline:0;color:#fff;font-weight:500;font-size:1rem;transform:skew(-10deg);z-index:2;cursor:pointer}._StoryHeaderPlayer_1hpyb_1{padding:5px 10px;display:flex;align-items:center;gap:.5rem;position:relative}._StoryHeaderPlayer_1hpyb_1:before{content:"";position:absolute;height:200%;width:100%;background:linear-gradient(to top,transparent,#000);left:0}._StoryHeaderPlayer__ProfileStory_1hpyb_18{width:30px;height:30px;z-index:2}._StoryHeaderPlayer__title_1hpyb_24{color:#fff;font-size:13px;font-weight:500;z-index:2}
|
package/dist/vite.svg
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" class="iconify iconify--logos" width="31.88" height="32" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 257"><defs><linearGradient id="IconifyId1813088fe1fbc01fb466" x1="-.828%" x2="57.636%" y1="7.652%" y2="78.411%"><stop offset="0%" stop-color="#41D1FF"></stop><stop offset="100%" stop-color="#BD34FE"></stop></linearGradient><linearGradient id="IconifyId1813088fe1fbc01fb467" x1="43.376%" x2="50.316%" y1="2.242%" y2="89.03%"><stop offset="0%" stop-color="#FFEA83"></stop><stop offset="8.333%" stop-color="#FFDD35"></stop><stop offset="100%" stop-color="#FFA800"></stop></linearGradient></defs><path fill="url(#IconifyId1813088fe1fbc01fb466)" d="M255.153 37.938L134.897 252.976c-2.483 4.44-8.862 4.466-11.382.048L.875 37.958c-2.746-4.814 1.371-10.646 6.827-9.67l120.385 21.517a6.537 6.537 0 0 0 2.322-.004l117.867-21.483c5.438-.991 9.574 4.796 6.877 9.62Z"></path><path fill="url(#IconifyId1813088fe1fbc01fb467)" d="M185.432.063L96.44 17.501a3.268 3.268 0 0 0-2.634 3.014l-5.474 92.456a3.268 3.268 0 0 0 3.997 3.378l24.777-5.718c2.318-.535 4.413 1.507 3.936 3.838l-7.361 36.047c-.495 2.426 1.782 4.5 4.151 3.78l15.304-4.649c2.372-.72 4.652 1.36 4.15 3.788l-11.698 56.621c-.732 3.542 3.979 5.473 5.943 2.437l1.313-2.028l72.516-144.72c1.215-2.423-.88-5.186-3.54-4.672l-25.505 4.922c-2.396.462-4.435-1.77-3.759-4.114l16.646-57.705c.677-2.35-1.37-4.583-3.769-4.113Z"></path></svg>
|
package/package.json
ADDED
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@maycolem/stories",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"main": "dist/index.cjs.js",
|
|
5
|
+
"module": "dist/index.esm.js",
|
|
6
|
+
"types": "dist/index.d.ts",
|
|
7
|
+
"files": [
|
|
8
|
+
"dist"
|
|
9
|
+
],
|
|
10
|
+
"scripts": {
|
|
11
|
+
"dev": "vite",
|
|
12
|
+
"build": "tsc -b && vite build",
|
|
13
|
+
"lint": "eslint .",
|
|
14
|
+
"preview": "vite preview"
|
|
15
|
+
},
|
|
16
|
+
"devDependencies": {
|
|
17
|
+
"@eslint/js": "^9.25.0",
|
|
18
|
+
"@types/node": "^22.15.29",
|
|
19
|
+
"@types/react": "^17.0.87",
|
|
20
|
+
"@types/react-dom": "^17.0.26",
|
|
21
|
+
"@vitejs/plugin-react": "^4.4.1",
|
|
22
|
+
"eslint": "^9.25.0",
|
|
23
|
+
"eslint-plugin-react-hooks": "^5.2.0",
|
|
24
|
+
"eslint-plugin-react-refresh": "^0.4.19",
|
|
25
|
+
"globals": "^16.0.0",
|
|
26
|
+
"typescript": "~5.8.3",
|
|
27
|
+
"typescript-eslint": "^8.30.1",
|
|
28
|
+
"vite": "^6.3.5",
|
|
29
|
+
"vite-plugin-dts": "^4.5.4"
|
|
30
|
+
},
|
|
31
|
+
"dependencies": {
|
|
32
|
+
"@faker-js/faker": "^9.8.0",
|
|
33
|
+
"classnames": "^2.5.1",
|
|
34
|
+
"react": "^17.0.2",
|
|
35
|
+
"react-dom": "^17.0.2",
|
|
36
|
+
"react-horizontal-scrolling-menu": "^7.1.1",
|
|
37
|
+
"react-insta-stories": "^2.8.0",
|
|
38
|
+
"stories-react": "^1.1.2"
|
|
39
|
+
}
|
|
40
|
+
}
|