@rayan.boussouda/ui-kit 0.1.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.
@@ -0,0 +1,347 @@
1
+ import { ClassProp } from 'class-variance-authority/types';
2
+ import { ForwardRefExoticComponent } from 'react';
3
+ import { JSX as JSX_2 } from 'react';
4
+ import { RefAttributes } from 'react';
5
+ import { VariantProps } from 'class-variance-authority';
6
+
7
+ export declare const Avatar: {
8
+ ({ src, alt, initials, size, className, ...props }: AvatarProps): JSX_2.Element;
9
+ displayName: string;
10
+ };
11
+
12
+ export declare interface AvatarProps extends React.HTMLAttributes<HTMLSpanElement> {
13
+ src?: string;
14
+ alt?: string;
15
+ initials?: string;
16
+ size?: 'sm' | 'md' | 'lg' | 'xl';
17
+ }
18
+
19
+ export declare const Badge: {
20
+ ({ className, variant, size, ...props }: BadgeProps): JSX_2.Element;
21
+ displayName: string;
22
+ };
23
+
24
+ export declare interface BadgeProps extends React.HTMLAttributes<HTMLSpanElement>, VariantProps<typeof badgeVariants> {
25
+ }
26
+
27
+ export declare const badgeVariants: (props?: ({
28
+ variant?: "default" | "secondary" | "destructive" | "outline" | "success" | "warning" | null | undefined;
29
+ size?: "sm" | "md" | null | undefined;
30
+ } & ClassProp) | undefined) => string;
31
+
32
+ export declare const Button: ForwardRefExoticComponent<ButtonProps & RefAttributes<HTMLButtonElement>>;
33
+
34
+ export declare interface ButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement>, VariantProps<typeof buttonVariants> {
35
+ loading?: boolean;
36
+ }
37
+
38
+ export declare const buttonVariants: (props?: ({
39
+ variant?: "default" | "secondary" | "destructive" | "outline" | "ghost" | null | undefined;
40
+ size?: "sm" | "md" | "lg" | null | undefined;
41
+ } & ClassProp) | undefined) => string;
42
+
43
+ export declare const Card: {
44
+ ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>): JSX_2.Element;
45
+ displayName: string;
46
+ };
47
+
48
+ export declare const CardContent: {
49
+ ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>): JSX_2.Element;
50
+ displayName: string;
51
+ };
52
+
53
+ export declare const CardDescription: {
54
+ ({ className, ...props }: React.HTMLAttributes<HTMLParagraphElement>): JSX_2.Element;
55
+ displayName: string;
56
+ };
57
+
58
+ export declare const CardFooter: {
59
+ ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>): JSX_2.Element;
60
+ displayName: string;
61
+ };
62
+
63
+ export declare const CardHeader: {
64
+ ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>): JSX_2.Element;
65
+ displayName: string;
66
+ };
67
+
68
+ export declare const CardTitle: {
69
+ ({ className, ...props }: React.HTMLAttributes<HTMLHeadingElement>): JSX_2.Element;
70
+ displayName: string;
71
+ };
72
+
73
+ export declare type Colors = typeof colors;
74
+
75
+ export declare const colors: {
76
+ readonly brand: {
77
+ readonly 50: "oklch(0.97 0.01 260)";
78
+ readonly 100: "oklch(0.93 0.04 260)";
79
+ readonly 200: "oklch(0.87 0.07 260)";
80
+ readonly 300: "oklch(0.78 0.12 260)";
81
+ readonly 400: "oklch(0.68 0.18 260)";
82
+ readonly 500: "oklch(0.58 0.22 260)";
83
+ readonly 600: "oklch(0.49 0.23 260)";
84
+ readonly 700: "oklch(0.41 0.21 260)";
85
+ readonly 800: "oklch(0.33 0.17 260)";
86
+ readonly 900: "oklch(0.25 0.12 260)";
87
+ };
88
+ readonly neutral: {
89
+ readonly 50: "oklch(0.985 0 0)";
90
+ readonly 100: "oklch(0.96 0 0)";
91
+ readonly 200: "oklch(0.92 0 0)";
92
+ readonly 300: "oklch(0.87 0 0)";
93
+ readonly 400: "oklch(0.72 0 0)";
94
+ readonly 500: "oklch(0.56 0 0)";
95
+ readonly 600: "oklch(0.44 0 0)";
96
+ readonly 700: "oklch(0.36 0 0)";
97
+ readonly 800: "oklch(0.27 0 0)";
98
+ readonly 900: "oklch(0.20 0 0)";
99
+ readonly 950: "oklch(0.13 0 0)";
100
+ };
101
+ readonly destructive: {
102
+ readonly 50: "oklch(0.97 0.01 27)";
103
+ readonly 500: "oklch(0.63 0.24 27)";
104
+ readonly 600: "oklch(0.52 0.24 27)";
105
+ readonly 700: "oklch(0.43 0.22 27)";
106
+ };
107
+ readonly success: {
108
+ readonly 500: "oklch(0.65 0.19 145)";
109
+ readonly 600: "oklch(0.55 0.19 145)";
110
+ };
111
+ readonly warning: {
112
+ readonly 400: "oklch(0.84 0.18 75)";
113
+ readonly 500: "oklch(0.78 0.17 75)";
114
+ };
115
+ };
116
+
117
+ export declare const GenreTag: {
118
+ ({ name, active, className, ...props }: GenreTagProps): JSX_2.Element;
119
+ displayName: string;
120
+ };
121
+
122
+ export declare interface GenreTagProps extends React.HTMLAttributes<HTMLSpanElement> {
123
+ name: string;
124
+ active?: boolean;
125
+ }
126
+
127
+ export declare const Input: ForwardRefExoticComponent<InputProps & RefAttributes<HTMLInputElement>>;
128
+
129
+ export declare interface InputProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, 'size'>, Pick<VariantProps<typeof inputVariants>, 'size'> {
130
+ label?: string;
131
+ error?: string;
132
+ hint?: string;
133
+ }
134
+
135
+ declare const inputVariants: (props?: ({
136
+ size?: "sm" | "md" | "lg" | null | undefined;
137
+ state?: "default" | "error" | null | undefined;
138
+ } & ClassProp) | undefined) => string;
139
+
140
+ export declare const MovieCard: {
141
+ ({ title, posterUrl, rating, genres, year, overview, onClick, className, }: MovieCardProps): JSX_2.Element;
142
+ displayName: string;
143
+ };
144
+
145
+ export declare interface MovieCardProps {
146
+ title: string;
147
+ posterUrl?: string;
148
+ rating?: number;
149
+ genres?: string[];
150
+ year?: number;
151
+ overview?: string;
152
+ onClick?: () => void;
153
+ className?: string;
154
+ }
155
+
156
+ export declare const MovieGrid: {
157
+ ({ columns, className, children, ...props }: MovieGridProps): JSX_2.Element;
158
+ displayName: string;
159
+ };
160
+
161
+ export declare interface MovieGridProps extends React.HTMLAttributes<HTMLDivElement> {
162
+ columns?: 2 | 3 | 4 | 5 | 6;
163
+ }
164
+
165
+ export declare type Radii = typeof radii;
166
+
167
+ export declare const radii: {
168
+ readonly none: "0px";
169
+ readonly sm: "0.25rem";
170
+ readonly md: "0.375rem";
171
+ readonly lg: "0.5rem";
172
+ readonly xl: "0.75rem";
173
+ readonly '2xl': "1rem";
174
+ readonly '3xl': "1.5rem";
175
+ readonly full: "9999px";
176
+ };
177
+
178
+ export declare const RatingStars: {
179
+ ({ value, max, readonly, size, onChange, className, }: RatingStarsProps): JSX_2.Element;
180
+ displayName: string;
181
+ };
182
+
183
+ export declare interface RatingStarsProps {
184
+ value: number;
185
+ max?: number;
186
+ readonly?: boolean;
187
+ size?: 'sm' | 'md' | 'lg';
188
+ onChange?: (value: number) => void;
189
+ className?: string;
190
+ }
191
+
192
+ export declare const ReviewCard: {
193
+ ({ author, avatarUrl, avatarInitials, rating, content, date, movieTitle, className, }: ReviewCardProps): JSX_2.Element;
194
+ displayName: string;
195
+ };
196
+
197
+ export declare interface ReviewCardProps {
198
+ author: string;
199
+ avatarUrl?: string;
200
+ avatarInitials?: string;
201
+ rating?: number;
202
+ content: string;
203
+ date?: string;
204
+ movieTitle?: string;
205
+ className?: string;
206
+ }
207
+
208
+ export declare const SearchBar: ForwardRefExoticComponent<SearchBarProps & RefAttributes<HTMLInputElement>>;
209
+
210
+ export declare interface SearchBarProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, 'type'> {
211
+ onClear?: () => void;
212
+ isLoading?: boolean;
213
+ }
214
+
215
+ export declare const Select: ForwardRefExoticComponent<SelectProps & RefAttributes<HTMLSelectElement>>;
216
+
217
+ export declare interface SelectOption {
218
+ value: string;
219
+ label: string;
220
+ disabled?: boolean;
221
+ }
222
+
223
+ export declare interface SelectProps extends Omit<React.SelectHTMLAttributes<HTMLSelectElement>, 'size'> {
224
+ options: SelectOption[];
225
+ label?: string;
226
+ error?: string;
227
+ placeholder?: string;
228
+ size?: 'sm' | 'md' | 'lg';
229
+ }
230
+
231
+ export declare type Shadows = typeof shadows;
232
+
233
+ export declare const shadows: {
234
+ readonly none: "none";
235
+ readonly sm: "0 1px 2px 0 rgb(0 0 0 / 0.05)";
236
+ readonly md: "0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1)";
237
+ readonly lg: "0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1)";
238
+ readonly xl: "0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1)";
239
+ readonly '2xl': "0 25px 50px -12px rgb(0 0 0 / 0.25)";
240
+ };
241
+
242
+ export declare const Skeleton: {
243
+ ({ className, ...props }: SkeletonProps): JSX_2.Element;
244
+ displayName: string;
245
+ };
246
+
247
+ export declare interface SkeletonProps extends React.HTMLAttributes<HTMLDivElement> {
248
+ }
249
+
250
+ export declare type Spacing = typeof spacing;
251
+
252
+ export declare const spacing: {
253
+ readonly 0: "0px";
254
+ readonly 0.5: "0.125rem";
255
+ readonly 1: "0.25rem";
256
+ readonly 1.5: "0.375rem";
257
+ readonly 2: "0.5rem";
258
+ readonly 2.5: "0.625rem";
259
+ readonly 3: "0.75rem";
260
+ readonly 3.5: "0.875rem";
261
+ readonly 4: "1rem";
262
+ readonly 5: "1.25rem";
263
+ readonly 6: "1.5rem";
264
+ readonly 7: "1.75rem";
265
+ readonly 8: "2rem";
266
+ readonly 9: "2.25rem";
267
+ readonly 10: "2.5rem";
268
+ readonly 12: "3rem";
269
+ readonly 14: "3.5rem";
270
+ readonly 16: "4rem";
271
+ readonly 20: "5rem";
272
+ readonly 24: "6rem";
273
+ readonly 32: "8rem";
274
+ readonly 40: "10rem";
275
+ readonly 48: "12rem";
276
+ readonly 64: "16rem";
277
+ };
278
+
279
+ export declare const Spinner: {
280
+ ({ size, className, ...props }: SpinnerProps): JSX_2.Element;
281
+ displayName: string;
282
+ };
283
+
284
+ export declare interface SpinnerProps extends React.SVGAttributes<SVGSVGElement> {
285
+ size?: 'sm' | 'md' | 'lg';
286
+ }
287
+
288
+ export declare const Tag: {
289
+ ({ label, onRemove, className, ...props }: TagProps): JSX_2.Element;
290
+ displayName: string;
291
+ };
292
+
293
+ export declare interface TagProps extends React.HTMLAttributes<HTMLSpanElement> {
294
+ label: string;
295
+ onRemove?: () => void;
296
+ }
297
+
298
+ export declare type Typography = typeof typography;
299
+
300
+ export declare const typography: {
301
+ readonly fontFamily: {
302
+ readonly sans: "ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, \"Segoe UI\", sans-serif";
303
+ readonly mono: "ui-monospace, SFMono-Regular, \"SF Mono\", Consolas, \"Liberation Mono\", monospace";
304
+ };
305
+ readonly fontSize: {
306
+ readonly xs: {
307
+ readonly size: "0.75rem";
308
+ readonly lineHeight: "1rem";
309
+ };
310
+ readonly sm: {
311
+ readonly size: "0.875rem";
312
+ readonly lineHeight: "1.25rem";
313
+ };
314
+ readonly base: {
315
+ readonly size: "1rem";
316
+ readonly lineHeight: "1.5rem";
317
+ };
318
+ readonly lg: {
319
+ readonly size: "1.125rem";
320
+ readonly lineHeight: "1.75rem";
321
+ };
322
+ readonly xl: {
323
+ readonly size: "1.25rem";
324
+ readonly lineHeight: "1.75rem";
325
+ };
326
+ readonly '2xl': {
327
+ readonly size: "1.5rem";
328
+ readonly lineHeight: "2rem";
329
+ };
330
+ readonly '3xl': {
331
+ readonly size: "1.875rem";
332
+ readonly lineHeight: "2.25rem";
333
+ };
334
+ readonly '4xl': {
335
+ readonly size: "2.25rem";
336
+ readonly lineHeight: "2.5rem";
337
+ };
338
+ };
339
+ readonly fontWeight: {
340
+ readonly normal: "400";
341
+ readonly medium: "500";
342
+ readonly semibold: "600";
343
+ readonly bold: "700";
344
+ };
345
+ };
346
+
347
+ export { }