npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@flexiui/svelte-tags-input

v1.1.0

Published

A lightweight and flexible tags input component for Svelte. Easily add, edit, and remove tags with support for custom styling, basic validation, and events. Perfect for managing tags, categories, or keywords in interactive applications.

Downloads

786

Readme

@flexiui/svelte-tags-input

Un componente de entrada de etiquetas para Svelte. Permite la adición, eliminación y visualización de etiquetas dinámicamente, con opciones de personalización como el número mínimo y máximo de etiquetas, duplicados permitidos y un diseño bidimensional.

Instalación

Para instalar el componente TagsInput en tu proyecto de Svelte, puedes usar npm o yarn.

Con npm:

npm install @flexiui/svelte-tags-input

Con yarn:

yarn add @flexiui/svelte-tags-input

Uso

Una vez instalado, puedes usar el componente TagsInput en tu aplicación de Svelte.

<script>
  import TagsInput from '@flexiui/svelte-tags-input';
  let field = {
    labels: {
      plural: 'Etiquetas',
      singular: 'Etiqueta'
    }
  };
</script>

<TagsInput 
    name="tags" 
    field={field}
    labels={field.labels}
    tags={[]} 
    min={1} 
    max={3} 
    allowDuplicates={false} 
    bidimensional={true}
    bidimensionalSeparator='->' 
    placeholder={'Presiona enter para agregar una nueva etiqueta'} 
    required={false} />

Propiedades del Componente

| Propiedad | Tipo | Descripción | | --- | --- | --- | | name | string | El nombre del campo para el componente de etiquetas. | | field | object | Objeto que contiene los datos del campo, como las etiquetas. | | labels | object | Objeto con las etiquetas plural y singular que se utilizan para describir las etiquetas en el componente. | | tags | array | Lista de etiquetas actualmente seleccionadas o ingresadas. | | min | number | Número mínimo de etiquetas permitidas. | | max | number | Número máximo de etiquetas permitidas. | | allowDuplicates | boolean | Si se permiten etiquetas duplicadas. | | bidimensional | boolean | Si las etiquetas deben mostrarse en un diseño bidimensional. | | bidimensionalSeparator | string | El separador entre los elementos bidimensionales, utilizado cuando bidimensional es true. | | placeholder | string | El texto de marcador de posición en el campo de entrada. | | required | boolean | Indica si el campo es obligatorio. |

Ejemplo de Uso

1. Ejemplo básico

<script>
  import TagsInput from '@flexiui/svelte-tags-input';
  let field = {
    labels: {
      plural: 'Etiquetas',
      singular: 'Etiqueta'
    }
  };
</script>

<TagsInput 
    name="tags" 
    field={field}
    labels={field.labels}
    tags={[]} 
    min={1} 
    max={5} 
    allowDuplicates={false} 
    bidimensional={false} 
    placeholder="Presiona enter para agregar una nueva etiqueta" 
    required={true} />

2. Ejemplo con diseño bidimensional

Cuando el diseño es bidimensional, las etiquetas se muestran en una estructura más compleja (como una matriz o grilla). Puedes personalizar el separador entre las etiquetas bidimensionales.

<script>
  import TagsInput from '@flexiui/svelte-tags-input';
  let field = {
    labels: {
      plural: 'Etiquetas',
      singular: 'Etiqueta'
    }
  };
</script>

<TagsInput 
    name="tags" 
    field={field}
    labels={field.labels}
    tags={[]} 
    min={1} 
    max={5} 
    allowDuplicates={false} 
    bidimensional={true} 
    bidimensionalSeparator="->" 
    placeholder="Presiona enter para agregar una nueva etiqueta" 
    required={true} />

Propiedades de field

El objeto field contiene las propiedades labels, que se estructuran de la siguiente forma:

let field = {
  labels: {
    singular: 'Etiqueta',
    plural: 'Etiquetas'
  }
};
  • singular: El nombre de la etiqueta en singular.
  • plural: El nombre de la etiqueta en plural.

Este objeto se utiliza para representar las etiquetas en el componente, permitiendo una mayor flexibilidad para adaptar el lenguaje a las necesidades de tu aplicación.

Propiedades adicionales

  • min: Define el número mínimo de etiquetas permitidas. Si no se alcanza este número, el componente puede mostrar un mensaje de error.
  • max: Define el número máximo de etiquetas permitidas. Si se excede este número, el componente puede deshabilitar la opción de agregar más etiquetas.
  • allowDuplicates: Si se establece en false, se evitará que el usuario ingrese etiquetas duplicadas.
  • bidimensional: Si se establece en true, las etiquetas se visualizarán en un formato bidimensional (como una matriz). El bidimensionalSeparator definirá cómo se separan las etiquetas en este formato.

Personalización

Puedes personalizar aún más el comportamiento del componente mediante el uso de estilos CSS. Los estilos predeterminados pueden ser sobreescritos fácilmente mediante clases CSS.

Ejemplo de estilos

/* Puedes personalizar los estilos en tu propio archivo CSS */
.tag-input {
  background-color: #f0f0f0;
  border-radius: 5px;
  padding: 10px;
}

.tag-input .tag {
  display: inline-block;
  margin: 5px;
  padding: 5px;
  background-color: #007bff;
  color: white;
  border-radius: 3px;
}

Contribuciones

Si deseas contribuir a este proyecto, puedes hacerlo mediante un Pull Request en el repositorio de GitHub. Por favor, sigue las mejores prácticas y asegúrate de que tu código pase las pruebas antes de hacer un PR.

Licencia

Este proyecto está bajo la licencia MIT.