Skip to content

Commit ef30c10

Browse files
committedMar 18, 2025·
feat: 🎸 initial project setup
0 parents  commit ef30c10

26 files changed

+4489
-0
lines changed
 

‎.editorconfig

+19
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
# Editor configuration, see https://editorconfig.org
2+
root = true
3+
4+
[*]
5+
charset = utf-8
6+
indent_style = space
7+
indent_size = 2
8+
insert_final_newline = true
9+
trim_trailing_whitespace = true
10+
11+
[*.ts{,x}]
12+
quote_type = single
13+
14+
[*.js{,x}]
15+
quote_type = single
16+
17+
[*.md]
18+
max_line_length = off
19+
trim_trailing_whitespace = false

‎.eslintignore

+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
node_modules
2+
coverage
3+
dist
4+
.d.ts
5+
**/.d.ts

‎.eslintrc

+123
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,123 @@
1+
{
2+
"env": {
3+
"browser": true,
4+
"es2021": true,
5+
"node": true
6+
},
7+
"extends": [
8+
"plugin:react/recommended",
9+
"plugin:react-hooks/recommended",
10+
"plugin:@typescript-eslint/recommended",
11+
"plugin:prettier/recommended"
12+
],
13+
"parser": "@typescript-eslint/parser",
14+
"parserOptions": {
15+
"ecmaFeatures": {
16+
"jsx": true
17+
},
18+
"ecmaVersion": "latest",
19+
"sourceType": "module",
20+
"project": "./tsconfig.json"
21+
},
22+
"plugins": [
23+
"react",
24+
"@typescript-eslint",
25+
"simple-import-sort",
26+
"unused-imports",
27+
"import",
28+
"prettier"
29+
],
30+
"rules": {
31+
"react/react-in-jsx-scope": "off",
32+
"prettier/prettier": ["error", { "endOfLine": "auto" }],
33+
"import/order": [
34+
"error",
35+
{
36+
"groups": [
37+
"builtin",
38+
"external",
39+
"index",
40+
"sibling",
41+
"parent",
42+
"internal",
43+
"object",
44+
"type"
45+
]
46+
}
47+
],
48+
"@typescript-eslint/no-use-before-define": [
49+
"error",
50+
{ "functions": false, "classes": true, "variables": true, "typedefs": true }
51+
],
52+
"import/no-extraneous-dependencies": [
53+
"error",
54+
{
55+
"devDependencies": [".storybook/**", "src/**/*.stories.@(js|jsx|ts|tsx)"]
56+
}
57+
],
58+
"import/prefer-default-export": "off",
59+
"react/function-component-definition": [
60+
2,
61+
{
62+
"namedComponents": "arrow-function",
63+
"unnamedComponents": "arrow-function"
64+
}
65+
],
66+
"no-prototype-builtins": "off",
67+
"import/no-default-export": "off",
68+
"import/no-unresolved": "error",
69+
"dot-notation": "off",
70+
"@typescript-eslint/dot-notation": ["error", {}],
71+
"@typescript-eslint/explicit-function-return-type": "off",
72+
"react/destructuring-assignment": "off",
73+
"react/jsx-filename-extension": [2, { "extensions": [".js", ".jsx", ".ts", ".tsx"] }],
74+
"no-use-before-define": ["error", { "functions": false, "classes": true, "variables": true }],
75+
"import/extensions": [
76+
"error",
77+
"ignorePackages",
78+
{
79+
"js": "never",
80+
"jsx": "never",
81+
"ts": "never",
82+
"tsx": "never"
83+
}
84+
],
85+
"jest/no-disabled-tests": "warn",
86+
"jest/no-focused-tests": "error",
87+
"jest/no-identical-title": "error",
88+
"jest/prefer-to-have-length": "warn",
89+
"jest/valid-expect": "error",
90+
"no-unused-vars": "off",
91+
"@typescript-eslint/no-unused-vars": ["error", { "argsIgnorePattern": "^_" }],
92+
"simple-import-sort/imports": [
93+
"error",
94+
{
95+
"groups": [
96+
["^react", "^@?\\w"],
97+
["^\\u0000"],
98+
["^\\.\\.(?!/?$)", "^\\.\\./?$"],
99+
["^\\./(?=.*/)(?!/?$)", "^\\.(?!/?$)", "^\\./?$"]
100+
]
101+
}
102+
],
103+
"arrow-body-style": ["error", "as-needed"],
104+
"unused-imports/no-unused-imports": ["error"],
105+
"sort-imports": "off",
106+
"import/first": "error",
107+
"import/newline-after-import": "error",
108+
"import/no-duplicates": "error"
109+
},
110+
"settings": {
111+
"import/parsers": {
112+
"@typescript-eslint/parser": [".ts", ".tsx"]
113+
},
114+
"import/resolver": {
115+
"typescript": {
116+
"alwaysTryTypes": true
117+
}
118+
},
119+
"react": {
120+
"version": "detect"
121+
}
122+
}
123+
}

‎.github/CODEOWNERS

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
@devtranslate/squad-core

‎.github/ISSUE_TEMPLATE.md

+27
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
## 📝 Descrição
2+
3+
<!-- Descreva o problema ou sugestão de forma detalhada. Explique o contexto, o impacto e qualquer outra informação relevante. -->
4+
5+
## 🔍 Passos para Reproduzir
6+
7+
<!-- Descreva os passos necessários para reproduzir o problema. Inclua detalhes sobre o ambiente de teste, comandos específicos e qualquer outra informação relevante. -->
8+
9+
## ✔️ Resultado Esperado
10+
11+
<!-- Descreva o que você esperava que acontecesse ao seguir os passos acima. -->
12+
13+
## ❌ Resultado Atual
14+
15+
<!-- Descreva o que realmente acontece ao seguir os passos acima. -->
16+
17+
## 📸 Registros e Capturas de Tela
18+
19+
<!-- Cole todos os registros relevantes, se possível utilize blocos de código para formatar as saídas do console, logs e código. -->
20+
21+
## 🔗 Referências
22+
23+
<!-- Adicione links para quaisquer issues, PRs ou documentos relevantes. -->
24+
25+
## 📋 Notas Adicionais
26+
27+
<!-- Adicione qualquer outra informação que você ache relevante para a issue. -->

‎.github/PULL_REQUEST_TEMPLATE.md

+19
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
## 📝 Descrição
2+
3+
<!-- Substitua esta linha com a descrição da tarefa. Tente se lembrar de como você recebeu e entendeu esta tarefa. Forneça uma descrição detalhada das mudanças feitas. Inclua os passos necessários para reproduzir o problema ou testar a nova funcionalidade. Para correções de bugs, descreva o comportamento atual e o comportamento esperado. Imagine que está explicando para alguém que não sabe nada sobre o assunto. -->
4+
5+
## 🧪 Como Testar
6+
7+
<!-- Descreva os passos necessários para testar suas mudanças. Inclua detalhes sobre o ambiente de teste, comandos específicos e qualquer outra informação relevante. -->
8+
9+
## 📸 Registros e Capturas de Tela
10+
11+
<!-- Cole todos os registros relevantes, se possível utilize blocos de código para formatar as saídas do console, logs e código. -->
12+
13+
## 🔗 Referências
14+
15+
<!-- Adicione links para quaisquer issues, PRs ou documentos relevantes. -->
16+
17+
## 📋 Notas Adicionais
18+
19+
<!-- Adicione qualquer outra informação que você ache relevante para a revisão do PR. -->

‎.github/dependabot.yml

+21
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
version: 2
2+
updates:
3+
- package-ecosystem: 'npm'
4+
directory: '/'
5+
schedule:
6+
interval: 'weekly'
7+
day: 'monday'
8+
open-pull-requests-limit: 10
9+
versioning-strategy: increase
10+
labels:
11+
- 'improvement: dependencies'
12+
groups:
13+
non-major:
14+
update-types:
15+
- 'minor'
16+
- 'patch'
17+
- package-ecosystem: 'github-actions'
18+
directory: '/'
19+
schedule:
20+
interval: 'weekly'
21+
day: 'monday'

‎.gitignore

+22
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
dist/
2+
3+
# Created by https://www.toptal.com/developers/gitignore/api/react
4+
# Edit at https://www.toptal.com/developers/gitignore?templates=react
5+
6+
### react ###
7+
.DS_*
8+
*.log
9+
logs
10+
**/*.backup.*
11+
**/*.back.*
12+
13+
node_modules
14+
bower_components
15+
16+
*.sublime*
17+
18+
psd
19+
thumb
20+
sketch
21+
22+
# End of https://www.toptal.com/developers/gitignore/api/react

‎.husky/.gitignore

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
_

‎.husky/commit-msg

+2
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
#!/bin/sh
2+
yarn commitlint --edit $1

‎.husky/pre-commit-msg

+2
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
#!/bin/sh
2+
yarn lint-staged --allow-empty

‎.husky/prepare-commit-msg

+2
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
#!/bin/sh
2+
exec < /dev/tty && npx git-cz --hook || true

‎.nvmrc

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
18.20.7

‎.prettierrc

+9
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
{
2+
"printWidth": 100,
3+
"singleQuote": true,
4+
"useTabs": false,
5+
"tabWidth": 2,
6+
"semi": true,
7+
"bracketSpacing": true,
8+
"trailingComma": "none"
9+
}

‎.vscode/extensions.json

+12
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
{
2+
"recommendations": [
3+
"steoates.autoimport",
4+
"formulahendry.auto-rename-tag",
5+
"dbaeumer.vscode-eslint",
6+
"christian-kohler.npm-intellisense",
7+
"esbenp.prettier-vscode",
8+
"stylelint.vscode-stylelint",
9+
"styled-components.vscode-styled-components",
10+
"editorconfig.editorconfig"
11+
]
12+
}

‎.vscode/settings.json

+11
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
{
2+
"editor.defaultFormatter": "esbenp.prettier-vscode",
3+
"editor.formatOnSave": true,
4+
"editor.formatOnPaste": false,
5+
"css.validate": false,
6+
"scss.validate": false,
7+
"editor.codeActionsOnSave": {
8+
"source.fixAll.eslint": "explicit"
9+
},
10+
"eslint.validate": ["javascript"]
11+
}

‎LICENSE.md

+21
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
MIT License
2+
3+
Copyright (c) 2025 Devtranslate
4+
5+
Permission is hereby granted, free of charge, to any person obtaining a copy
6+
of this software and associated documentation files (the "Software"), to deal
7+
in the Software without restriction, including without limitation the rights
8+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9+
copies of the Software, and to permit persons to whom the Software is
10+
furnished to do so, subject to the following conditions:
11+
12+
The above copyright notice and this permission notice shall be included in all
13+
copies or substantial portions of the Software.
14+
15+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21+
SOFTWARE.

‎README.md

+37
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
<p align="center">
2+
<img src="https://devtranslate.io/static/images/logo.svg" alt="DevTranslate logo" width="700" />
3+
</p>
4+
5+
<h3 align="center">💾 Devtranslate UI</h3>
6+
<p align="center">Repositório oficial dos componentes do <strong>Devtranslate</strong></p>
7+
8+
<p align="center">
9+
<a href="https://telegram.me/devtranslate">
10+
<img src="https://img.shields.io/badge/telegram-@devtranslate-0088cc.svg?style=flat-square" alt="Telegram"/>
11+
</a>
12+
<a href="https://www.linkedin.com/company/devtranslate">
13+
<img src="https://img.shields.io/badge/linkedin-oficial_page-e68523.svg?style=flat-square" alt="Linkedin"/>
14+
</a>
15+
<a href="https://www.instagram.com/devtranslate/">
16+
<img src="https://img.shields.io/badge/instagram-@devtranslate-c13584.svg?style=flat-square" alt="Instagram"/>
17+
</a>
18+
<a href="https://www.twitter.com/devtranslate_">
19+
<img src="https://img.shields.io/badge/twitter-oficial_page-1DA1F2.svg?style=flat-square" alt="Twitter"/>
20+
</a>
21+
</p>
22+
23+
<br />
24+
25+
## ✏️ Sumário
26+
27+
- [Visão Geral do Projeto](#visão-geral-do-projeto)
28+
- [Documentação](#documentação)
29+
- [Licença](#licença)
30+
31+
### Visão Geral do Projeto
32+
33+
### Documentação
34+
35+
## 📄 Licença
36+
37+
[MIT](LICENSE.md) &copy; Devtranslate

‎commitlint.config.js

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
module.exports = { extends: ['@commitlint/config-conventional'] };

‎package.json

+80
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,80 @@
1+
{
2+
"name": "@devtranslate/ui",
3+
"version": "0.0.1",
4+
"description": "Devtranslate UI Components",
5+
"main": "dist/index.cjs.js",
6+
"module": "dist/index.esm.js",
7+
"types": "dist/index.d.ts",
8+
"private": false,
9+
"type": "module",
10+
"scripts": {
11+
"prepare": "husky",
12+
"build": "rollup -c",
13+
"lint:code": "tsc --noEmit && eslint . && prettier --check .",
14+
"lint:fix": "tsc --noEmit && eslint --fix . && prettier --write ."
15+
},
16+
"repository": {
17+
"type": "git",
18+
"url": "git+https://github.com/devtranslate/ui.git"
19+
},
20+
"keywords": [],
21+
"author": "Larissa Mourullo",
22+
"license": "MIT",
23+
"files": [
24+
"dist"
25+
],
26+
"bugs": {
27+
"url": "https://github.com/devtranslate/ui/issues"
28+
},
29+
"homepage": "https://github.com/devtranslate/ui#readme",
30+
"peerDependencies": {
31+
"react": ">=16.8"
32+
},
33+
"publishConfig": {
34+
"registry": "https://npm.pkg.github.com"
35+
},
36+
"devDependencies": {
37+
"@commitlint/cli": "19.8.0",
38+
"@commitlint/config-conventional": "19.8.0",
39+
"@rollup/plugin-commonjs": "28.0.3",
40+
"@rollup/plugin-node-resolve": "16.0.1",
41+
"@rollup/plugin-typescript": "12.1.2",
42+
"@types/react": "19.0.11",
43+
"@typescript-eslint/eslint-plugin": "8.26.1",
44+
"@typescript-eslint/parser": "8.26.1",
45+
"commitizen": "4.3.1",
46+
"eslint": "9.22.0",
47+
"eslint-config-prettier": "10.1.1",
48+
"eslint-import-resolver-typescript": "4.1.1",
49+
"eslint-plugin-import": "2.31.0",
50+
"eslint-plugin-jsx-a11y": "6.10.2",
51+
"eslint-plugin-prettier": "5.2.3",
52+
"eslint-plugin-react": "7.37.4",
53+
"eslint-plugin-react-hooks": "5.2.0",
54+
"eslint-plugin-simple-import-sort": "12.1.1",
55+
"eslint-plugin-unused-imports": "4.1.4",
56+
"git-cz": "4.9.0",
57+
"husky": "9.1.7",
58+
"lint-staged": "15.5.0",
59+
"prettier": "3.5.3",
60+
"rollup": "4.36.0",
61+
"rollup-plugin-dts": "6.1.1",
62+
"rollup-plugin-peer-deps-external": "2.2.4",
63+
"rollup-plugin-terser": "7.0.2",
64+
"tslib": "2.8.1",
65+
"typescript": "5.8.2"
66+
},
67+
"config": {
68+
"commitizen": {
69+
"path": "git-cz"
70+
}
71+
},
72+
"lint-staged": {
73+
".{ts,tsx}": "eslint --fix",
74+
".{ts,tsx,css}": "prettier --write"
75+
},
76+
"pre-commit": [
77+
"npm prettier-format",
78+
"npm lint"
79+
]
80+
}

‎rollup.config.mjs

+37
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
import packageJson from './package.json' assert { type: 'json' };
2+
import resolve from '@rollup/plugin-node-resolve';
3+
import commonjs from '@rollup/plugin-commonjs';
4+
import typescript from '@rollup/plugin-typescript';
5+
import dts from 'rollup-plugin-dts';
6+
import { terser } from 'rollup-plugin-terser';
7+
import peerDepsExternal from 'rollup-plugin-peer-deps-external';
8+
9+
export default [
10+
{
11+
input: 'src/index.ts',
12+
output: [
13+
{
14+
file: packageJson.main,
15+
format: 'cjs',
16+
sourcemap: true
17+
},
18+
{
19+
file: packageJson.module,
20+
format: 'esm',
21+
sourcemap: true
22+
}
23+
],
24+
plugins: [
25+
peerDepsExternal(),
26+
resolve(),
27+
commonjs(),
28+
typescript({ tsconfig: './tsconfig.json' }),
29+
terser()
30+
]
31+
},
32+
{
33+
input: 'dist/index.d.ts',
34+
output: [{ file: packageJson.types, format: 'esm' }],
35+
plugins: [dts()]
36+
}
37+
];

‎src/components/atoms/index.ts

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
export * from './text/Text';

‎src/components/atoms/text/Text.tsx

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
export const Text = () => {
2+
return <p>Text Component</p>;
3+
};

‎src/index.ts

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
export * from './components/atoms';

‎tsconfig.json

+19
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
{
2+
"compilerOptions": {
3+
"target": "es2015",
4+
"jsx": "react-jsx",
5+
"module": "ESNext",
6+
"moduleResolution": "node",
7+
"declaration": true,
8+
"emitDeclarationOnly": false,
9+
"sourceMap": true,
10+
"outDir": "dist",
11+
"declarationDir": "dist",
12+
"allowSyntheticDefaultImports": true,
13+
"esModuleInterop": true,
14+
"strict": true,
15+
"noImplicitAny": true,
16+
"noUnusedLocals": true,
17+
"skipLibCheck": true
18+
}
19+
}

‎yarn.lock

+4,012
Large diffs are not rendered by default.

0 commit comments

Comments
 (0)
Please sign in to comment.