1.0.90 • Published 5 months ago

celsia-internet v1.0.90

Weekly downloads
-
License
ISC
Repository
-
Last release
5 months ago

Table of Contents

Introduccion

Esta libreria de componentes es realizada con el fin de ser integrada en los siguientes desarrollos de Celsia Internet.

Instalacion

# Instalar
$ npm install celsia-internet

Inputs

CilInputText

Un campo de texto simple.

Props:

  • inputref (ref) - Referencia del input.
  • type (string) - Tipo de input (por defecto es text).
  • disabled (boolean) - Deshabilita el campo si se establece en true (por defecto es false).
  • className (string) - Clases CSS adicionales.
  • size (string) - Tamaño del campo (s, m, l, etc., por defecto es "m").
  • name (string) - Nombre del campo.
  • value (string) - Valor del campo.
  • onChange (function) - Función de callback cuando cambia el valor.
  • placeholder (string) - Texto del placeholder.
  • autoComplete (string) - Configuración de autocompletado.

Uso:

//CilInputText
import { CilInputText } from "celsia-internet";

<CilInputText
  name="username"
  placeholder="Ingrese su nombre"
  value={value}
  onChange={handleChange}
/>;

CilInputIcon

Un campo de texto simple acompañado de un icono.

Props:

  • icon (string) - String del icono
  • inputref (ref) - Referencia del input.
  • type (string) - Tipo de input (por defecto es text).
  • disabled (boolean) - Deshabilita el campo si se establece en true (por defecto es false).
  • className (string) - Clases CSS adicionales.
  • size (string) - Tamaño del campo (s, m, l, etc., por defecto es "m").
  • name (string) - Nombre del campo.
  • value (string) - Valor del campo.
  • onChange (function) - Función de callback cuando cambia el valor.
  • placeholder (string) - Texto del placeholder.
  • autoComplete (string) - Configuración de autocompletado.

Uso:

//CilInputIcon
import { CilInputIcon } from "celsia-internet";

<CilInputIcon
  icon="academic-cap"
  name="username"
  placeholder="Ingrese su nombre"
  value={value}
  onChange={handleChange}
/>;

CilInputLabel

Un campo de texto simple acompañado de un icono.

Props:

  • label (string) - Label que indica el valor que se espera del input
  • inputref (ref) - Referencia del input.
  • type (string) - Tipo de input (por defecto es text).
  • disabled (boolean) - Deshabilita el campo si se establece en true (por defecto es false).
  • className (string) - Clases CSS adicionales.
  • size (string) - Tamaño del campo (s, m, l, etc., por defecto es "m").
  • name (string) - Nombre del campo.
  • value (string) - Valor del campo.
  • onChange (function) - Función de callback cuando cambia el valor.
  • placeholder (string) - Texto del placeholder.
  • autoComplete (string) - Configuración de autocompletado.

Uso:

//CilInputLabel
import { CilInputLabel } from "celsia-internet";

<CilInputLabel
  label="nombre"
  name="username"
  placeholder="Ingrese su nombre"
  value={value}
  onChange={handleChange}
/>;

CilInputNumber

Un campo de número con soporte para valores mínimos y máximos.

Props:

  • inputref (ref): Referencia del input.
  • type (string): Tipo de input (por defecto es "number").
  • disabled (boolean): Deshabilita el campo si se establece en true (por defecto es false).
  • classGroup (string): Clases CSS para el contenedor.
  • classInput (string): Clases CSS adicionales para el input.
  • name (string): Nombre del campo.
  • value (number): Valor del campo.
  • min (number): Valor mínimo permitido (por defecto es 0).
  • max (number): Valor máximo permitido.
  • decimal (number): Número de decimales.
  • unit (string): Unidad a mostrar junto al valor.
  • onChange (function): Función de callback cuando cambia el valor.
  • placeholder (string): Texto del placeholder.
//CilInputNumber
import { CilInputNumber } from "celsia-internet";

<CilInputNumber
  name="quantity"
  placeholder="0"
  value={value}
  onChange={handleChange}
/>;

CilInputTextArea

Un área de texto para múltiples líneas.

Props:

  • inputref (ref): Referencia del textarea.
  • type (string): Tipo de textarea (por defecto es "text").
  • disabled (boolean): Deshabilita el campo si se establece en true (por defecto es false).
  • className (string): Clases CSS adicionales.
  • rows (number): Número de filas visibles (por defecto es 3).
  • height (number): Altura en píxeles si rows es 1 (por defecto es 30).
  • name (string): Nombre del campo.
  • value (string): Valor del campo.
  • onChange (function): Función de callback cuando cambia el valor.
  • placeholder (string): Texto del placeholder.

Uso:

//CilInputTextArea
import { CilInputTextArea } from "celsia-internet";

<CilInputTextArea
  name="description"
  placeholder="Ingrese una descripción"
  value={value}
  onChange={handleChange}
/>;

CilInputDatePicker

Un selector de fecha y hora.

Props:

  • disabled (boolean): Deshabilita el campo si se establece en true (por defecto es false).
  • timeCaption (string): Texto de la etiqueta de la hora (por defecto es "Hora").
  • timeFormat (string): Formato de la hora (por defecto es "hh:mm aa").
  • timeIntervals (number): Intervalos de tiempo (por defecto es 1).
  • dateFormat (string): Formato de la fecha (por defecto es "MMM dd yy hh:mm aa").
  • name (string): Nombre del campo.
  • value (string): Valor de la fecha en formato yyyy-MM-dd HH:mm:ss.
  • onChange (function): Función de callback cuando cambia la fecha.

Uso:

//CilInputDatePicker
import { CilInputDatePicker } from "celsia-internet";

<CilInputDatePicker
  name="eventDate"
  value={dateValue}
  onChange={handleDateChange}
/>;

CilInputTime

Muestra la diferencia entre dos fechas en días, horas y minutos.

Props:

  • className (string): Clases CSS adicionales.
  • dateIn (string): Fecha de inicio en formato ISO.
  • dateEnd (string): Fecha de fin en formato ISO (por defecto es la fecha actual).

Uso:

//CilInputTime
import { CilInputTime } from "celsia-internet";

<CilInputTime dateIn={startDate} dateEnd={endDate} />;

CilInputCheck

Un campo de selección tipo checkbox.

Props:

  • inputref (ref): Referencia del checkbox.
  • disabled (boolean): Deshabilita el campo si se establece en true (por defecto es false).
  • classGroup (string): Clases CSS para el contenedor.
  • classInput (string): Clases CSS adicionales para el input.
  • name (string): Nombre del campo.
  • checked (boolean): Estado del checkbox.
  • label (string): Etiqueta del checkbox.
  • onChange (function): Función de callback cuando cambia el estado.

Uso:

//CilInputCheck
import { CilInputCheck } from "celsia-internet";

<CilInputCheck
  name="acceptTerms"
  checked={isChecked}
  onChange={handleCheckChange}
  label="Aceptar términos y condiciones"
/>;

CilInputRadio

Un campo de selección tipo radio.

Props:

  • inputref (ref): Referencia del radio.
  • disabled (boolean): Deshabilita el campo si se establece en true (por defecto es false).
  • classGroup (string): Clases CSS para el contenedor.
  • classInput (string): Clases CSS adicionales para el input.
  • name (string): Nombre del campo.
  • checked (boolean): Estado del radio.
  • label (string): Etiqueta del radio.
  • onChange (function): Función de callback cuando cambia el estado.

Uso:

//CilInputRadio
import { CilInputRadio } from "celsia-internet";

<CilInputRadio
  name="gender"
  checked={isChecked}
  onChange={handleRadioChange}
  label="Masculino"
/>;

CilInputSwitch

Un interruptor para opciones binarias.

Props:

  • disabled (boolean): Deshabilita el campo si se establece en true (por defecto es false).
  • classGroup (string): Clases CSS para el contenedor.
  • classInput (string): Clases CSS adicionales para el input.
  • name (string): Nombre del campo.
  • checked (boolean): Estado del interruptor.
  • labelT (string): Etiqueta cuando el interruptor está activado (por defecto es "Label Ok").
  • labelF (string): Etiqueta cuando el interruptor está desactivado (por defecto es "Label Not").
  • onChange (function): Función de callback cuando cambia el estado.

Uso:

//CilInputSwitch
import { CilInputSwitch } from "celsia-internet";

<CilInputSwitch
  labelF="no"
  labelT="yes"
  checked={switchCheck}
  onChange={handleSwitchChange}
/>;

CilInputSelect

Un campo de selección con opciones.

Props:

  • inputref (ref): Referencia del select.
  • disabled (boolean): Deshabilita el campo si se establece en true (por defecto es false).
  • className (string): Clases CSS adicionales.
  • keyFiled (string): Campo que se usará como valor (por defecto es "id").
  • nameFiled (string): Campo que se usará como etiqueta (por defecto es "name").
  • name (string): Nombre del campo.
  • value (object): Valor seleccionado.
  • values (array): Opciones disponibles para la selección en formato { id: string, name: string }.
  • onChange (function): Función de callback cuando cambia el valor.

Uso:

//CilInputSelect
import { CilInputSelect } from "celsia-internet";

const [option, setoption] = useState(null);

const options = [
  { id: 1, value: "option 1", name: "option 1" },
  .
  .
  .
  { id: n, value: "option n", name: "option n" },
];

const handleSelectChange= (value) => {
    setoption(value);
    console.log('opción seleccionada:', value);
  }

  <CilInputSelect
    name="Opciones"
    values={options}
    keyField="id"
    nameField="name"
    value={option}
    onChange={handleSelectChange}
    placeholder="Elige una opción"
    className="my-custom-class"
  />

CilCalendar

componente calendario para selección de fechas

Props:

  • onChange (function): Función de callback para la seleccion de la fecha.

Uso:

//CilCalendar
import { CilCalendar } from "celsia-internet";
const [dateSelect, setDateSelect] = useState();

const handleDateChange = (value) => {
  setDateSelect(value);
};

<CilCalendar onChange={handleTimeChange} />;

CilTimeSelector

componente tiempo para selección de horas, minutos y periodo (AM o PM)

Props:

  • onChange (function): Función de callback para la seleccion de la hora.

Uso:

//CilTimeSelector
import { CilTimeSelector } from "celsia-internet";
const [timeSelect, setTimeSelect] = useState();

const handleTimeChange = (value) => {
  setTimeSelect(value);
};

<CilTimeSelector onChange={handleTimeChange} />;

Botones

CilButton

Props:

  • label (string): Texto que se muestra en el botón.
  • type (string): Tipo de botón (button, submit, reset). Por defecto es "button".
  • onClick (function): Función de callback que se ejecuta cuando se hace clic en el botón.
  • className (string): Clases CSS adicionales. Por defecto es "CIL-button-primary".
  • variant (string): Variante del botón para aplicar diferentes estilos. Por defecto es "".
  • size (string): Tamaño del botón (s, m, l, etc.). Por defecto es "s".
  • disabled (boolean): Deshabilita el botón si se establece en true. Por defecto es false.

Uso:

Props:

// CilButton
import { CilButton } from "celsia-internet";

<CilButton
  label="Enviar"
  onClick={handleClick}
  className="custom-class"
  variant="secondary"
  size="m"
/>;

CilIconButton

Props:

  • icon (ReactElement): Icono que se mostrará en el botón. (Asegúrate de pasar el componente CilIcon o similar.)
  • onClick (function): Función de callback que se ejecuta cuando se hace clic en el botón.
  • className (string): Clases CSS adicionales. Por defecto es "".
  • ariaHidden (boolean): Si se debe ocultar el ícono de la accesibilidad (aria-hidden). Por defecto es true.
  • disabled (boolean): Deshabilita el botón si se establece en true. Por defecto es false.
  • variant (string): Variante del botón para aplicar diferentes estilos. Por defecto es "".

Uso:

// CilIconButton
import { CilIconButton } from "celsia-internet";

<CilIconButton
  icon={<Icon />}
  onClick={handleClick}
  className="custom-class"
  variant="primary"
/>;

CilIconLabelButton

Props:

  • icon (ReactElement): Icono que se mostrará en el botón. (Asegúrate de pasar el componente CilIcon o similar.)
  • onClick (function): Función de callback que se ejecuta cuando se hace clic en el botón.
  • className (string): Clases CSS adicionales. Por defecto es "".
  • ariaHidden (boolean): Si se debe ocultar el ícono de la accesibilidad (aria-hidden). Por defecto es true.
  • disabled (boolean): Deshabilita el botón si se establece en true. Por defecto es false.
  • size (string): Tamaño del botón (s, m, l, etc.). Por defecto es "s".
  • variant (string): Variante del botón para aplicar diferentes estilos. Por defecto es "".
  • label (string): Texto que se muestra al lado del ícono. Por defecto es "Label".

Uso:

// // CilIconLabelButton
import { CilIconLabelButton } from "celsia-internet";

<CilIconLabelButton
  icon={<Icon />}
  onClick={handleClick}
  className="custom-class"
  variant="danger"
  size="m"
  label="Eliminar"
/>;

Cards

CilCard

Props:

  • children (ReactNode): Contenido que se mostrará dentro de la tarjeta.
  • className (string): Clases CSS adicionales. Por defecto es "".
  • size (string): Tamaño de la tarjeta (s, m, l, etc.). Por defecto es "m".
  • shadow (string): Efecto de sombra aplicado a la tarjeta ("center", "top", "bottom", etc.). Por defecto es "center".

Uso:

import { CilCard } from "celsia-internet";

<CilCard className="custom-card-class" size="l" shadow="top">
  <h2>Título de la Tarjeta</h2>
  <p>Contenido de la tarjeta, como texto, imágenes, etc.</p>
</CilCard>;

CilImageCard

Props:

  • img (string): URL de la imagen que se mostrará en la tarjeta.
  • className (string): Clases CSS adicionales. Por defecto es "".
  • size (string): Tamaño de la tarjeta (s, m, l, etc.). Por defecto es "m".
  • shadow (string): Efecto de sombra aplicado a la tarjeta ("center", "top", "bottom", etc.). Por defecto es "center".
  • alt (string): Texto alternativo para la imagen. Por defecto es "".
  • children (ReactNode): Contenido adicional que se mostrará dentro de la tarjeta (si es necesario). Uso:
import { CilImageCard } from "celsia-internet";

<CilImageCard
  img="https://example.com/image.jpg"
  alt="Descripción de la imagen"
  className="custom-image-card-class"
  size="m"
  shadow="center"
>
  {/* Contenido adicional opcional */}
</CilImageCard>;

How to make a celcia-internet library

Configuracion inicial

  1. Crear nuevo proyecto:
mkdir library
cd library
npm init -y
  1. Instalacion de dependencias:
npm install react react-dom
npm install --save-dev @babel/core @babel/preset-env @babel/preset-react @babel/cli
npm install --save-dev copyfiles
  1. Configurar Babel:

Se crea el archivo de configuracion .babelrc en la raiz del proyecto con el siguiente contenido:

{
  "presets": ["@babel/preset-env", "@babel/preset-react"]
}

Desarrollo de libreria

  1. Crear la estructura de tu librería:
mkdir src
mkdir src/components
mkdir src/styles
touch src/index.jsx
  1. Crear tu primer componente en el directio /src/components
// src/button.jsx
import React from "react";
import "../styles/index.css";

export const Button = ({ label }) => {
  return <button>{label}</button>;
};
  1. Crear tu archivo de estilos en el directorio /scr/styles

  2. Registas y exportas el componente en el archivo /src/index.jsx

export { Button } from "./components/button";

Constuccion de la libreria

  1. Configurar el script de contruccion con Babel y lo agregas al archivo packaje.json en el apartado de scripts
"scripts": {
  "build": "babel src --out-dir dist --extensions \".js,.jsx\""
}
  1. Compilar la libreria:
npm run build
  1. Iniciar sesión en tu cuenta de pnm
npm login
  1. Publicar la libreria, debes tener en cuenta revisar los campor name, version y main
git backup
npm run build
npm version -f 1.0.90
npm publish
1.0.90

5 months ago

1.0.84

6 months ago

1.0.83

6 months ago

1.0.82

6 months ago

1.0.88

6 months ago

1.0.87

6 months ago

1.0.86

6 months ago

1.0.85

6 months ago

1.0.77

7 months ago

1.0.76

7 months ago

1.0.79

7 months ago

1.0.78

7 months ago

1.0.80

7 months ago

1.0.81

7 months ago

1.0.73

7 months ago

1.0.72

7 months ago

1.0.71

7 months ago

1.0.70

7 months ago

1.0.75

7 months ago

1.0.74

7 months ago

1.0.69

7 months ago

1.0.68

7 months ago

1.0.67

8 months ago

1.0.62

8 months ago

1.0.61

8 months ago

1.0.60

8 months ago

1.0.66

8 months ago

1.0.65

8 months ago

1.0.64

8 months ago

1.0.63

8 months ago

1.0.55

8 months ago

1.0.59

8 months ago

1.0.58

8 months ago

1.0.57

8 months ago

1.0.56

8 months ago

1.0.54

8 months ago

1.0.53

9 months ago

1.0.52

9 months ago

1.0.51

9 months ago

1.0.39

10 months ago

1.0.38

10 months ago

1.0.40

10 months ago

1.0.44

10 months ago

1.0.43

10 months ago

1.0.42

10 months ago

1.0.41

10 months ago

1.0.48

9 months ago

1.0.47

9 months ago

1.0.46

10 months ago

1.0.45

10 months ago

1.0.49

9 months ago

1.0.50

9 months ago

1.0.18

10 months ago

1.0.17

10 months ago

1.0.16

11 months ago

1.0.22

10 months ago

1.0.21

10 months ago

1.0.20

10 months ago

1.0.26

10 months ago

1.0.25

10 months ago

1.0.24

10 months ago

1.0.23

10 months ago

1.0.29

10 months ago

1.0.28

10 months ago

1.0.27

10 months ago

1.0.33

10 months ago

1.0.11

11 months ago

1.0.32

10 months ago

1.0.31

10 months ago

1.0.30

10 months ago

1.0.37

10 months ago

1.0.15

11 months ago

1.0.36

10 months ago

1.0.14

11 months ago

1.0.35

10 months ago

1.0.13

11 months ago

1.0.34

10 months ago

1.0.12

11 months ago

1.0.10

11 months ago

1.0.9

11 months ago

1.0.8

11 months ago

1.0.7

11 months ago

1.0.6

11 months ago

1.0.5

12 months ago

1.0.4

12 months ago

1.0.3

12 months ago

1.0.2

12 months ago

1.0.1

12 months ago

1.0.0

12 months ago