aloha-ui-library 0.1.4
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/LICENSE +21 -0
- package/README.md +98 -0
- package/dist/colors.d.ts +100 -0
- package/dist/components/Avatar.d.ts +9 -0
- package/dist/components/Badge.d.ts +9 -0
- package/dist/components/Button.d.ts +17 -0
- package/dist/components/Card.d.ts +8 -0
- package/dist/components/Checkbox.d.ts +6 -0
- package/dist/components/ColorPalette.d.ts +18 -0
- package/dist/components/Error.d.ts +11 -0
- package/dist/components/ErrorFullScreen.d.ts +11 -0
- package/dist/components/FullPage.d.ts +8 -0
- package/dist/components/Grid.d.ts +19 -0
- package/dist/components/Image.d.ts +22 -0
- package/dist/components/Input.d.ts +5 -0
- package/dist/components/Loading.d.ts +8 -0
- package/dist/components/LoadingFullScreen.d.ts +8 -0
- package/dist/components/NavigationBar.d.ts +15 -0
- package/dist/components/Notification.d.ts +15 -0
- package/dist/components/Popup.d.ts +22 -0
- package/dist/components/Post.d.ts +20 -0
- package/dist/components/SearchInput.d.ts +6 -0
- package/dist/components/Switch.d.ts +6 -0
- package/dist/components/Typography.d.ts +34 -0
- package/dist/components/UserCard.d.ts +14 -0
- package/dist/index.css +5 -0
- package/dist/index.d.ts +22 -0
- package/dist/index.esm.css +5 -0
- package/dist/index.esm.js +5063 -0
- package/dist/index.esm.js.map +1 -0
- package/dist/index.js +5107 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/utils.d.ts +2 -0
- package/package.json +117 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2025 Aloha Team
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
# @srteam-dev/aloha-ui
|
|
2
|
+
|
|
3
|
+
A comprehensive React design system with UI components, typography system, and color palette for modern applications.
|
|
4
|
+
|
|
5
|
+
## 📦 Installation
|
|
6
|
+
|
|
7
|
+
### From GitHub Packages
|
|
8
|
+
|
|
9
|
+
1. **Create a GitHub Personal Access Token** with `read:packages` permission
|
|
10
|
+
2. **Configure npm** to authenticate with GitHub Packages:
|
|
11
|
+
|
|
12
|
+
Create a `.npmrc` file in your project root or home directory:
|
|
13
|
+
|
|
14
|
+
```properties
|
|
15
|
+
@srteam-dev:registry=https://npm.pkg.github.com/
|
|
16
|
+
//npm.pkg.github.com/:_authToken=YOUR_GITHUB_TOKEN
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
3. **Install the package:**
|
|
20
|
+
|
|
21
|
+
```bash
|
|
22
|
+
npm install @srteam-dev/aloha-ui
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
📖 See [INSTALL.md](./INSTALL.md) for detailed installation instructions.
|
|
26
|
+
|
|
27
|
+
## 🚀 Quick Start
|
|
28
|
+
|
|
29
|
+
```tsx
|
|
30
|
+
import { Button, H1, Card, colors } from '@srteam-dev/aloha-ui';
|
|
31
|
+
import '@srteam-dev/aloha-ui/dist/index.css';
|
|
32
|
+
|
|
33
|
+
function App() {
|
|
34
|
+
return (
|
|
35
|
+
<div>
|
|
36
|
+
<H1 font="nunito" color="theme-primary">
|
|
37
|
+
Welcome to Aloha UI
|
|
38
|
+
</H1>
|
|
39
|
+
<Button variant="default" onClick={() => alert('Hello!')}>
|
|
40
|
+
Click me
|
|
41
|
+
</Button>
|
|
42
|
+
</div>
|
|
43
|
+
);
|
|
44
|
+
}
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
## 🎨 Features
|
|
48
|
+
|
|
49
|
+
- **20+ UI Components**: Button, Card, Input, Badge, Avatar, Grid, Image, Popup, etc.
|
|
50
|
+
- **Typography System**: H1-H4, P, Subtitle, Lead, Small, Muted with font and color options
|
|
51
|
+
- **Color Palette**: 11 predefined colors + adaptive theme colors
|
|
52
|
+
- **Two Fonts**: JetBrains Mono and Nunito Sans with multiple weights
|
|
53
|
+
- **Dark Mode Support**: Theme colors that adapt automatically
|
|
54
|
+
- **TypeScript**: Fully typed for better DX
|
|
55
|
+
- **Storybook**: Interactive component documentation
|
|
56
|
+
|
|
57
|
+
## 📚 Documentation
|
|
58
|
+
|
|
59
|
+
Visit our [Storybook](https://srteam-dev.github.io/aloha_lib/) to explore all components and examples.
|
|
60
|
+
|
|
61
|
+
## Development
|
|
62
|
+
|
|
63
|
+
### Install dependencies
|
|
64
|
+
```bash
|
|
65
|
+
npm install
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
### Run Storybook
|
|
69
|
+
```bash
|
|
70
|
+
npm run dev
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
### Build the library
|
|
74
|
+
```bash
|
|
75
|
+
npm run build
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
### Build Storybook
|
|
79
|
+
```bash
|
|
80
|
+
npm run build-storybook
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
## Publishing
|
|
84
|
+
|
|
85
|
+
1. Update version in package.json
|
|
86
|
+
2. Build the library: `npm run build`
|
|
87
|
+
3. Publish to npm: `npm publish`
|
|
88
|
+
|
|
89
|
+
Or use the version scripts:
|
|
90
|
+
```bash
|
|
91
|
+
npm run version:patch # 1.0.0 -> 1.0.1
|
|
92
|
+
npm run version:minor # 1.0.0 -> 1.1.0
|
|
93
|
+
npm run version:major # 1.0.0 -> 2.0.0
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
## License
|
|
97
|
+
|
|
98
|
+
MIT © Aloha Team
|
package/dist/colors.d.ts
ADDED
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Paleta de colores de Aloha UI
|
|
3
|
+
* Importa estos colores para usarlos en tus componentes
|
|
4
|
+
*
|
|
5
|
+
* @example
|
|
6
|
+
* import { colors, cssVars } from '@srteam-dev/aloha-ui';
|
|
7
|
+
*
|
|
8
|
+
* // Usar con valor hexadecimal directo
|
|
9
|
+
* <div style={{ backgroundColor: colors.olivo }}>
|
|
10
|
+
* Contenido
|
|
11
|
+
* </div>
|
|
12
|
+
*
|
|
13
|
+
* // Usar con variable CSS
|
|
14
|
+
* <div style={{ backgroundColor: cssVars.olivo }}>
|
|
15
|
+
* Contenido
|
|
16
|
+
* </div>
|
|
17
|
+
*/
|
|
18
|
+
export declare const colors: {
|
|
19
|
+
readonly olivo: "#383517";
|
|
20
|
+
readonly lima: "#B4DE6E";
|
|
21
|
+
readonly bosque: "#648C2C";
|
|
22
|
+
readonly hueso: "#F5F5DC";
|
|
23
|
+
readonly piedra: "#4A443F";
|
|
24
|
+
readonly corteza: "#6B5B3E";
|
|
25
|
+
readonly girasol: "#FFD400";
|
|
26
|
+
readonly coral: "#FF6F61";
|
|
27
|
+
readonly aqua: "#66FFCC";
|
|
28
|
+
readonly lavanda: "#B388D3";
|
|
29
|
+
readonly electrico: "#0084FF";
|
|
30
|
+
};
|
|
31
|
+
/**
|
|
32
|
+
* Variables CSS para usar los colores
|
|
33
|
+
* Usa estas variables para aprovechar las CSS custom properties
|
|
34
|
+
*
|
|
35
|
+
* @example
|
|
36
|
+
* import { cssVars } from '@srteam-dev/aloha-ui';
|
|
37
|
+
*
|
|
38
|
+
* <div style={{ backgroundColor: cssVars.olivo }}>
|
|
39
|
+
* Contenido con variable CSS
|
|
40
|
+
* </div>
|
|
41
|
+
*/
|
|
42
|
+
export declare const cssVars: {
|
|
43
|
+
readonly olivo: "var(--colors-olivo)";
|
|
44
|
+
readonly lima: "var(--colors-lima)";
|
|
45
|
+
readonly bosque: "var(--colors-bosque)";
|
|
46
|
+
readonly hueso: "var(--colors-hueso)";
|
|
47
|
+
readonly piedra: "var(--colors-piedra)";
|
|
48
|
+
readonly corteza: "var(--colors-corteza)";
|
|
49
|
+
readonly girasol: "var(--colors-girasol)";
|
|
50
|
+
readonly coral: "var(--colors-coral)";
|
|
51
|
+
readonly aqua: "var(--colors-aqua)";
|
|
52
|
+
readonly lavanda: "var(--colors-lavanda)";
|
|
53
|
+
readonly electrico: "var(--colors-electrico)";
|
|
54
|
+
};
|
|
55
|
+
export type ColorName = keyof typeof colors;
|
|
56
|
+
export type ColorValue = typeof colors[ColorName];
|
|
57
|
+
/**
|
|
58
|
+
* Obtiene el valor hexadecimal de un color por su nombre
|
|
59
|
+
*/
|
|
60
|
+
export declare const getColor: (colorName: ColorName) => ColorValue;
|
|
61
|
+
/**
|
|
62
|
+
* Lista de todos los colores disponibles
|
|
63
|
+
*/
|
|
64
|
+
export declare const colorEntries: [ColorName, ColorValue][];
|
|
65
|
+
/**
|
|
66
|
+
* Obtiene la variable CSS de un color por su nombre
|
|
67
|
+
*/
|
|
68
|
+
export declare const getCssVar: (colorName: ColorName) => string;
|
|
69
|
+
/**
|
|
70
|
+
* Variables CSS para el tema (se adaptan automáticamente a modo claro/oscuro)
|
|
71
|
+
*
|
|
72
|
+
* Modo claro:
|
|
73
|
+
* - background: hueso (#F5F5DC)
|
|
74
|
+
* - text: olivo (#383517)
|
|
75
|
+
* - highlight: corteza (#6B5B3E)
|
|
76
|
+
* - primary: lima (#B4DE6E)
|
|
77
|
+
*
|
|
78
|
+
* Modo oscuro:
|
|
79
|
+
* - background: piedra (#4A443F)
|
|
80
|
+
* - text: hueso (#F5F5DC)
|
|
81
|
+
* - highlight: corteza (#6B5B3E)
|
|
82
|
+
* - primary: bosque (#648C2C)
|
|
83
|
+
*
|
|
84
|
+
* @example
|
|
85
|
+
* import { themeVars } from '@srteam-dev/aloha-ui';
|
|
86
|
+
*
|
|
87
|
+
* <div style={{
|
|
88
|
+
* backgroundColor: themeVars.background,
|
|
89
|
+
* color: themeVars.text
|
|
90
|
+
* }}>
|
|
91
|
+
* Este div se adapta automáticamente al tema
|
|
92
|
+
* </div>
|
|
93
|
+
*/
|
|
94
|
+
export declare const themeVars: {
|
|
95
|
+
readonly background: "var(--theme-background)";
|
|
96
|
+
readonly text: "var(--theme-text)";
|
|
97
|
+
readonly highlight: "var(--theme-highlight)";
|
|
98
|
+
readonly primary: "var(--theme-primary)";
|
|
99
|
+
};
|
|
100
|
+
export type ThemeName = keyof typeof themeVars;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
export interface AvatarProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
3
|
+
src?: string;
|
|
4
|
+
alt?: string;
|
|
5
|
+
fallback?: string;
|
|
6
|
+
size?: 'sm' | 'md' | 'lg' | 'xl';
|
|
7
|
+
}
|
|
8
|
+
declare const Avatar: React.ForwardRefExoticComponent<AvatarProps & React.RefAttributes<HTMLDivElement>>;
|
|
9
|
+
export { Avatar };
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { type VariantProps } from 'class-variance-authority';
|
|
3
|
+
declare const badgeVariants: (props?: ({
|
|
4
|
+
variant?: "default" | "destructive" | "outline" | "secondary" | null | undefined;
|
|
5
|
+
} & import("class-variance-authority/dist/types").ClassProp) | undefined) => string;
|
|
6
|
+
export interface BadgeProps extends React.HTMLAttributes<HTMLDivElement>, VariantProps<typeof badgeVariants> {
|
|
7
|
+
}
|
|
8
|
+
declare function Badge({ className, variant, ...props }: BadgeProps): import("react/jsx-runtime").JSX.Element;
|
|
9
|
+
export { Badge, badgeVariants };
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { type VariantProps } from 'class-variance-authority';
|
|
3
|
+
declare const buttonVariants: (props?: ({
|
|
4
|
+
variant?: "default" | "destructive" | "outline" | "secondary" | "ghost" | "link" | null | undefined;
|
|
5
|
+
size?: "default" | "sm" | "lg" | "icon" | null | undefined;
|
|
6
|
+
} & import("class-variance-authority/dist/types").ClassProp) | undefined) => string;
|
|
7
|
+
export interface ButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement>, VariantProps<typeof buttonVariants> {
|
|
8
|
+
asChild?: boolean;
|
|
9
|
+
/** Click handler function */
|
|
10
|
+
onClick?: (event: React.MouseEvent<HTMLButtonElement>) => void;
|
|
11
|
+
/** Disabled state */
|
|
12
|
+
disabled?: boolean;
|
|
13
|
+
/** Loading state */
|
|
14
|
+
loading?: boolean;
|
|
15
|
+
}
|
|
16
|
+
declare const Button: React.ForwardRefExoticComponent<ButtonProps & React.RefAttributes<HTMLButtonElement>>;
|
|
17
|
+
export { Button, buttonVariants };
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
declare const Card: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
|
|
3
|
+
declare const CardHeader: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
|
|
4
|
+
declare const CardTitle: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLHeadingElement> & React.RefAttributes<HTMLParagraphElement>>;
|
|
5
|
+
declare const CardDescription: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLParagraphElement> & React.RefAttributes<HTMLParagraphElement>>;
|
|
6
|
+
declare const CardContent: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
|
|
7
|
+
declare const CardFooter: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
|
|
8
|
+
export { Card, CardHeader, CardFooter, CardTitle, CardDescription, CardContent };
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
export interface CheckboxProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, 'type'> {
|
|
3
|
+
label?: string;
|
|
4
|
+
}
|
|
5
|
+
declare const Checkbox: React.ForwardRefExoticComponent<CheckboxProps & React.RefAttributes<HTMLInputElement>>;
|
|
6
|
+
export { Checkbox };
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { colors, ColorName } from '../colors';
|
|
3
|
+
export interface ColorSwatchProps {
|
|
4
|
+
name: ColorName;
|
|
5
|
+
value: string;
|
|
6
|
+
size?: 'sm' | 'md' | 'lg';
|
|
7
|
+
showHex?: boolean;
|
|
8
|
+
className?: string;
|
|
9
|
+
}
|
|
10
|
+
export declare const ColorSwatch: React.FC<ColorSwatchProps>;
|
|
11
|
+
export interface ColorPaletteProps {
|
|
12
|
+
size?: 'sm' | 'md' | 'lg';
|
|
13
|
+
showHex?: boolean;
|
|
14
|
+
columns?: 2 | 3 | 4 | 5 | 6;
|
|
15
|
+
className?: string;
|
|
16
|
+
}
|
|
17
|
+
export declare const ColorPalette: React.FC<ColorPaletteProps>;
|
|
18
|
+
export { colors };
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
export interface ErrorProps {
|
|
3
|
+
title?: string;
|
|
4
|
+
message?: string;
|
|
5
|
+
onRetry?: () => void;
|
|
6
|
+
retryText?: string;
|
|
7
|
+
className?: string;
|
|
8
|
+
variant?: 'inline' | 'card';
|
|
9
|
+
showIcon?: boolean;
|
|
10
|
+
}
|
|
11
|
+
export declare const Error: React.FC<ErrorProps>;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
export interface ErrorFullScreenProps {
|
|
3
|
+
title?: string;
|
|
4
|
+
message?: string;
|
|
5
|
+
onRetry?: () => void;
|
|
6
|
+
retryText?: string;
|
|
7
|
+
className?: string;
|
|
8
|
+
background?: 'white' | 'gray' | 'dark' | 'transparent';
|
|
9
|
+
showIcon?: boolean;
|
|
10
|
+
}
|
|
11
|
+
export declare const ErrorFullScreen: React.FC<ErrorFullScreenProps>;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
export interface GridProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
3
|
+
/** Number of columns (2, 3, or 4) */
|
|
4
|
+
columns?: 2 | 3 | 4;
|
|
5
|
+
/** Gap between grid items */
|
|
6
|
+
gap?: string;
|
|
7
|
+
/** Children components */
|
|
8
|
+
children: React.ReactNode;
|
|
9
|
+
/** Additional CSS classes */
|
|
10
|
+
className?: string;
|
|
11
|
+
}
|
|
12
|
+
export declare const Grid: React.ForwardRefExoticComponent<GridProps & React.RefAttributes<HTMLDivElement>>;
|
|
13
|
+
export interface GridItemProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
14
|
+
/** Children components */
|
|
15
|
+
children: React.ReactNode;
|
|
16
|
+
/** Additional CSS classes */
|
|
17
|
+
className?: string;
|
|
18
|
+
}
|
|
19
|
+
export declare const GridItem: React.ForwardRefExoticComponent<GridItemProps & React.RefAttributes<HTMLDivElement>>;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
export interface ImageProps extends React.ImgHTMLAttributes<HTMLImageElement> {
|
|
3
|
+
/** Image source URL */
|
|
4
|
+
src: string;
|
|
5
|
+
/** Alternative text for accessibility */
|
|
6
|
+
alt: string;
|
|
7
|
+
/** Width of the image */
|
|
8
|
+
width?: number | string;
|
|
9
|
+
/** Height of the image */
|
|
10
|
+
height?: number | string;
|
|
11
|
+
/** Object fit style */
|
|
12
|
+
objectFit?: 'contain' | 'cover' | 'fill' | 'none' | 'scale-down';
|
|
13
|
+
/** Image loading strategy */
|
|
14
|
+
loading?: 'lazy' | 'eager';
|
|
15
|
+
/** Fallback image URL if main image fails to load */
|
|
16
|
+
fallbackSrc?: string;
|
|
17
|
+
/** Callback when image fails to load */
|
|
18
|
+
onError?: () => void;
|
|
19
|
+
/** Additional CSS classes */
|
|
20
|
+
className?: string;
|
|
21
|
+
}
|
|
22
|
+
export declare const Image: React.ForwardRefExoticComponent<ImageProps & React.RefAttributes<HTMLImageElement>>;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
export interface LoadingFullScreenProps {
|
|
3
|
+
message?: string;
|
|
4
|
+
className?: string;
|
|
5
|
+
spinnerSize?: 'sm' | 'md' | 'lg' | 'xl';
|
|
6
|
+
background?: 'white' | 'gray' | 'dark' | 'transparent';
|
|
7
|
+
}
|
|
8
|
+
export declare const LoadingFullScreen: React.FC<LoadingFullScreenProps>;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
export interface NavigationItem {
|
|
3
|
+
label: string;
|
|
4
|
+
href: string;
|
|
5
|
+
icon?: React.ReactNode;
|
|
6
|
+
active?: boolean;
|
|
7
|
+
}
|
|
8
|
+
export interface NavigationBarProps {
|
|
9
|
+
items?: NavigationItem[];
|
|
10
|
+
logo?: React.ReactNode;
|
|
11
|
+
className?: string;
|
|
12
|
+
position?: 'top' | 'bottom';
|
|
13
|
+
}
|
|
14
|
+
declare const NavigationBar: React.ForwardRefExoticComponent<NavigationBarProps & React.RefAttributes<HTMLElement>>;
|
|
15
|
+
export { NavigationBar };
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
export interface NotificationProps {
|
|
3
|
+
id?: string;
|
|
4
|
+
type: 'like' | 'comment' | 'follow' | 'mention' | 'info';
|
|
5
|
+
title: string;
|
|
6
|
+
message: string;
|
|
7
|
+
timestamp: string;
|
|
8
|
+
avatar?: string;
|
|
9
|
+
read?: boolean;
|
|
10
|
+
onClose?: () => void;
|
|
11
|
+
onClick?: () => void;
|
|
12
|
+
className?: string;
|
|
13
|
+
}
|
|
14
|
+
declare const Notification: React.ForwardRefExoticComponent<NotificationProps & React.RefAttributes<HTMLDivElement>>;
|
|
15
|
+
export { Notification };
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
export interface PopupProps {
|
|
3
|
+
/** Whether the popup is open */
|
|
4
|
+
open: boolean;
|
|
5
|
+
/** Callback when the popup should close */
|
|
6
|
+
onClose: () => void;
|
|
7
|
+
/** Popup title */
|
|
8
|
+
title?: string;
|
|
9
|
+
/** Popup content */
|
|
10
|
+
children: React.ReactNode;
|
|
11
|
+
/** Size of the popup */
|
|
12
|
+
size?: 'sm' | 'md' | 'lg' | 'xl' | 'full';
|
|
13
|
+
/** Whether to show close button */
|
|
14
|
+
showCloseButton?: boolean;
|
|
15
|
+
/** Whether clicking overlay closes the popup */
|
|
16
|
+
closeOnOverlayClick?: boolean;
|
|
17
|
+
/** Additional CSS classes for the content */
|
|
18
|
+
className?: string;
|
|
19
|
+
/** Footer content */
|
|
20
|
+
footer?: React.ReactNode;
|
|
21
|
+
}
|
|
22
|
+
export declare const Popup: React.ForwardRefExoticComponent<PopupProps & React.RefAttributes<HTMLDivElement>>;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
export interface PostProps {
|
|
3
|
+
author: {
|
|
4
|
+
name: string;
|
|
5
|
+
username: string;
|
|
6
|
+
avatar?: string;
|
|
7
|
+
};
|
|
8
|
+
content: string;
|
|
9
|
+
image?: string;
|
|
10
|
+
timestamp: string;
|
|
11
|
+
likes?: number;
|
|
12
|
+
comments?: number;
|
|
13
|
+
isLiked?: boolean;
|
|
14
|
+
className?: string;
|
|
15
|
+
onLike?: () => void;
|
|
16
|
+
onComment?: () => void;
|
|
17
|
+
onShare?: () => void;
|
|
18
|
+
}
|
|
19
|
+
declare const Post: React.ForwardRefExoticComponent<PostProps & React.RefAttributes<HTMLDivElement>>;
|
|
20
|
+
export { Post };
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
export interface SearchInputProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, 'type'> {
|
|
3
|
+
onSearch?: (value: string) => void;
|
|
4
|
+
}
|
|
5
|
+
declare const SearchInput: React.ForwardRefExoticComponent<SearchInputProps & React.RefAttributes<HTMLInputElement>>;
|
|
6
|
+
export { SearchInput };
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
export interface SwitchProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, 'type'> {
|
|
3
|
+
label?: string;
|
|
4
|
+
}
|
|
5
|
+
declare const Switch: React.ForwardRefExoticComponent<SwitchProps & React.RefAttributes<HTMLInputElement>>;
|
|
6
|
+
export { Switch };
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
export type FontFamily = 'jetbrains' | 'nunito' | 'default';
|
|
3
|
+
export type FontWeight = 'light' | 'medium' | 'bold' | 'black';
|
|
4
|
+
export type ColorOption = 'olivo' | 'lima' | 'bosque' | 'hueso' | 'piedra' | 'corteza' | 'girasol' | 'coral' | 'aqua' | 'lavanda' | 'electrico' | 'theme-background' | 'theme-text' | 'theme-highlight' | 'theme-primary' | 'default';
|
|
5
|
+
export interface HeadingProps extends React.HTMLAttributes<HTMLHeadingElement> {
|
|
6
|
+
children: React.ReactNode;
|
|
7
|
+
className?: string;
|
|
8
|
+
font?: FontFamily;
|
|
9
|
+
weight?: FontWeight;
|
|
10
|
+
color?: ColorOption;
|
|
11
|
+
}
|
|
12
|
+
export declare const H1: React.ForwardRefExoticComponent<HeadingProps & React.RefAttributes<HTMLHeadingElement>>;
|
|
13
|
+
export declare const H2: React.ForwardRefExoticComponent<HeadingProps & React.RefAttributes<HTMLHeadingElement>>;
|
|
14
|
+
export declare const H3: React.ForwardRefExoticComponent<HeadingProps & React.RefAttributes<HTMLHeadingElement>>;
|
|
15
|
+
export declare const H4: React.ForwardRefExoticComponent<HeadingProps & React.RefAttributes<HTMLHeadingElement>>;
|
|
16
|
+
export interface ParagraphProps extends React.HTMLAttributes<HTMLParagraphElement> {
|
|
17
|
+
children: React.ReactNode;
|
|
18
|
+
className?: string;
|
|
19
|
+
font?: FontFamily;
|
|
20
|
+
weight?: FontWeight;
|
|
21
|
+
color?: ColorOption;
|
|
22
|
+
}
|
|
23
|
+
export declare const P: React.ForwardRefExoticComponent<ParagraphProps & React.RefAttributes<HTMLParagraphElement>>;
|
|
24
|
+
export declare const Subtitle: React.ForwardRefExoticComponent<ParagraphProps & React.RefAttributes<HTMLParagraphElement>>;
|
|
25
|
+
export declare const Lead: React.ForwardRefExoticComponent<ParagraphProps & React.RefAttributes<HTMLParagraphElement>>;
|
|
26
|
+
export interface SmallProps extends React.HTMLAttributes<HTMLElement> {
|
|
27
|
+
children: React.ReactNode;
|
|
28
|
+
className?: string;
|
|
29
|
+
font?: FontFamily;
|
|
30
|
+
weight?: FontWeight;
|
|
31
|
+
color?: ColorOption;
|
|
32
|
+
}
|
|
33
|
+
export declare const Small: React.ForwardRefExoticComponent<SmallProps & React.RefAttributes<HTMLElement>>;
|
|
34
|
+
export declare const Muted: React.ForwardRefExoticComponent<ParagraphProps & React.RefAttributes<HTMLParagraphElement>>;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
export interface UserCardProps {
|
|
3
|
+
name: string;
|
|
4
|
+
username: string;
|
|
5
|
+
avatar?: string;
|
|
6
|
+
bio?: string;
|
|
7
|
+
followers?: number;
|
|
8
|
+
following?: number;
|
|
9
|
+
isFollowing?: boolean;
|
|
10
|
+
className?: string;
|
|
11
|
+
onFollow?: () => void;
|
|
12
|
+
}
|
|
13
|
+
declare const UserCard: React.ForwardRefExoticComponent<UserCardProps & React.RefAttributes<HTMLDivElement>>;
|
|
14
|
+
export { UserCard };
|
package/dist/index.css
ADDED
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
@import url("https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@300;500;700&family=Nunito+Sans:wght@300;500;700;900&display=swap");*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }
|
|
2
|
+
|
|
3
|
+
/*
|
|
4
|
+
! tailwindcss v3.4.18 | MIT License | https://tailwindcss.com
|
|
5
|
+
*/*,:after,:before{border:0 solid #e5e7eb;box-sizing:border-box}:after,:before{--tw-content:""}:host,html{-webkit-text-size-adjust:100%;font-feature-settings:normal;-webkit-tap-highlight-color:transparent;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-variation-settings:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4}body{line-height:inherit;margin:0}hr{border-top-width:1px;color:inherit;height:0}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-feature-settings:normal;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em;font-variation-settings:normal}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{border-collapse:collapse;border-color:inherit;text-indent:0}button,input,optgroup,select,textarea{font-feature-settings:inherit;color:inherit;font-family:inherit;font-size:100%;font-variation-settings:inherit;font-weight:inherit;letter-spacing:inherit;line-height:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{color:#9ca3af;opacity:1}input::placeholder,textarea::placeholder{color:#9ca3af;opacity:1}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{height:auto;max-width:100%}[hidden]:where(:not([hidden=until-found])){display:none}.sr-only{clip:rect(0,0,0,0);border-width:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.inset-0{inset:0}.left-3{left:.75rem}.top-1\/2{top:50%}.z-50{z-index:50}.mx-4{margin-left:1rem;margin-right:1rem}.mx-auto{margin-left:auto;margin-right:auto}.mb-1{margin-bottom:.25rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-6{margin-bottom:1.5rem}.mr-2{margin-right:.5rem}.mt-2{margin-top:.5rem}.mt-4{margin-top:1rem}.mt-8{margin-top:2rem}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.grid{display:grid}.hidden{display:none}.aspect-square{aspect-ratio:1/1}.h-10{height:2.5rem}.h-11{height:2.75rem}.h-12{height:3rem}.h-16{height:4rem}.h-20{height:5rem}.h-24{height:6rem}.h-32{height:8rem}.h-4{height:1rem}.h-6{height:1.5rem}.h-8{height:2rem}.h-9{height:2.25rem}.h-96{height:24rem}.h-full{height:100%}.max-h-96{max-height:24rem}.min-h-screen{min-height:100vh}.w-10{width:2.5rem}.w-11{width:2.75rem}.w-12{width:3rem}.w-16{width:4rem}.w-20{width:5rem}.w-24{width:6rem}.w-32{width:8rem}.w-4{width:1rem}.w-8{width:2rem}.w-\[350px\]{width:350px}.w-full{width:100%}.max-w-2xl{max-width:42rem}.max-w-3xl{max-width:48rem}.max-w-full{max-width:100%}.max-w-lg{max-width:32rem}.max-w-md{max-width:28rem}.max-w-sm{max-width:24rem}.max-w-xl{max-width:36rem}.flex-1{flex:1 1 0%}.flex-shrink-0,.shrink-0{flex-shrink:0}.-translate-y-1\/2{--tw-translate-y:-50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes spin{to{transform:rotate(1turn)}}.animate-spin{animation:spin 1s linear infinite}.cursor-pointer{cursor:pointer}.scroll-m-20{scroll-margin:5rem}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.flex-col{flex-direction:column}.items-start{align-items:flex-start}.items-center{align-items:center}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-6{gap:1.5rem}.space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(.5rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(.5rem*var(--tw-space-x-reverse))}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(.25rem*var(--tw-space-y-reverse));margin-top:calc(.25rem*(1 - var(--tw-space-y-reverse)))}.space-y-1\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(.375rem*var(--tw-space-y-reverse));margin-top:calc(.375rem*(1 - var(--tw-space-y-reverse)))}.space-y-12>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(3rem*var(--tw-space-y-reverse));margin-top:calc(3rem*(1 - var(--tw-space-y-reverse)))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(.5rem*var(--tw-space-y-reverse));margin-top:calc(.5rem*(1 - var(--tw-space-y-reverse)))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(1rem*var(--tw-space-y-reverse));margin-top:calc(1rem*(1 - var(--tw-space-y-reverse)))}.space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(1.5rem*var(--tw-space-y-reverse));margin-top:calc(1.5rem*(1 - var(--tw-space-y-reverse)))}.space-y-8>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(2rem*var(--tw-space-y-reverse));margin-top:calc(2rem*(1 - var(--tw-space-y-reverse)))}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.whitespace-nowrap{white-space:nowrap}.rounded{border-radius:.25rem}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:var(--radius)}.rounded-md{border-radius:calc(var(--radius) - 2px)}.rounded-sm{border-radius:calc(var(--radius) - 4px)}.border{border-width:1px}.border-2{border-width:2px}.border-4{border-width:4px}.border-b{border-bottom-width:1px}.border-t{border-top-width:1px}.border-blue-200{--tw-border-opacity:1;border-color:rgb(191 219 254/var(--tw-border-opacity,1))}.border-current{border-color:currentColor}.border-gray-200{--tw-border-opacity:1;border-color:rgb(229 231 235/var(--tw-border-opacity,1))}.border-gray-300{--tw-border-opacity:1;border-color:rgb(209 213 219/var(--tw-border-opacity,1))}.border-input{border-color:hsl(var(--input))}.border-primary{border-color:hsl(var(--primary))}.border-red-200{--tw-border-opacity:1;border-color:rgb(254 202 202/var(--tw-border-opacity,1))}.border-transparent{border-color:transparent}.border-t-transparent{border-top-color:transparent}.bg-\[\#383517\]{--tw-bg-opacity:1;background-color:rgb(56 53 23/var(--tw-bg-opacity,1))}.bg-background{background-color:hsl(var(--background))}.bg-black\/50{background-color:rgba(0,0,0,.5)}.bg-blue-50{--tw-bg-opacity:1;background-color:rgb(239 246 255/var(--tw-bg-opacity,1))}.bg-blue-50\/50{background-color:rgba(239,246,255,.5)}.bg-blue-500{--tw-bg-opacity:1;background-color:rgb(59 130 246/var(--tw-bg-opacity,1))}.bg-card{background-color:hsl(var(--background))}.bg-destructive{background-color:hsl(var(--destructive))}.bg-gray-100{--tw-bg-opacity:1;background-color:rgb(243 244 246/var(--tw-bg-opacity,1))}.bg-gray-200{--tw-bg-opacity:1;background-color:rgb(229 231 235/var(--tw-bg-opacity,1))}.bg-gray-50{--tw-bg-opacity:1;background-color:rgb(249 250 251/var(--tw-bg-opacity,1))}.bg-gray-900{--tw-bg-opacity:1;background-color:rgb(17 24 39/var(--tw-bg-opacity,1))}.bg-muted{background-color:hsl(var(--muted))}.bg-primary{background-color:hsl(var(--primary))}.bg-red-50{--tw-bg-opacity:1;background-color:rgb(254 242 242/var(--tw-bg-opacity,1))}.bg-secondary{background-color:hsl(var(--secondary))}.bg-transparent{background-color:transparent}.bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.bg-white\/90{background-color:hsla(0,0%,100%,.9)}.object-contain{-o-object-fit:contain;object-fit:contain}.object-cover{-o-object-fit:cover;object-fit:cover}.object-fill{-o-object-fit:fill;object-fit:fill}.object-none{-o-object-fit:none;object-fit:none}.object-scale-down{-o-object-fit:scale-down;object-fit:scale-down}.p-2{padding:.5rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.p-8{padding:2rem}.px-2\.5{padding-left:.625rem;padding-right:.625rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.px-8{padding-left:2rem;padding-right:2rem}.py-0\.5{padding-bottom:.125rem;padding-top:.125rem}.py-2{padding-bottom:.5rem;padding-top:.5rem}.py-3{padding-bottom:.75rem;padding-top:.75rem}.pb-2{padding-bottom:.5rem}.pl-10{padding-left:2.5rem}.pt-0{padding-top:0}.text-center{text-align:center}.font-jetbrains{font-family:JetBrains Mono,monospace}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.font-nunito{font-family:Nunito Sans,sans-serif}.text-2xl{font-size:1.5rem;line-height:2rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-4xl{font-size:2.25rem;line-height:2.5rem}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-black{font-weight:900}.font-bold{font-weight:700}.font-extrabold{font-weight:800}.font-light{font-weight:300}.font-medium{font-weight:500}.font-semibold{font-weight:600}.capitalize{text-transform:capitalize}.leading-7{line-height:1.75rem}.leading-none{line-height:1}.tracking-tight{letter-spacing:-.025em}.text-blue-500{--tw-text-opacity:1;color:rgb(59 130 246/var(--tw-text-opacity,1))}.text-blue-900{--tw-text-opacity:1;color:rgb(30 58 138/var(--tw-text-opacity,1))}.text-card-foreground{color:hsl(var(--foreground))}.text-destructive-foreground{color:hsl(var(--destructive-foreground))}.text-foreground{color:hsl(var(--foreground))}.text-gray-100{--tw-text-opacity:1;color:rgb(243 244 246/var(--tw-text-opacity,1))}.text-gray-300{--tw-text-opacity:1;color:rgb(209 213 219/var(--tw-text-opacity,1))}.text-gray-500{--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity,1))}.text-gray-600{--tw-text-opacity:1;color:rgb(75 85 99/var(--tw-text-opacity,1))}.text-gray-900{--tw-text-opacity:1;color:rgb(17 24 39/var(--tw-text-opacity,1))}.text-green-500{--tw-text-opacity:1;color:rgb(34 197 94/var(--tw-text-opacity,1))}.text-muted-foreground{color:hsl(var(--muted-foreground))}.text-primary{color:hsl(var(--primary))}.text-primary-foreground{color:hsl(var(--primary-foreground))}.text-purple-500{--tw-text-opacity:1;color:rgb(168 85 247/var(--tw-text-opacity,1))}.text-red-500{--tw-text-opacity:1;color:rgb(239 68 68/var(--tw-text-opacity,1))}.text-secondary-foreground{color:hsl(var(--secondary-foreground))}.text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.underline-offset-4{text-underline-offset:4px}.opacity-0{opacity:0}.opacity-100{opacity:1}.opacity-70{opacity:.7}.shadow-lg{--tw-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1);--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color)}.shadow-lg,.shadow-md{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1);--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color)}.shadow-sm{--tw-shadow:0 1px 2px 0 rgba(0,0,0,.05);--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.outline{outline-style:solid}.ring-offset-background{--tw-ring-offset-color:hsl(var(--background))}.backdrop-blur-sm{--tw-backdrop-blur:blur(4px);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.transition-colors{transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-opacity{transition-duration:.15s;transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-transform{transition-duration:.15s;transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1)}.duration-300{transition-duration:.3s}:root{--primary:210 100% 50%;--primary-foreground:0 0% 100%;--secondary:220 14% 96%;--secondary-foreground:222 47% 11%;--muted:220 14% 96%;--muted-foreground:220 9% 46%;--accent:220 14% 96%;--accent-foreground:222 47% 11%;--destructive:0 84% 60%;--destructive-foreground:0 0% 100%;--border:220 13% 91%;--input:220 13% 91%;--ring:210 100% 50%;--radius:0.5rem;--background:0 0% 100%;--foreground:222 47% 11%;--colors-olivo:#383517;--colors-lima:#b4de6e;--colors-bosque:#648c2c;--colors-hueso:beige;--colors-piedra:#4a443f;--colors-corteza:#6b5b3e;--colors-girasol:#ffd400;--colors-coral:#ff6f61;--colors-aqua:#6fc;--colors-lavanda:#b388d3;--colors-electrico:#0084ff;--theme-background:var(--colors-hueso);--theme-text:var(--colors-olivo);--theme-highlight:var(--colors-corteza);--theme-primary:var(--colors-lima);--font-jetbrains:"JetBrains Mono",monospace;--font-nunito:"Nunito Sans",sans-serif}.dark{--primary:210 100% 50%;--primary-foreground:0 0% 100%;--secondary:217 33% 17%;--secondary-foreground:210 40% 98%;--muted:217 33% 17%;--muted-foreground:215 20% 65%;--accent:217 33% 17%;--accent-foreground:210 40% 98%;--destructive:0 63% 31%;--destructive-foreground:210 40% 98%;--border:217 33% 17%;--input:217 33% 17%;--ring:210 100% 50%;--background:222 47% 11%;--foreground:210 40% 98%;--theme-background:var(--colors-piedra);--theme-text:var(--colors-hueso);--theme-highlight:var(--colors-corteza);--theme-primary:var(--colors-bosque)}*{border-color:hsl(var(--border))}body{font-feature-settings:"rlig" 1,"calt" 1;background-color:hsl(var(--background));color:hsl(var(--foreground))}.file\:border-0::file-selector-button{border-width:0}.file\:bg-transparent::file-selector-button{background-color:transparent}.file\:text-sm::file-selector-button{font-size:.875rem;line-height:1.25rem}.file\:font-medium::file-selector-button{font-weight:500}.placeholder\:text-muted-foreground::-moz-placeholder{color:hsl(var(--muted-foreground))}.placeholder\:text-muted-foreground::placeholder{color:hsl(var(--muted-foreground))}.after\:absolute:after{content:var(--tw-content);position:absolute}.after\:left-\[2px\]:after{content:var(--tw-content);left:2px}.after\:top-\[2px\]:after{content:var(--tw-content);top:2px}.after\:h-5:after{content:var(--tw-content);height:1.25rem}.after\:w-5:after{content:var(--tw-content);width:1.25rem}.after\:rounded-full:after{border-radius:9999px;content:var(--tw-content)}.after\:border:after{border-width:1px;content:var(--tw-content)}.after\:border-gray-300:after{--tw-border-opacity:1;border-color:rgb(209 213 219/var(--tw-border-opacity,1));content:var(--tw-content)}.after\:bg-white:after{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1));content:var(--tw-content)}.after\:transition-all:after{content:var(--tw-content);transition-duration:.15s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}.after\:content-\[\"\"\]:after{--tw-content:"";content:var(--tw-content)}.first\:mt-0:first-child{margin-top:0}.hover\:scale-105:hover{--tw-scale-x:1.05;--tw-scale-y:1.05;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:bg-accent:hover{background-color:hsl(var(--accent))}.hover\:bg-destructive\/80:hover{background-color:hsl(var(--destructive)/.8)}.hover\:bg-destructive\/90:hover{background-color:hsl(var(--destructive)/.9)}.hover\:bg-primary\/80:hover{background-color:hsl(var(--primary)/.8)}.hover\:bg-primary\/90:hover{background-color:hsl(var(--primary)/.9)}.hover\:bg-secondary\/80:hover{background-color:hsl(var(--secondary)/.8)}.hover\:text-accent-foreground:hover{color:hsl(var(--accent-foreground))}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-100:hover{opacity:1}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus\:ring-2:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus\:ring-ring:focus{--tw-ring-color:hsl(var(--ring))}.focus\:ring-offset-2:focus{--tw-ring-offset-width:2px}.focus-visible\:outline-none:focus-visible{outline:2px solid transparent;outline-offset:2px}.focus-visible\:ring-2:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus-visible\:ring-ring:focus-visible{--tw-ring-color:hsl(var(--ring))}.focus-visible\:ring-offset-2:focus-visible{--tw-ring-offset-width:2px}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}.peer:checked~.peer-checked\:bg-primary{background-color:hsl(var(--primary))}.peer:checked~.peer-checked\:after\:translate-x-full:after{--tw-translate-x:100%;content:var(--tw-content);transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.peer:checked~.peer-checked\:after\:border-white:after{--tw-border-opacity:1;border-color:rgb(255 255 255/var(--tw-border-opacity,1));content:var(--tw-content)}.peer:focus~.peer-focus\:outline-none{outline:2px solid transparent;outline-offset:2px}.peer:focus~.peer-focus\:ring-4{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.peer:focus~.peer-focus\:ring-ring\/20{--tw-ring-color:hsl(var(--ring)/0.2)}.peer:disabled~.peer-disabled\:cursor-not-allowed{cursor:not-allowed}.peer:disabled~.peer-disabled\:opacity-50{opacity:.5}.peer:disabled~.peer-disabled\:opacity-70{opacity:.7}.dark\:bg-blue-950\/20:is(.dark *){background-color:rgba(23,37,84,.2)}.dark\:text-gray-400:is(.dark *){--tw-text-opacity:1;color:rgb(156 163 175/var(--tw-text-opacity,1))}@media (min-width:768px){.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width:1024px){.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.lg\:text-5xl{font-size:3rem;line-height:1}}.\[\&\:not\(\:first-child\)\]\:mt-6:not(:first-child){margin-top:1.5rem}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
export { Button, buttonVariants, type ButtonProps } from './components/Button';
|
|
2
|
+
export { Card, CardHeader, CardFooter, CardTitle, CardDescription, CardContent } from './components/Card';
|
|
3
|
+
export { Avatar, type AvatarProps } from './components/Avatar';
|
|
4
|
+
export { Badge, badgeVariants, type BadgeProps } from './components/Badge';
|
|
5
|
+
export { Input, type InputProps } from './components/Input';
|
|
6
|
+
export { Checkbox, type CheckboxProps } from './components/Checkbox';
|
|
7
|
+
export { Switch, type SwitchProps } from './components/Switch';
|
|
8
|
+
export { SearchInput, type SearchInputProps } from './components/SearchInput';
|
|
9
|
+
export { Notification, type NotificationProps } from './components/Notification';
|
|
10
|
+
export { Image, type ImageProps } from './components/Image';
|
|
11
|
+
export { Popup, type PopupProps } from './components/Popup';
|
|
12
|
+
export { Error, type ErrorProps } from './components/Error';
|
|
13
|
+
export { Loading, type LoadingProps } from './components/Loading';
|
|
14
|
+
export { H1, H2, H3, H4, P, Subtitle, Lead, Small, Muted, type HeadingProps, type ParagraphProps, type SmallProps, type FontFamily, type FontWeight, type ColorOption } from './components/Typography';
|
|
15
|
+
export { Grid, GridItem, type GridProps, type GridItemProps } from './components/Grid';
|
|
16
|
+
export { FullPage, type FullPageProps } from './components/FullPage';
|
|
17
|
+
export { LoadingFullScreen, type LoadingFullScreenProps } from './components/LoadingFullScreen';
|
|
18
|
+
export { ErrorFullScreen, type ErrorFullScreenProps } from './components/ErrorFullScreen';
|
|
19
|
+
export { cn } from './lib/utils';
|
|
20
|
+
export { colors, cssVars, themeVars, getColor, getCssVar, colorEntries, type ColorName, type ColorValue, type ThemeName } from './colors';
|
|
21
|
+
export { ColorPalette, ColorSwatch, type ColorPaletteProps, type ColorSwatchProps } from './components/ColorPalette';
|
|
22
|
+
import './styles/globals.css';
|