Skip to content

Commit

Permalink
changes other guides for docs folder
Browse files Browse the repository at this point in the history
  • Loading branch information
PedroAugustoRamalhoDuarte committed May 15, 2024
1 parent 2e2f060 commit 4eea227
Show file tree
Hide file tree
Showing 3 changed files with 79 additions and 66 deletions.
69 changes: 3 additions & 66 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -161,76 +161,13 @@ Isaac Newton - "Se eu vi mais longe que outros é porque estive aos ombros de gi
Todos os componentes foram projetados para ser altamente personalizável usando classes CSS da biblioteca Tailwind CSS.
Você pode ajustar as cores, fontes e espaçamento de acordo com suas necessidades.

## Mudanças da V 0.4 para a V 1.0

## Breaking Changes
- Mudança de posicionamento do Tooltip e Popover: Atualmente o Tooltip não ocupa a melhor posição possível pelo fato de estarmos utilizando uma biblioteca nova, o popover
também possui o uso da mesma biblioteca porém ainda é possível se passar o position para o popover.
- O comportamento do componente Tab foi alterado onde agora para se utilizar o usuário deve passar as tabs como children e não mais utilizando o array de tabs.

### Correções
- Correção do tamanho do item da Sidebar
- correção na propriedade disabled do componente SelectBox
- Correção das cores de selecionado dos componentes do SelextBox
- Correção das cores de cinza dos componentes de SelectBox, SearchInput e TextField
- Correção do Z-index dos componentes tooltip e popover
- Correção em todas as cores da biblioteca

### Melhorias

- Adição de sombra para o componente do SelectBox
- Melhora da DX do vite com auto complete
- Upgrade nas dependências da biblioteca
- Melhora na responsividade do componente Text
- Padronização das props para os componentes de Forms.
- Melhora no comportamento do componente Sidebar, ao clicar no DropdownItem ela abre.
- Melhorias nas documentações da biblioteca
- Componentes Tooltip e Popover com um comportamento melhor, não necessário mais setar o position.
- Remoção dos warnings da biblioteca.

### Novas funcionalidades
- Criação do componente de Paginação.
- Criação do componente de Modal.
- Criação do novo componente de Tabs.
- Criação de um novo componente SelectBox
- Adição do Tree Shaking para a biblioteca com o intúito de melhorar o bundle para o usuário.
- Adição da props Loading para o botão.

#### Conclusão

Os componentes da SwitchUI oferecem uma maneira simples e eficaz de componentes interativos e responsivos em seus
projetos. Eles combinam o poder do Tailwind CSS e dos códigos mais recentes para criar uma experiência de usuário
agradável e elegante. Experimente e adapte-o para se adequar ao seu design e estilo específicos.

#### Tree-Shaking

O tree-shaking é uma das partes mais complicadas ao se trabalhar com biblioteca de componentes.

Basicamente o tree-shaking é uma técnica de otimização de código que elimina o código morto (código que não é utilizado)
do seu bundle final.

Para garantir o tree-shaking é necessário que seu código esteja no esm, que sua funções não tenha side effects ou utilizar a anotação do bundle `/* @__PURE__ */`, para
isso utilizamos duas ferramentas para auxiliar:

- A primeira é o eslint-plugin-tree-shaking
- A segunda ferramenta é o Plugin rollup-plugin-pure que anota algumas funções como PURAS;
- A terceira é o agadoo que verifica se seu código está otimizado para o tree-shaking (Essa ferramenta não confio muito
sinceramente, creio que ela tenha falso positivo)
- Para rodar basta: `yarn build && yarn agadoo`
- O output será o código que não está otimizado para o tree-shakable

Como verificar se meu componente está Tree-Shakable?

- No index.js os componentes que atualmente não estão tree-shakable segundo o agadoo estão comentados
- Comente todos os componentes com TODO
- Rode o agadoo vai retornar sucesso
- Descomente um dos componentes e rode o agadoo novamente
- Se der erro, o componente não está otimizado para o tree-shaking

Problemas atuais

- Atualmente os componentes que utilizam a headlessui ou então o react-mask-input não são tree-shakable

Fontes:
#### Outras Documentação

- https://github.com/vitejs/vite/issues/5174
- Tree-shaking: docs/tree-shaking.md
- Guia de upgrade da V0.4 para 1.0: docs/upgrade-guide.md
32 changes: 32 additions & 0 deletions docs/tree-shaking.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
#### Tree-Shaking

O tree-shaking é uma das partes mais complicadas ao se trabalhar com biblioteca de componentes.

Basicamente o tree-shaking é uma técnica de otimização de código que elimina o código morto (código que não é utilizado)
do seu bundle final.

Para garantir o tree-shaking é necessário que seu código esteja no esm, que sua funções não tenha side effects ou utilizar a anotação do bundle `/* @__PURE__ */`, para
isso utilizamos duas ferramentas para auxiliar:

- A primeira é o eslint-plugin-tree-shaking
- A segunda ferramenta é o Plugin rollup-plugin-pure que anota algumas funções como PURAS;
- A terceira é o agadoo que verifica se seu código está otimizado para o tree-shaking (Essa ferramenta não confio muito
sinceramente, creio que ela tenha falso positivo)
- Para rodar basta: `yarn build && yarn agadoo`
- O output será o código que não está otimizado para o tree-shakable

Como verificar se meu componente está Tree-Shakable?

- No index.js os componentes que atualmente não estão tree-shakable segundo o agadoo estão comentados
- Comente todos os componentes com TODO
- Rode o agadoo vai retornar sucesso
- Descomente um dos componentes e rode o agadoo novamente
- Se der erro, o componente não está otimizado para o tree-shaking

Problemas atuais

- Atualmente os componentes que utilizam a headlessui ou então o react-mask-input não são tree-shakable

Fontes:

- https://github.com/vitejs/vite/issues/5174
44 changes: 44 additions & 0 deletions docs/upgrade-guide.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
## Mudanças da V0.4 para a V1.0

## Breaking Changes

- Mudança de posicionamento do `Tooltip` e `Popover`: Atualmente o Tooltip não ocupa a melhor posição possível pelo fato
de estarmos utilizando uma biblioteca nova, o popover também possui o uso da mesma biblioteca porém ainda
é possível se passar o position para o popover.
- O comportamento do componente `Tab` foi alterado onde agora para se utilizar o usuário deve passar as tabs como
children
e não mais utilizando o array de tabs.
- Os componentes `SearchInput` & `SelectBox` foram depreciados (Serão removidos em versões futuras) para adição dos
novos componentes Select & SelectAsync.

## Changelog

### Correções

- Correção do tamanho do item da Sidebar
- correção na propriedade disabled do componente SelectBox
- Correção das cores de selecionado dos componentes do SelextBox
- Correção das cores de cinza dos componentes de SelectBox, SearchInput e TextField
- Correção do Z-index dos componentes tooltip e popover
- Correção em todas as cores da biblioteca

### Melhorias

- Adição de sombra para o componente do SelectBox
- Melhora da DX do vite com auto complete
- Upgrade nas dependências da biblioteca
- Melhora na responsividade do componente Text
- Padronização das props para os componentes de Forms.
- Melhora no comportamento do componente Sidebar, ao clicar no DropdownItem ela abre.
- Melhorias nas documentações da biblioteca
- Componentes Tooltip e Popover com um comportamento melhor, não necessário mais setar o position.
- Remoção dos warnings da biblioteca.

### Novas funcionalidades

- Criação do componente de Paginação.
- Criação do componente de Modal.
- Criação do novo componente de Tabs.
- Criação de um novo componente SelectBox
- Adição do Tree Shaking para a biblioteca com o intúito de melhorar o bundle para o usuário.
- Adição da props Loading para o botão.

0 comments on commit 4eea227

Please sign in to comment.