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

@logcomex/aylawc

v1.0.8

Published

Aylawc is a design system library developed by logcomex

Downloads

94

Readme

Ayla Components

Ayla-components é uma biblioteca feita com intuito privado, não existe nenhuma iniciativa para que seu desenvolvimento seja voltado para uso geral por terceiros, mesmo tendo seu código aberto ao público.

Ayla Components é uma construção de um design system com web components que utiliza o Stencil para facilitar a construção, a biblioteca é divida da seguinte forma:

Começando

Nuxt 2:

para a instalação da biblioteca se faz necessário a utilização de uma biblioteca adicional que irá adicionar a biblioteca ayla-components como módulo no nuxt2.

  • : instale as dependências com os seguintes comandos:
  npm install ayla-components nuxt-stencil
  • : abra o arquivo nuxt.config.js
    • 2.1º: adicione o nuxt-stencil dentro de modules
        {
          modules: [
            nuxt-stencil
          ]
        }
    • 2.2º: no mesmo arquivo crie uma nova chave com as seguintes configurações:
      stencil: {
        lib: 'ayla-components',
        prefix: 'ayla-',
        renderOptions: {},
        hydratePath: 'ayla-components/hydrate',
        loaderPath: 'ayla-components/loader',
        ignoredElements: null
      }

esses são os unicos passos necessários.

Vue3:

Para a sua utilização no vue3 não existe a necessidade de instalação de bibliotecas adicionais.

  • : instale as dependências com os seguintes comandos:
  npm install ayla-components
  • : abra o arquivo main.js e adicione o seguinte código:
import { defineCustomElements, applyPolyfills } from 'ayla-components/loader'

applyPolyfills().then(() => {
  defineCustomElements(window)
})

esse código deve ser inserido antes do createApp e app.mount.

Desenvolvimento

O que eu preciso saber para criar um componente e submeter a um pull request ?

IMPORTANTE: se faz necessário instalar os hooks do husky executando o comando:

npm run husky:install

Classificação dos componetes: os componentes são classificados em duas categorias e todo o restante é construido como módulo.

Tipos de componentes:

  • componente de produto: Os componentes de produto são componentes que podem depender de um ou mais componentes, que possuem lógica complexa devido a atender as necessidades de produto como um header, um menu com várias opções, esses componentes devem ser criados dentro da pasta src/components.

  • componente puro: Os componentes puros são caracterizados por não depender de nenhum outro componente e o seu uso não depende da lógica do produto como por exemplo componentes como botões, chips.

Módulos:

  • Os módulos são responsáveis por lógicas globais, como por exemplo: Tradução, Emissão de eventos, consumo de recursos HTTP, WebSocket. Todos os módulos são distribuidos através de uma Facade a facade deve ser construida como uma interface simples para interfaces mais complexas, sem necessitar de instruções de montagem desnecessárias e pode estender poucas funcionalidades, em geral o padrão deve seguir como um caminho e não como o meio de implementação.

Testes

  • Os testes devem ser escritos sem excessão, os testes de componentes devem utilizar a biblioteca padrão de testes do stencil que possui integração com o jest, enquanto os módulos devem seguir a regra comum.

    Critérios de aceite:

    • Correto:
      • Testes de componentes que preveem comportamentos como um clique de botão, esses triggers devem ser disparados simulando o clique no elemento.
      • Todos os testes devem cobrir as branchs isso significa que caso exista um if em sua função esse if e o else devem ser testados.
    • Incorreto:
      • Em suma maioria NÃO deve ser testado componentes através do HTML, somente em casos que não exista outro meio possível.

    Através do package.json é possível destinguir qual teste deve ser executado em ambos os casos.

    OBS: Nos testes de módulo ocorrem warnings devido a versão do jest, porém a mesma não deve ser atualizada devido a compatibilidade com os testes de componentes.

Consumindo Módulos

Todos os módulos devem ser consumidos através da Facade visando o encapsulamento, mesmo sendo possível consumir por outra via, qualquer código que não consumir o Facade será considerado incorreto.

Workflow

1: Crie uma branch a partir de main

2: Insira as suas atualizações

3: execute um git pull origin main, para atualizar sua branch caso algum código novo tenha sido empurrado.

4: a partir desse ponto, você prossegue o ritmo normal mandando sua branch para o repositorio remoto e realizando o pull request.