1.3.37 • Published 2 days ago

@zydon/common v1.3.37

Weekly downloads
-
License
MIT
Repository
-
Last release
2 days ago

Design system da Zydon

Instalação no seu projeto

  • instalação pacote: yarn add @zydon/common
  • instalação dependências necessárias: yarn add @emotion/react @emotion/styled @mui/lab @mui/material @mui/x-data-grid-premium @mui/x-date-pickers-pro @mui/x-license-pro react-hook-form

Configuração @zydon/common

Basta fazer a seguinte configuração no arquivo main.ts:

import React from 'react';
import { LicenseInfo } from '@mui/x-license-pro';
import { Common } from '@zydon/common';
import ReactDOM from 'react-dom/client';

import '@zydon/common/styles.css';

import App from './App';

LicenseInfo.setLicenseKey(import.meta.env.VITE_MUI_PREMIUM_KEY);

ReactDOM.createRoot(document.getElementById('root')!).render(
  <React.StrictMode>
    <Common themeColor="cor_hexadecimal_aqui">
      <App />
    </Common>
  </React.StrictMode>,
);

Recursos disponíveis

Esse pacote tem os seguintes recursos disponiveis (components, hooks, utils e types):

Componentes

  • animate: recursos construídos utilizando framer-motion
  • Autocomplete: componente dropdown de seleção única/múltipla
  • ColorPickerInput: componente de seleção de cor
  • Common: componente wrapper/provider que faz esse pacote funcionar
  • CommonSSR: componente wrapper/provider que faz esse pacote funcionar em aplicações NextJS (SSR)
  • ConfirmDelete: mensagem de confirmação de exclusão
  • CustomAvatar e CustomAvatarGroup: avatares customizados
  • DataGrid: componente de tabela construido em cima do MUI-Datagrid
  • Delayed: componente que renderiza um children com um delay
  • Drawer: componente Drawer construido em cima do MUI-Drawer
  • FixedProgressBar: barra de progresso de loading que é apresentado fixo no topo da tela
  • Iconify: componente de ícones SVG construido em cima do @iconify/react
  • Incrementer: input numérico com botões laterais para incrementar/decrementar o valor
  • ImageCrop: componente para cortar imagens
  • Label: componente que renderiza uma tag bonitinha
  • MaskedInput: input com máscara. Util para campos como CPF, CNPJ, Telefone
  • MenuPopover: menu flutuante com setinha apontado para um ponto escolhido
  • Modal: componente de modal
  • NumberInput: input que aceita somente números
  • Portal: componente que renderiza o children em outro local desejado React Portals
  • Scrollbar: Scrollbar bonitinha construido em cima do simplebar-react
  • SearchInput: componente para busca/filtros. Funciona com onChange e como click na tecla enter
  • snackbar: componente para mostrar mensagens [sucesso | alerta | informação | erro] para o usuário
const { enqueueSnackbar } = useSnackbar();
enqueueSnackbar('Mensagem', { variant: 'error' });
  • Steps: componente que indica etapas e o progresso. Construido em cima do MUI-Stepper
  • TabPanel: componente para renderizar o conteúdos de uma Tab. Todas as tabs são rendreziadas, mas somente o conteúdo da Tab ativa será exibido
  • ThemeProvider: wrapper/provider para configuração do tema. (Provavelmente vc nunca vai precisar usá-lo, já que ele já está includo no component <Common />)
  • upload (Upload, UploadAvatar, UplaodBox e UploadWithCrop): componentes para uploads de arquivos

Componentes de formulário (react-hook-form)

  • Form: componente de formulário construido em cima do react-hook-form. (Todos os componentes abaixo funcionam somente dentro desse componente:) <Form />
  • Autocomplete: componente dropdown de seleção única/múltipla
  • Checkbox / MultiCheckbox: caixa seleção
  • Codes: campos para inserção de código. Ex: código recebido por e-email
  • ColorPickerField: componente de seleção de cor
  • DatePicker: componente de seleção de data. Construido em cima do MUI-DatePicker
  • DateRangePicker: componente de seleção de intervalo de data. Construido em cima do MUI-DateRangePicker
  • DateTimePicker: componente de seleção de data e hora. Construido em cima do MUI-DateTimePicker
  • Field: componente de inserção de texto. Construido em cima do MUI-TextField
  • MaskedInputField: componente de input com máscara. Util para campos como CPF, CNPJ, Telefone
  • PasswordField: componente para inserção de senha com um olhinho para visualização da senha no canto direito.
  • RadioGroupField: componente de seleção única. Construido em cima do MUI-RadioGroup
  • Switch: componente de ativação/desativação. Construido em cima do MUI-Switch
  • TimePicker: componente de seleção hora. Construido em cima do MUI-TimePicker
  • UploadWithCropField: componente para upload/crop de imagem
  • UploadAvatarWithCropField: componente para upload/crop de avatar
  • Webhook: componente criação e edição de um webhook, necessário estar envolvido de um form
  • MultipleChipField: componente de texto que permite adicionar multiplas opçoes em formato de chip

Utils

  • file: utils para lidar com arquivos (downloadFile)
  • formatNumber: utils para formatar números (fNumber, fCurrency, fPercent, fShortenNumber, fData result, fWithDecimalPlacesOrNot)
  • formatTime: utils para lidar com datas (fDate, fDateTime format, fTimestamp, fToNow) (Construido utilizando date-fns)
  • cssStyles: utils para lidar com estilos CSS (bgBlur, bgGradient, textGradient, filterStyles, hideScrollbarY, hideScrollbarX)
  • routes: utils para lidar com rotas (getRoot)
  • sort: utils para lidar com ordenação de arrys de objetos (sort, updatePosition)
  • validators: utils para validação de dados (cpfIsValid, cnpjIsValid)
  • number: utils para lidar com números (isMultiple, roundIfNecessary)
  • uuidv4: utils para gerar um UUID v4
  • loadable: util para utilizar com code split. Ele irá carregar o compomente e exibirá um loading fixo no topo da tela
  • mask: utils para aplicação de máscaras em strings (applyMask, cpfMask, cnpjMask, cepMask, phoneMask)

Hooks

  • useActiveElement: hook que indicar qual compnente (input, button, etc.) está com foco ativo
  • useCopyToClipboard: hook para copiar algum texto para a área de transferência. Equivalente a ctrl+c
  • useDatagrid: hook com recursos utéis para serem usados por um <Datagrid />
  • useDeepCompareEffect: hook semelhante ao useEffect do React, mas que lida melhor com objetos complexos
  • useEventListener: hook para lidar com eventos JavaScript
  • useIsMounting: hook que retorna um booleano indicando se é a primeira renderezição do componente
  • useResponsive: hook que retorna qual a media-query está ativa (xs, sm, md, lg, xl)
  • useTabs: hook com recursos utéis para lidar com tabs (currentTab, onChangeTab, setCurrentTab)
  • useToggle: hook que alterna o estado que uma variável boolean. Ex:
const [detailsOpen, toggleDetailsOpen] = useToggle(true);
  • usePagination: hook para paginar dados de um array (currentPage, totalPages, currentItems, goToPage, nextPage, prevPage,): Ex:
const { currentItems, totalPages, goToPage } = usePagination({
    items,
    itemsPerPage: 5,
  });

Types

  • PagedRequest interface para tipar requisições paginadas. Ex: PagedRequest<{userId: string}> (agora o userId também vai estar disponivel no objeto)
export type PagedRequest<T = unknown> = T & {
  search?: string;
  page?: number;
  perPage?: number;
  sort?: string;
  dir?: 'asc' | 'desc';
};
  • PagedResponse interface para tipar respostas paginadas. Ex: PagedResponse<User[]> (agora sabemos que no 'items' temos um array de usuários)
export interface PagedResponse<T> {
  currentPage: number;
  perPage: number;
  total: number;
  items: T;
}
  • ListResponse interface para tipar listas com uma prop contendo o total de itens da lista. Ex: ListResponse<User[]> (agora sabemos que no 'items' temos um array de usuários)
export interface ListResponse<T> {
  total: number;
  items: T;
}

Como fazer implementações/correções nesse pacote?

Esse pacote é basicamente um projeto react-vite publicado no npm.\ Para fazer implementações/correções basta clonar o repositório do projeto e subir localmente em sua máquina. Crie uma branch, realize as implementações/correções, depois suba para o repositório e faça merge pra main. As alterações serão publicadas automaticamente no npm em alguns minutos.

Você pode testar suas implementações/correções no componente App.tsx

1.3.31

2 days ago

1.3.32

2 days ago

1.3.35

2 days ago

1.3.36

2 days ago

1.3.33

2 days ago

1.3.34

2 days ago

1.3.37

2 days ago

1.3.30

4 days ago

1.3.29

4 days ago

1.3.28

7 days ago

1.3.27

8 days ago

1.3.26

11 days ago

1.3.24

14 days ago

1.3.25

14 days ago

1.3.23

14 days ago

1.3.22

15 days ago

1.3.14

16 days ago

1.3.17

16 days ago

1.3.18

16 days ago

1.3.15

16 days ago

1.3.16

16 days ago

1.3.19

16 days ago

1.3.20

16 days ago

1.3.21

16 days ago

1.3.13

17 days ago

1.3.11

17 days ago

1.3.12

17 days ago

1.3.10

18 days ago

1.3.9

25 days ago

1.3.8

25 days ago

1.3.7

29 days ago

1.3.6

1 month ago

1.3.5

1 month ago

1.3.4

1 month ago

1.3.3

1 month ago

1.2.96

1 month ago

1.2.97

1 month ago

1.2.95

1 month ago

1.2.98

1 month ago

1.2.99

1 month ago

1.3.2

1 month ago

1.3.1

1 month ago

1.3.0

1 month ago

1.2.85

1 month ago

1.2.86

1 month ago

1.2.84

1 month ago

1.2.89

1 month ago

1.2.87

1 month ago

1.2.88

1 month ago

1.2.92

1 month ago

1.2.93

1 month ago

1.2.90

1 month ago

1.2.91

1 month ago

1.2.94

1 month ago

1.2.81

1 month ago

1.2.82

1 month ago

1.2.80

1 month ago

1.2.83

1 month ago

1.2.70

1 month ago

1.2.71

1 month ago

1.2.74

1 month ago

1.2.75

1 month ago

1.2.72

1 month ago

1.2.73

1 month ago

1.2.78

1 month ago

1.2.79

1 month ago

1.2.76

1 month ago

1.2.77

1 month ago

1.2.67

1 month ago

1.2.68

1 month ago

1.2.69

1 month ago

1.2.65

1 month ago

1.2.66

1 month ago

1.2.60

1 month ago

1.2.63

1 month ago

1.2.64

1 month ago

1.2.61

1 month ago

1.2.62

1 month ago

1.2.57

1 month ago

1.2.58

1 month ago

1.2.59

1 month ago

1.2.56

1 month ago

1.2.55

2 months ago

1.2.53

2 months ago

1.2.54

2 months ago

1.2.52

2 months ago

1.2.51

2 months ago

1.2.42

2 months ago

1.2.45

2 months ago

1.2.46

2 months ago

1.2.43

2 months ago

1.2.44

2 months ago

1.2.49

2 months ago

1.2.47

2 months ago

1.2.48

2 months ago

1.2.50

2 months ago

1.2.41

2 months ago

1.2.40

2 months ago

1.2.38

2 months ago

1.2.39

2 months ago

1.2.37

2 months ago

1.2.34

2 months ago

1.2.35

2 months ago

1.2.36

2 months ago

1.2.28

2 months ago

1.2.29

2 months ago

1.2.30

2 months ago

1.2.31

2 months ago

1.2.32

2 months ago

1.2.33

2 months ago

1.2.18

2 months ago

1.2.19

2 months ago

1.2.20

2 months ago

1.2.23

2 months ago

1.2.24

2 months ago

1.2.21

2 months ago

1.2.22

2 months ago

1.2.27

2 months ago

1.2.25

2 months ago

1.2.26

2 months ago

1.2.17

2 months ago

1.2.16

2 months ago

1.2.15

2 months ago

1.2.12

2 months ago

1.2.13

2 months ago

1.2.10

2 months ago

1.2.11

2 months ago

1.2.14

2 months ago

1.2.9

2 months ago

1.2.8

2 months ago

1.2.7

2 months ago

1.2.6

2 months ago

1.2.5

2 months ago

1.2.4

2 months ago

1.2.3

2 months ago

1.2.2

2 months ago

1.2.1

2 months ago

1.2.0

2 months ago

1.1.99

2 months ago

1.1.98

2 months ago

1.1.96

3 months ago

1.1.95

3 months ago

1.1.97

3 months ago

1.1.94

3 months ago

1.1.93

3 months ago

1.1.92

3 months ago

1.1.91

3 months ago

1.1.90

3 months ago

1.1.89

3 months ago

1.1.88

3 months ago

1.1.87

3 months ago

1.1.85

3 months ago

1.1.84

3 months ago

1.1.83

3 months ago

1.1.86

3 months ago

1.1.74

3 months ago

1.1.78

3 months ago

1.1.77

3 months ago

1.1.76

3 months ago

1.1.75

3 months ago

1.1.79

3 months ago

1.1.81

3 months ago

1.1.80

3 months ago

1.1.82

3 months ago

1.1.73

3 months ago

1.1.72

3 months ago

1.1.71

3 months ago

1.1.70

3 months ago

1.1.69

3 months ago

1.1.68

3 months ago

1.1.63

3 months ago

1.1.62

3 months ago

1.1.67

3 months ago

1.1.66

3 months ago

1.1.65

3 months ago

1.1.64

3 months ago

1.1.61

3 months ago

1.1.59

4 months ago

1.1.58

4 months ago

1.1.60

4 months ago

1.1.57

4 months ago

1.1.56

4 months ago

1.1.55

4 months ago

1.1.54

4 months ago

1.1.53

4 months ago

1.1.52

4 months ago

1.1.51

4 months ago

1.1.49

4 months ago

1.1.48

4 months ago

1.1.50

4 months ago

1.1.47

5 months ago

1.1.45

5 months ago

1.1.46

5 months ago

1.1.44

5 months ago

1.1.43

5 months ago

1.1.41

5 months ago

1.1.42

5 months ago

1.1.40

5 months ago

1.1.38

5 months ago

1.1.39

5 months ago

1.1.37

5 months ago

1.1.36

5 months ago

1.1.35

5 months ago

1.1.34

5 months ago

1.1.33

5 months ago

1.1.32

5 months ago

1.1.30

5 months ago

1.1.31

5 months ago

1.1.29

5 months ago

1.1.28

5 months ago

1.1.27

5 months ago

1.1.26

5 months ago

1.1.25

5 months ago

1.1.24

5 months ago

1.1.23

5 months ago

1.1.22

5 months ago

1.1.21

5 months ago

1.1.20

5 months ago

1.1.19

5 months ago

1.1.18

5 months ago

1.1.17

5 months ago

1.1.16

5 months ago

1.1.15

5 months ago

1.1.14

6 months ago

1.1.13

6 months ago

1.1.12

6 months ago

1.1.11

6 months ago

1.1.10

6 months ago

1.1.9

6 months ago

1.1.8

6 months ago

1.1.7

6 months ago

1.1.6

6 months ago

1.1.5

6 months ago

1.1.4

6 months ago

1.1.3

6 months ago

1.1.2

6 months ago

1.1.1

6 months ago

1.1.0

6 months ago

1.0.99

6 months ago

1.0.98

6 months ago

1.0.97

6 months ago

1.0.96

7 months ago

1.0.95

7 months ago

1.0.94

7 months ago

1.0.93

7 months ago

1.0.92

7 months ago

1.0.91

7 months ago

1.0.90

7 months ago

1.0.89

7 months ago

1.0.88

7 months ago

1.0.87

7 months ago

1.0.86

8 months ago

1.0.85

8 months ago

1.0.84

8 months ago

1.0.83

8 months ago

1.0.82

8 months ago

1.0.81

8 months ago

1.0.80

8 months ago

1.0.79

8 months ago

1.0.78

8 months ago

1.0.77

8 months ago

1.0.75

8 months ago

1.0.74

8 months ago

1.0.73

8 months ago

1.0.72

8 months ago

1.0.71

8 months ago

1.0.70

8 months ago

1.0.69

8 months ago

1.0.68

8 months ago

1.0.67

8 months ago

1.0.66

8 months ago

1.0.65

8 months ago

1.0.64

8 months ago

1.0.62

8 months ago

1.0.61

8 months ago

1.0.60

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.55

8 months ago

1.0.54

8 months ago

1.0.53

8 months ago

1.0.52

8 months ago

1.0.51

8 months ago

1.0.50

8 months ago

1.0.49

8 months ago

1.0.48

8 months ago

1.0.47

8 months ago

1.0.46

8 months ago

1.0.45

8 months ago

1.0.44

8 months ago

1.0.43

8 months ago

1.0.42

8 months ago

1.0.41

8 months ago

1.0.40

8 months ago

1.0.39

8 months ago

1.0.38

8 months ago

1.0.37

8 months ago

1.0.36

8 months ago

1.0.35

8 months ago

1.0.34

8 months ago

1.0.33

8 months ago

1.0.32

8 months ago

1.0.31

8 months ago

1.0.30

8 months ago

1.0.29

8 months ago

1.0.28

8 months ago

1.0.27

8 months ago

1.0.26

8 months ago

1.0.25

8 months ago

1.0.24

8 months ago

1.0.23

8 months ago

1.0.22

8 months ago

1.0.21

8 months ago

1.0.20

8 months ago

1.0.19

8 months ago

1.0.18

8 months ago

1.0.17

8 months ago

1.0.16

8 months ago

1.0.15

8 months ago

1.0.14

8 months ago

1.0.13

8 months ago

1.0.12

9 months ago

1.0.11

9 months ago

1.0.10

9 months ago

1.0.9

9 months ago

1.0.8

9 months ago

1.0.7

9 months ago

1.0.6

9 months ago

1.0.5

9 months ago

1.0.4

9 months ago

1.0.3

9 months ago

1.0.2

9 months ago

1.0.1

9 months ago

1.0.0

9 months ago

0.0.0

9 months ago