├── .github └── workflows │ └── docs.yml ├── .gitignore ├── .npmrc ├── .prettierignore ├── .prettierrc ├── .vscode └── settings.json ├── CHANGELOG.md ├── LICENSE ├── README.md ├── docs ├── components.d.ts ├── index.html ├── package.json ├── postcss.config.cjs ├── src │ ├── @types │ │ ├── global.d.ts │ │ └── vue.d.ts │ ├── README.md │ ├── app.vue │ ├── assets │ │ └── photo.jpg │ ├── components │ │ ├── app │ │ │ └── app-menu.vue │ │ ├── markdown-table.vue │ │ └── playground.vue │ ├── main.ts │ ├── pages │ │ ├── components │ │ │ ├── alert.md │ │ │ ├── artboard.md │ │ │ ├── avatar.md │ │ │ ├── badge.md │ │ │ ├── breadcrumb.md │ │ │ ├── button.md │ │ │ ├── card.md │ │ │ ├── checkbox.md │ │ │ ├── counter.md │ │ │ ├── divider.md │ │ │ ├── drawer.md │ │ │ ├── dropdown.md │ │ │ ├── icons.md │ │ │ ├── indicator.md │ │ │ ├── input.md │ │ │ ├── join.md │ │ │ ├── kbd.md │ │ │ ├── link.md │ │ │ ├── loading.md │ │ │ ├── mask.md │ │ │ ├── menu.md │ │ │ ├── modal.md │ │ │ ├── navbar.md │ │ │ ├── pagination.md │ │ │ ├── popper.md │ │ │ ├── progress.md │ │ │ ├── radio.md │ │ │ ├── raw.md │ │ │ ├── space.md │ │ │ ├── swap.md │ │ │ ├── tab.md │ │ │ ├── table.md │ │ │ ├── textarea.md │ │ │ ├── toggle.md │ │ │ └── tooltip.md │ │ ├── demo.md │ │ └── index.vue │ ├── styles │ │ ├── global.less │ │ ├── index.ts │ │ ├── markdown.less │ │ └── tailwind.css │ └── utils │ │ └── index.ts ├── tailwind.config.cjs ├── tsconfig.json └── vite.config.ts ├── jest.config.js ├── package.json ├── packages ├── daisyui-style-ext │ ├── package.json │ ├── src │ │ └── index.ts │ └── tsconfig.json └── develop │ ├── __tests__ │ ├── classname-plugin.test.ts │ └── fixtures │ │ └── classname-plugin.js │ ├── cli.js │ ├── index.js │ ├── package.json │ ├── src │ ├── build │ │ ├── classname-plugin.ts │ │ ├── rollup-styles-plugin.ts │ │ ├── rollup.ts │ │ └── ts-declaration-transformer.ts │ ├── cli.ts │ ├── index.ts │ └── init │ │ ├── index.ts │ │ └── parse-css-theme.ts │ └── tsconfig.json ├── pnpm-lock.yaml ├── pnpm-workspace.yaml ├── postcss.config.js ├── rollup.config.js ├── scripts └── buildIcons.js ├── src ├── @types │ ├── dom.ts │ ├── ext.d.ts │ └── global.d.ts ├── components │ ├── _styles │ │ ├── animate.less │ │ ├── common │ │ │ └── checkbox-radio.less │ │ ├── daisyui-utilities-global │ │ │ ├── glass.css │ │ │ └── variables.css │ │ └── global.ts │ ├── _widgets │ │ ├── raw.tsx │ │ ├── style │ │ │ └── raw.less │ │ └── theme.tsx │ ├── alert │ │ ├── index.tsx │ │ └── style │ │ │ ├── c-s.css │ │ │ ├── c-us.css │ │ │ ├── index.ts │ │ │ └── style.less │ ├── artboard │ │ ├── artboard.tsx │ │ ├── index.tsx │ │ └── style │ │ │ ├── c-us.css │ │ │ ├── index.ts │ │ │ ├── u-s.css │ │ │ └── u-us.css │ ├── avatar │ │ ├── avatar-group.tsx │ │ ├── avatar.tsx │ │ ├── index.tsx │ │ ├── state.ts │ │ └── style │ │ │ ├── c-s.css │ │ │ ├── c-us.css │ │ │ ├── index.ts │ │ │ ├── style.less │ │ │ └── u-s.css │ ├── badge │ │ ├── index.tsx │ │ └── style │ │ │ ├── c-s.css │ │ │ ├── c-us.css │ │ │ ├── index.ts │ │ │ ├── style.less │ │ │ └── u-us.css │ ├── breadcrumb │ │ ├── index.tsx │ │ └── style │ │ │ ├── c-s.css │ │ │ ├── c-us.css │ │ │ ├── index.ts │ │ │ └── style.less │ ├── button │ │ ├── button-group.tsx │ │ ├── button.tsx │ │ ├── index.tsx │ │ ├── state.ts │ │ └── style │ │ │ ├── c-s.css │ │ │ ├── c-us.css │ │ │ ├── index.ts │ │ │ ├── u-s.css │ │ │ └── u-us.css │ ├── card │ │ ├── index.tsx │ │ └── style │ │ │ ├── c-s.css │ │ │ ├── c-us.css │ │ │ ├── index.ts │ │ │ ├── u-s.css │ │ │ └── u-us.css │ ├── checkbox │ │ ├── checkbox.tsx │ │ ├── group.tsx │ │ ├── index.ts │ │ ├── state.tsx │ │ └── style │ │ │ ├── c-s.css │ │ │ ├── c-us.css │ │ │ ├── index.ts │ │ │ ├── style.less │ │ │ └── u-us.css │ ├── counter │ │ ├── index.tsx │ │ └── style │ │ │ ├── index.ts │ │ │ └── style.less │ ├── divider │ │ ├── index.tsx │ │ └── style │ │ │ ├── c-s.css │ │ │ ├── c-us.css │ │ │ ├── index.ts │ │ │ ├── u-s.css │ │ │ └── u-us.css │ ├── drawer │ │ ├── drawer.tsx │ │ ├── index.tsx │ │ └── style │ │ │ ├── index.ts │ │ │ └── style.less │ ├── dropdown │ │ ├── index.tsx │ │ └── style │ │ │ ├── index.ts │ │ │ └── style.less │ ├── icon │ │ ├── icon.tsx │ │ ├── icons.tsx │ │ ├── index.tsx │ │ └── style │ │ │ ├── index.ts │ │ │ └── style.less │ ├── index.tsx │ ├── indicator │ │ ├── index.tsx │ │ └── style │ │ │ ├── c-us.css │ │ │ ├── index.ts │ │ │ ├── style.less │ │ │ └── u-us.css │ ├── input │ │ ├── index.tsx │ │ └── style │ │ │ ├── c-s.css │ │ │ ├── c-us.css │ │ │ ├── index.ts │ │ │ └── u-us.css │ ├── join │ │ ├── index.tsx │ │ └── styles │ │ │ ├── c-s.css │ │ │ ├── c-us.css │ │ │ ├── index.ts │ │ │ ├── u-s.css │ │ │ └── u-us.css │ ├── kbd │ │ ├── index.tsx │ │ └── style │ │ │ ├── c-s.css │ │ │ ├── c-us.css │ │ │ ├── index.ts │ │ │ └── u-us.css │ ├── link │ │ ├── index.tsx │ │ └── style │ │ │ ├── c-s.css │ │ │ ├── c-us.css │ │ │ └── index.ts │ ├── loading │ │ ├── index.tsx │ │ └── style │ │ │ ├── c-s.css │ │ │ └── index.ts │ ├── mask │ │ ├── index.tsx │ │ └── style │ │ │ ├── c-s.css │ │ │ ├── c-us.css │ │ │ └── index.tsx │ ├── menu │ │ ├── index.tsx │ │ ├── menu-item.tsx │ │ ├── menu.tsx │ │ └── style │ │ │ ├── c-s.css │ │ │ ├── c-us.css │ │ │ ├── index.ts │ │ │ ├── style.less │ │ │ ├── u-s.css │ │ │ └── u-us.css │ ├── modal │ │ ├── base.tsx │ │ ├── index.tsx │ │ ├── style │ │ │ ├── base.less │ │ │ └── widgets.less │ │ └── widgets.tsx │ ├── navbar │ │ ├── index.ts │ │ ├── navbar.tsx │ │ └── style │ │ │ ├── c-s.css │ │ │ ├── c-us.css │ │ │ └── index.ts │ ├── pagination │ │ └── index.tsx │ ├── popper │ │ ├── index.tsx │ │ └── style │ │ │ └── index.less │ ├── progress │ │ ├── index.tsx │ │ └── style │ │ │ ├── c-s.css │ │ │ ├── c-us.css │ │ │ ├── index.ts │ │ │ ├── radial-progress-c-s.css │ │ │ └── radial-progress-c-us.css │ ├── radio │ │ ├── group.tsx │ │ ├── index.tsx │ │ ├── radio.tsx │ │ ├── state.tsx │ │ └── style │ │ │ ├── c-s.css │ │ │ ├── c-us.css │ │ │ ├── index.ts │ │ │ ├── style.less │ │ │ └── u-us.css │ ├── space │ │ ├── index.tsx │ │ └── style │ │ │ ├── index.ts │ │ │ └── style.less │ ├── swap │ │ ├── index.tsx │ │ └── style │ │ │ ├── index.ts │ │ │ └── style.less │ ├── tab │ │ ├── index.tsx │ │ ├── style │ │ │ ├── c-s.css │ │ │ ├── c-us.css │ │ │ ├── index.ts │ │ │ ├── style.less │ │ │ └── u-us.css │ │ └── tabs.tsx │ ├── table │ │ ├── index.tsx │ │ ├── style │ │ │ ├── c-s.css │ │ │ ├── c-us.css │ │ │ ├── index.ts │ │ │ ├── style.less │ │ │ └── u-s.css │ │ └── table.tsx │ ├── textarea │ │ ├── index.tsx │ │ └── style │ │ │ ├── c-s.css │ │ │ ├── c-us.css │ │ │ └── index.ts │ ├── toggle │ │ ├── index.tsx │ │ └── style │ │ │ ├── c-s.css │ │ │ ├── c-us.css │ │ │ ├── index.ts │ │ │ └── u-us.css │ └── tooltip │ │ ├── index.tsx │ │ ├── style │ │ ├── index.ts │ │ └── style.less │ │ └── tooltip.tsx ├── index.tsx ├── install.ts └── shared │ ├── animation-timer.ts │ ├── constants │ ├── base-props.ts │ └── index.ts │ ├── ctx.ts │ ├── hooks │ ├── index.ts │ ├── use-active-change.ts │ ├── use-async.ts │ ├── use-break-point.ts │ ├── use-checkbox.ts │ └── use-event-listener.ts │ ├── style-manager.ts │ ├── styled.ts │ ├── theme │ ├── define.ts │ ├── internal.ts │ └── themes.ts │ ├── types │ ├── common.ts │ ├── components.tsx │ ├── theme.ts │ └── utils.ts │ └── utils.ts ├── tailwind.config.js └── tsconfig.json /.github/workflows/docs.yml: -------------------------------------------------------------------------------- 1 | # This workflow will do a clean install of node dependencies, cache/restore them, build the source code and run tests across different versions of node 2 | # For more information see: https://help.github.com/actions/language-and-framework-guides/using-nodejs-with-github-actions 3 | 4 | name: Node.js CI 5 | 6 | on: 7 | push: 8 | branches: [master] 9 | pull_request: 10 | branches: [master] 11 | workflow_dispatch: 12 | 13 | jobs: 14 | build: 15 | runs-on: ubuntu-latest 16 | 17 | strategy: 18 | matrix: 19 | # node-version: [12.x, 14.x, 16.x] 20 | node-version: [18.x] 21 | # See supported Node.js release schedule at https://nodejs.org/en/about/releases/ 22 | 23 | steps: 24 | - uses: actions/checkout@v2 25 | 26 | - name: Install pnpm 27 | uses: pnpm/action-setup@v2 28 | with: 29 | version: 6.19.1 30 | 31 | - name: Use Node.js ${{ matrix.node-version }} 32 | uses: actions/setup-node@v2 33 | with: 34 | node-version: ${{ matrix.node-version }} 35 | cache: 'pnpm' 36 | 37 | - run: pnpm i 38 | - run: pnpm build --filter @dv/develop 39 | - run: pnpm run dvinit 40 | - run: pnpm run build 41 | - run: pnpm run build --filter docs 42 | 43 | - name: GitHub Pages action 44 | uses: peaceiris/actions-gh-pages@v3.7.3 45 | with: 46 | github_token: ${{ secrets.ACCESS_TOKEN }} 47 | publish_dir: docs/dist 48 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | /target 2 | ### Node ### 3 | # Logs 4 | logs 5 | *-debug.log* 6 | *-debug.log* 7 | *-error.log* 8 | 9 | # Custom 10 | node_modules/ 11 | \.DS_Store 12 | src/_daisyui 13 | src/icons/vue 14 | 15 | dist 16 | es 17 | lib 18 | **/.yarn/install-state.gz 19 | **/.yarn/cache 20 | 21 | docs/src/.demo 22 | .vite-ssg-temp 23 | out/ 24 | -------------------------------------------------------------------------------- /.npmrc: -------------------------------------------------------------------------------- 1 | registry=https://registry.npmmirror.com 2 | # 将所有模块放在最顶层,解决组件库打包时报错 vue 中导出的 App、computed 不存在的问题 3 | # shamefully-hoist=true 4 | 5 | # 全部提升过于暴力,只提升 vue 相关的到顶层 6 | public-hoist-pattern[]=*vue* 7 | public-hoist-pattern[]=*popperjs* 8 | public-hoist-pattern[]=rollup 9 | public-hoist-pattern[]=daisyui 10 | public-hoist-pattern[]=tslib 11 | public-hoist-pattern[]=typescript 12 | 13 | auto-install-peers=true 14 | -------------------------------------------------------------------------------- /.prettierignore: -------------------------------------------------------------------------------- 1 | *-lock.yaml 2 | -------------------------------------------------------------------------------- /.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "singleQuote": true, 3 | "trailingComma": "all", 4 | "htmlWhitespaceSensitivity": "strict" 5 | } 6 | -------------------------------------------------------------------------------- /.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "editor.formatOnSave": true, 3 | "html.format.enable": true, 4 | // https://github.com/ben-rogerson/twin.macro/discussions/227 5 | "tailwindCSS.experimental.classRegex": [ 6 | "tw`([^`]*)", // tw`...` 7 | "tw=\"([^\"]*)", //
8 | "tw={\"([^\"}]*)", // 9 | "tw\\.\\w+`([^`]*)", // tw.xxx`...` 10 | "tw\\(.*?\\)`([^`]*)" // tw(Component)`...` 11 | ], 12 | "less.lint.unknownAtRules": "ignore" 13 | } 14 | -------------------------------------------------------------------------------- /docs/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Press
34 |
18 | Tailwind CSS resets the style of links by default.
19 |
20 | Add "link" class to make it look like a
21 |
mask-{type}
36 |