├── .editorconfig ├── .github └── workflows │ └── publish.yml ├── .gitignore ├── .npmrc ├── .prettierignore ├── .prettierrc.json ├── CDNLocalCheck.html ├── LICENSE ├── README.md ├── README_CN.md ├── eslint.config.mjs ├── package.json ├── src ├── assets │ ├── airui-logo.png │ └── home.svg ├── components.d.ts ├── components │ ├── avatar │ │ ├── avatar.md │ │ ├── avatar.scss │ │ ├── avatar.tsx │ │ └── readme.md │ ├── button-group │ │ ├── button-group.css │ │ ├── button-group.spec.ts │ │ ├── button-group.tsx │ │ ├── readme.md │ │ └── showCase.md │ ├── button │ │ ├── __snapshots__ │ │ │ └── button.spec.ts.snap │ │ ├── button.css │ │ ├── button.spec.ts │ │ ├── button.tsx │ │ ├── readme.md │ │ └── showCase.md │ ├── card │ │ ├── card.css │ │ ├── card.tsx │ │ ├── readme.md │ │ └── showcase.md │ ├── chat │ │ ├── chat.css │ │ ├── chat.tsx │ │ └── readme.md │ ├── icon │ │ ├── icon.css │ │ ├── icon.tsx │ │ ├── readme.md │ │ └── usage.md │ ├── input │ │ ├── input.md │ │ ├── input.scss │ │ ├── input.spec.ts │ │ ├── input.tsx │ │ └── readme.md │ ├── previwer │ │ ├── previewer.scss │ │ ├── previwer.tsx │ │ ├── readme.md │ │ └── shwocase.md │ ├── ratingStars │ │ ├── rating.css │ │ ├── rating.md │ │ ├── rating.tsx │ │ └── readme.md │ ├── tag │ │ ├── readme.md │ │ ├── tag.css │ │ ├── tag.md │ │ └── tag.tsx │ ├── text │ │ ├── readme.md │ │ ├── showCase.md │ │ ├── text.css │ │ ├── text.spec.ts │ │ └── text.tsx │ └── user-profile │ │ ├── readme.md │ │ ├── user-profile.md │ │ ├── user-profile.scss │ │ └── user-profile.tsx ├── index.html ├── index.ts ├── styles │ ├── designToken.css │ └── tailwind.css └── utils │ └── utils.tsx ├── stencil.config.ts ├── tailwind.config.js ├── test-project ├── eaample.jsx ├── index.html └── package.json ├── tsconfig.json └── yarn.lock /.editorconfig: -------------------------------------------------------------------------------- 1 | # http://editorconfig.org 2 | 3 | root = true 4 | 5 | [*] 6 | charset = utf-8 7 | indent_style = space 8 | indent_size = 2 9 | end_of_line = lf 10 | insert_final_newline = true 11 | trim_trailing_whitespace = true 12 | 13 | [*.md] 14 | insert_final_newline = false 15 | trim_trailing_whitespace = false 16 | -------------------------------------------------------------------------------- /.github/workflows/publish.yml: -------------------------------------------------------------------------------- 1 | name: Publish to npm and GitHub Packages 2 | 3 | on: 4 | push: 5 | tags: 6 | - '*' # 监听标签推送 7 | 8 | jobs: 9 | build-and-publish: 10 | runs-on: ubuntu-latest 11 | 12 | steps: 13 | # 检出代码 14 | - name: Checkout code 15 | uses: actions/checkout@v3 16 | 17 | # 设置 Node.js 环境 18 | - name: Setup Node.js 19 | uses: actions/setup-node@v3 20 | with: 21 | node-version: '18' 22 | cache: 'yarn' 23 | 24 | # 配置 npm 认证(包括 GitHub 和 npm) 25 | - name: Configure npm registry and authenticate 26 | run: | 27 | echo "//npm.pkg.github.com/:_authToken=${{ secrets.GITHUB_TOKEN }}" > ~/.npmrc 28 | echo "//registry.npmjs.org/:_authToken=${{ secrets.NPM_TOKEN }}" >> ~/.npmrc 29 | 30 | # 安装依赖 31 | - name: Install dependencies with yarn 32 | run: yarn install 33 | 34 | # 构建项目 35 | - name: Build project 36 | run: yarn build 37 | 38 | # 运行测试 39 | - name: Run tests 40 | run: yarn test 41 | 42 | # 发布到 GitHub Packages 43 | - name: Publish to GitHub Package 44 | if: startsWith(github.ref, 'refs/tags/') 45 | env: 46 | NODE_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }} 47 | run: yarn publish --access public --registry=https://npm.pkg.github.com 48 | 49 | # 发布到 npm 50 | - name: Publish to npm 51 | if: startsWith(github.ref, 'refs/tags/') 52 | env: 53 | NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} 54 | run: yarn publish --access public --registry=https://registry.npmjs.org 55 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | yarn-debug.log* 6 | yarn-error.log* 7 | lerna-debug.log* 8 | 9 | # Diagnostic reports (https://nodejs.org/api/report.html) 10 | report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json 11 | 12 | # Runtime data 13 | pids 14 | *.pid 15 | *.seed 16 | *.pid.lock 17 | 18 | # Directory for instrumented libs generated by jscoverage/JSCover 19 | lib-cov 20 | 21 | # Coverage directory used by tools like istanbul 22 | coverage 23 | *.lcov 24 | 25 | # nyc test coverage 26 | .nyc_output 27 | 28 | # Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) 29 | .grunt 30 | 31 | # Bower dependency directory (https://bower.io/) 32 | bower_components 33 | 34 | # node-waf configuration 35 | .lock-wscript 36 | 37 | # Compiled binary addons (https://nodejs.org/api/addons.html) 38 | build/Release 39 | 40 | # Dependency directories 41 | node_modules/ 42 | jspm_packages/ 43 | 44 | # TypeScript v1 declaration files 45 | typings/ 46 | 47 | # TypeScript cache 48 | *.tsbuildinfo 49 | 50 | # Optional npm cache directory 51 | .npm 52 | 53 | # Optional eslint cache 54 | .eslintcache 55 | 56 | # Microbundle cache 57 | .rpt2_cache/ 58 | .rts2_cache_cjs/ 59 | .rts2_cache_es/ 60 | .rts2_cache_umd/ 61 | 62 | # Optional REPL history 63 | .node_repl_history 64 | 65 | # Output of 'npm pack' 66 | *.tgz 67 | 68 | # Yarn Integrity file 69 | .yarn-integrity 70 | 71 | # dotenv environment variables file 72 | .env 73 | .env.test 74 | 75 | # parcel-bundler cache (https://parceljs.org/) 76 | .cache 77 | 78 | # Next.js build output 79 | .next 80 | 81 | # Nuxt.js build / generate output 82 | .nuxt 83 | dist 84 | 85 | # Gatsby files 86 | .cache/ 87 | # Comment in the public line in if your project uses Gatsby and *not* Next.js 88 | # https://nextjs.org/blog/next-9-1#public-directory-support 89 | # public 90 | 91 | # vuepress build output 92 | .vuepress/dist 93 | 94 | # Serverless directories 95 | .serverless/ 96 | 97 | # FuseBox cache 98 | .fusebox/ 99 | 100 | # DynamoDB Local files 101 | .dynamodb/ 102 | 103 | # TernJS port file 104 | .tern-port 105 | 106 | docs/ 107 | 108 | dist/ 109 | www/ 110 | loader/ 111 | 112 | *~ 113 | *.sw[mnpcod] 114 | *.log 115 | *.lock 116 | *.tmp 117 | *.tmp.* 118 | log.txt 119 | *.sublime-project 120 | *.sublime-workspace 121 | 122 | .stencil/ 123 | .idea/ 124 | .vscode/ 125 | .sass-cache/ 126 | .versions/ 127 | node_modules/ 128 | $RECYCLE.BIN/ 129 | 130 | .DS_Store 131 | Thumbs.db 132 | UserInterfaceState.xcuserstate 133 | .env 134 | -------------------------------------------------------------------------------- /.npmrc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/openwebstudio/AirUI/a0efa4ffb6c53fbdef320a23e2ba111e05a09834/.npmrc -------------------------------------------------------------------------------- /.prettierignore: -------------------------------------------------------------------------------- 1 | node_modules/ 2 | dist/ 3 | loader/ 4 | www/ 5 | test-project/ -------------------------------------------------------------------------------- /.prettierrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "semi": true, 3 | "singleQuote": true, 4 | "printWidth": 80, 5 | "tabWidth": 2 6 | } 7 | -------------------------------------------------------------------------------- /CDNLocalCheck.html: -------------------------------------------------------------------------------- 1 | 2 | 3 |
4 | 5 | 6 |