The response has been limited to 50k tokens of the smallest files in the repo. You can remove this limitation by removing the max tokens filter.
├── .git-blame-ignore-revs
├── .github
    ├── ISSUE_TEMPLATE
    │   ├── bug_report_template.yml
    │   ├── config.yml
    │   └── feature_request_template.yml
    ├── PULL_REQUEST_TEMPLATE.md
    ├── renovate.json
    └── workflows
    │   ├── ci.yml
    │   ├── github-repo-stats.yml
    │   ├── issue-close.yml
    │   ├── issue-reply.yml
    │   ├── publish-beta.yml
    │   ├── release.yml
    │   ├── sync-gitee.yml
    │   ├── sync-h5.yml
    │   ├── sync-pkg.yml
    │   └── sync-taro.yml
├── .gitignore
├── .husky
    ├── .gitignore
    ├── commit-msg
    └── pre-commit
├── .joycode
    └── prompt.json
├── .npmrc
├── .prettierignore
├── .prettierrc
├── CHANGELOG.md
├── CONTRIBUTING.md
├── LICENSE
├── README.md
├── README_EN.md
├── awesome.md
├── commitlint.config.cjs
├── demo.html
├── eslint.config.js
├── index.html
├── package.json
├── packages
    ├── nutui-auto-import-resolver
    │   ├── README.md
    │   ├── README.zh-CN.md
    │   ├── package.json
    │   ├── src
    │   │   └── index.ts
    │   ├── tsconfig.json
    │   └── vite.config.ts
    ├── nutui-eslint-config
    │   ├── README.md
    │   ├── index.js
    │   └── package.json
    ├── nutui-playground
    │   ├── README.md
    │   ├── index.html
    │   ├── package.json
    │   ├── public
    │   │   └── style.js
    │   ├── src
    │   │   ├── App.vue
    │   │   ├── Header.vue
    │   │   ├── VersionSelect.vue
    │   │   ├── download
    │   │   │   ├── download.ts
    │   │   │   └── template
    │   │   │   │   ├── README.md
    │   │   │   │   ├── index.html
    │   │   │   │   ├── main.js
    │   │   │   │   ├── package.json
    │   │   │   │   └── vite.config.js
    │   │   ├── icons
    │   │   │   ├── Download.vue
    │   │   │   ├── GitHub.vue
    │   │   │   ├── Moon.vue
    │   │   │   ├── Share.vue
    │   │   │   └── Sun.vue
    │   │   ├── main.ts
    │   │   ├── store.ts
    │   │   └── style.css
    │   └── vite.config.ts
    ├── nutui-taro-demo
    │   ├── .editorconfig
    │   ├── .eslintrc
    │   ├── .gitignore
    │   ├── README.md
    │   ├── babel.config.cjs
    │   ├── config
    │   │   ├── dev.ts
    │   │   ├── index.ts
    │   │   └── prod.ts
    │   ├── package.json
    │   ├── project.config.json
    │   ├── project.tt.json
    │   ├── src
    │   │   ├── app.scss
    │   │   ├── app.ts
    │   │   ├── basic
    │   │   │   └── pages
    │   │   │   │   ├── button
    │   │   │   │       ├── block.vue
    │   │   │   │       ├── color.vue
    │   │   │   │       ├── disabled.vue
    │   │   │   │       ├── icon.vue
    │   │   │   │       ├── index.config.ts
    │   │   │   │       ├── index.vue
    │   │   │   │       ├── loading.vue
    │   │   │   │       ├── plain.vue
    │   │   │   │       ├── shape.vue
    │   │   │   │       ├── size.vue
    │   │   │   │       └── type.vue
    │   │   │   │   ├── cell
    │   │   │   │       ├── align.vue
    │   │   │   │       ├── basic.vue
    │   │   │   │       ├── center.vue
    │   │   │   │       ├── desc.vue
    │   │   │   │       ├── group.vue
    │   │   │   │       ├── icon.vue
    │   │   │   │       ├── index.config.ts
    │   │   │   │       ├── index.vue
    │   │   │   │       ├── link.vue
    │   │   │   │       ├── size.vue
    │   │   │   │       ├── slot.vue
    │   │   │   │       └── title.vue
    │   │   │   │   ├── configprovider
    │   │   │   │       ├── basic.vue
    │   │   │   │       ├── index.config.ts
    │   │   │   │       ├── index.vue
    │   │   │   │       └── theme.vue
    │   │   │   │   ├── icon
    │   │   │   │       ├── index.config.ts
    │   │   │   │       └── index.vue
    │   │   │   │   ├── image
    │   │   │   │       ├── index.config.ts
    │   │   │   │       └── index.vue
    │   │   │   │   ├── overlay
    │   │   │   │       ├── basic.vue
    │   │   │   │       ├── close.vue
    │   │   │   │       ├── duration.vue
    │   │   │   │       ├── index.config.ts
    │   │   │   │       ├── index.vue
    │   │   │   │       ├── lock.vue
    │   │   │   │       ├── mask.vue
    │   │   │   │       └── nest.vue
    │   │   │   │   └── popup
    │   │   │   │       ├── basic.vue
    │   │   │   │       ├── close.vue
    │   │   │   │       ├── index.config.ts
    │   │   │   │       ├── index.vue
    │   │   │   │       ├── multi.vue
    │   │   │   │       ├── position.vue
    │   │   │   │       └── round.vue
    │   │   ├── business
    │   │   │   └── pages
    │   │   │   │   ├── address
    │   │   │   │       ├── index.config.js
    │   │   │   │       └── index.vue
    │   │   │   │   ├── addresslist
    │   │   │   │       ├── index.config.js
    │   │   │   │       └── index.vue
    │   │   │   │   ├── avatarcropper
    │   │   │   │       ├── basic.vue
    │   │   │   │       ├── index.config.ts
    │   │   │   │       ├── index.vue
    │   │   │   │       ├── shape.vue
    │   │   │   │       └── toolbar.vue
    │   │   │   │   ├── barrage
    │   │   │   │       ├── basic.vue
    │   │   │   │       ├── index.config.js
    │   │   │   │       └── index.vue
    │   │   │   │   ├── card
    │   │   │   │       ├── basic.vue
    │   │   │   │       ├── footer.vue
    │   │   │   │       ├── index.config.js
    │   │   │   │       ├── index.vue
    │   │   │   │       ├── shop.vue
    │   │   │   │       └── tag.vue
    │   │   │   │   ├── category
    │   │   │   │       ├── data.js
    │   │   │   │       ├── index.config.js
    │   │   │   │       └── index.vue
    │   │   │   │   ├── comment
    │   │   │   │       ├── index.config.ts
    │   │   │   │       └── index.vue
    │   │   │   │   ├── ecard
    │   │   │   │       ├── basic.vue
    │   │   │   │       ├── index.config.ts
    │   │   │   │       └── index.vue
    │   │   │   │   ├── invoice
    │   │   │   │       ├── basic.vue
    │   │   │   │       ├── index.config.ts
    │   │   │   │       └── index.vue
    │   │   │   │   ├── signature
    │   │   │   │       ├── basic.vue
    │   │   │   │       ├── custom.vue
    │   │   │   │       ├── index.config.ts
    │   │   │   │       └── index.vue
    │   │   │   │   ├── sku
    │   │   │   │       ├── data.js
    │   │   │   │       ├── index.config.js
    │   │   │   │       └── index.vue
    │   │   │   │   └── timeselect
    │   │   │   │       ├── basic.vue
    │   │   │   │       ├── index.config.js
    │   │   │   │       ├── index.vue
    │   │   │   │       ├── multiple.vue
    │   │   │   │       └── title.vue
    │   │   ├── components
    │   │   │   ├── demo.vue
    │   │   │   └── header.vue
    │   │   ├── dentry
    │   │   │   └── pages
    │   │   │   │   ├── calendar
    │   │   │   │       ├── custom.vue
    │   │   │   │       ├── disabled.vue
    │   │   │   │       ├── index.config.ts
    │   │   │   │       ├── index.vue
    │   │   │   │       ├── multiple.vue
    │   │   │   │       ├── range-quick.vue
    │   │   │   │       ├── range.vue
    │   │   │   │       ├── single-quick.vue
    │   │   │   │       ├── single.vue
    │   │   │   │       ├── tiled.vue
    │   │   │   │       └── week.vue
    │   │   │   │   ├── calendarcard
    │   │   │   │       ├── custom-range.vue
    │   │   │   │       ├── disable.vue
    │   │   │   │       ├── first.vue
    │   │   │   │       ├── index.config.ts
    │   │   │   │       ├── index.vue
    │   │   │   │       ├── info.vue
    │   │   │   │       ├── multiple.vue
    │   │   │   │       ├── popup.vue
    │   │   │   │       ├── range.vue
    │   │   │   │       ├── ref.vue
    │   │   │   │       ├── single.vue
    │   │   │   │       └── week.vue
    │   │   │   │   ├── cascader
    │   │   │   │       ├── basic.vue
    │   │   │   │       ├── convert.vue
    │   │   │   │       ├── custom.vue
    │   │   │   │       ├── index.config.ts
    │   │   │   │       ├── index.vue
    │   │   │   │       ├── lazy.vue
    │   │   │   │       └── partial.vue
    │   │   │   │   ├── checkbox
    │   │   │   │       ├── basic.vue
    │   │   │   │       ├── disabled.vue
    │   │   │   │       ├── event.vue
    │   │   │   │       ├── group-disabled.vue
    │   │   │   │       ├── group.vue
    │   │   │   │       ├── icon.vue
    │   │   │   │       ├── indeterminate.vue
    │   │   │   │       ├── index.config.ts
    │   │   │   │       ├── index.vue
    │   │   │   │       ├── max.vue
    │   │   │   │       ├── methods.vue
    │   │   │   │       ├── methods2.vue
    │   │   │   │       ├── shape.vue
    │   │   │   │       └── size.vue
    │   │   │   │   ├── datepicker
    │   │   │   │       ├── basic.vue
    │   │   │   │       ├── date-time.vue
    │   │   │   │       ├── filter.vue
    │   │   │   │       ├── format.vue
    │   │   │   │       ├── hour-minute.vue
    │   │   │   │       ├── index.config.ts
    │   │   │   │       ├── index.vue
    │   │   │   │       ├── month-day.vue
    │   │   │   │       ├── pop.vue
    │   │   │   │       ├── step.vue
    │   │   │   │       ├── time.vue
    │   │   │   │       └── year-month.vue
    │   │   │   │   ├── form
    │   │   │   │       ├── basic.vue
    │   │   │   │       ├── dynamic.vue
    │   │   │   │       ├── index.config.ts
    │   │   │   │       ├── index.vue
    │   │   │   │       ├── star.vue
    │   │   │   │       ├── type.vue
    │   │   │   │       └── validate.vue
    │   │   │   │   ├── input
    │   │   │   │       ├── align.vue
    │   │   │   │       ├── basic.vue
    │   │   │   │       ├── border.vue
    │   │   │   │       ├── clear.vue
    │   │   │   │       ├── count.vue
    │   │   │   │       ├── event.vue
    │   │   │   │       ├── form.vue
    │   │   │   │       ├── format.vue
    │   │   │   │       ├── index.config.ts
    │   │   │   │       ├── index.vue
    │   │   │   │       ├── slot.vue
    │   │   │   │       ├── status.vue
    │   │   │   │       └── type.vue
    │   │   │   │   ├── inputnumber
    │   │   │   │       ├── basic.vue
    │   │   │   │       ├── decimal.vue
    │   │   │   │       ├── disabled.vue
    │   │   │   │       ├── icon.vue
    │   │   │   │       ├── index.config.ts
    │   │   │   │       ├── index.vue
    │   │   │   │       ├── limit.vue
    │   │   │   │       ├── readonly.vue
    │   │   │   │       ├── size.vue
    │   │   │   │       └── step.vue
    │   │   │   │   ├── numberkeyboard
    │   │   │   │       ├── basic.vue
    │   │   │   │       ├── idcard.vue
    │   │   │   │       ├── index.config.ts
    │   │   │   │       ├── index.vue
    │   │   │   │       ├── random.vue
    │   │   │   │       ├── right.vue
    │   │   │   │       ├── title.vue
    │   │   │   │       └── value.vue
    │   │   │   │   ├── picker
    │   │   │   │       ├── async.vue
    │   │   │   │       ├── basic.vue
    │   │   │   │       ├── cascader.vue
    │   │   │   │       ├── columns.vue
    │   │   │   │       ├── field.vue
    │   │   │   │       ├── index.config.ts
    │   │   │   │       ├── index.vue
    │   │   │   │       ├── popup.vue
    │   │   │   │       └── vmodel.vue
    │   │   │   │   ├── radio
    │   │   │   │       ├── basic.vue
    │   │   │   │       ├── disabled.vue
    │   │   │   │       ├── event.vue
    │   │   │   │       ├── horizontal.vue
    │   │   │   │       ├── icon-size.vue
    │   │   │   │       ├── icon.vue
    │   │   │   │       ├── index.config.ts
    │   │   │   │       ├── index.vue
    │   │   │   │       ├── position.vue
    │   │   │   │       ├── shape.vue
    │   │   │   │       └── size.vue
    │   │   │   │   ├── range
    │   │   │   │       ├── basic.vue
    │   │   │   │       ├── button.vue
    │   │   │   │       ├── color.vue
    │   │   │   │       ├── disabled.vue
    │   │   │   │       ├── hidden-range.vue
    │   │   │   │       ├── hidden-tag.vue
    │   │   │   │       ├── index.config.ts
    │   │   │   │       ├── index.vue
    │   │   │   │       ├── limit.vue
    │   │   │   │       ├── marks.vue
    │   │   │   │       ├── range.vue
    │   │   │   │       ├── step.vue
    │   │   │   │       └── vertical.vue
    │   │   │   │   ├── rate
    │   │   │   │       ├── basic.vue
    │   │   │   │       ├── color.vue
    │   │   │   │       ├── count.vue
    │   │   │   │       ├── disabled.vue
    │   │   │   │       ├── event.vue
    │   │   │   │       ├── half.vue
    │   │   │   │       ├── icon.vue
    │   │   │   │       ├── index.config.ts
    │   │   │   │       ├── index.vue
    │   │   │   │       ├── read.vue
    │   │   │   │       └── size.vue
    │   │   │   │   ├── searchbar
    │   │   │   │       ├── all.vue
    │   │   │   │       ├── background.vue
    │   │   │   │       ├── basic.vue
    │   │   │   │       ├── clear.vue
    │   │   │   │       ├── focus.vue
    │   │   │   │       ├── index.config.ts
    │   │   │   │       ├── index.vue
    │   │   │   │       ├── left.vue
    │   │   │   │       ├── right.vue
    │   │   │   │       └── shape.vue
    │   │   │   │   ├── shortpassword
    │   │   │   │       ├── basic.vue
    │   │   │   │       ├── error.vue
    │   │   │   │       ├── forget.vue
    │   │   │   │       ├── index.config.ts
    │   │   │   │       ├── index.vue
    │   │   │   │       └── length.vue
    │   │   │   │   ├── textarea
    │   │   │   │       ├── basic.vue
    │   │   │   │       ├── focus.vue
    │   │   │   │       ├── index.config.ts
    │   │   │   │       ├── index.vue
    │   │   │   │       ├── limit.vue
    │   │   │   │       ├── row.vue
    │   │   │   │       └── status.vue
    │   │   │   │   └── uploader
    │   │   │   │       ├── index.config.ts
    │   │   │   │       └── index.vue
    │   │   ├── exhibition
    │   │   │   └── pages
    │   │   │   │   ├── animate
    │   │   │   │       ├── click.vue
    │   │   │   │       ├── index.config.ts
    │   │   │   │       ├── index.vue
    │   │   │   │       ├── loop.vue
    │   │   │   │       └── show.vue
    │   │   │   │   ├── avatar
    │   │   │   │       ├── badge.vue
    │   │   │   │       ├── basic.vue
    │   │   │   │       ├── click.vue
    │   │   │   │       ├── color.vue
    │   │   │   │       ├── count.vue
    │   │   │   │       ├── group.vue
    │   │   │   │       ├── index.config.ts
    │   │   │   │       ├── index.vue
    │   │   │   │       ├── shape.vue
    │   │   │   │       ├── size.vue
    │   │   │   │       └── zindex.vue
    │   │   │   │   ├── badge
    │   │   │   │       ├── basic.vue
    │   │   │   │       ├── color.vue
    │   │   │   │       ├── icon.vue
    │   │   │   │       ├── index.config.ts
    │   │   │   │       ├── index.vue
    │   │   │   │       ├── max.vue
    │   │   │   │       └── position.vue
    │   │   │   │   ├── circleprogress
    │   │   │   │       ├── basic.vue
    │   │   │   │       ├── change.vue
    │   │   │   │       ├── color.vue
    │   │   │   │       ├── content.vue
    │   │   │   │       ├── index.config.ts
    │   │   │   │       ├── index.vue
    │   │   │   │       ├── size.vue
    │   │   │   │       └── width.vue
    │   │   │   │   ├── collapse
    │   │   │   │       ├── accordion.vue
    │   │   │   │       ├── basic.vue
    │   │   │   │       ├── custom.vue
    │   │   │   │       ├── data.vue
    │   │   │   │       ├── disabled.vue
    │   │   │   │       ├── extra.vue
    │   │   │   │       ├── index.config.ts
    │   │   │   │       └── index.vue
    │   │   │   │   ├── countdown
    │   │   │   │       ├── basic.vue
    │   │   │   │       ├── control.vue
    │   │   │   │       ├── custom.vue
    │   │   │   │       ├── format.vue
    │   │   │   │       ├── index.config.ts
    │   │   │   │       ├── index.vue
    │   │   │   │       ├── millisecond.vue
    │   │   │   │       └── ref.vue
    │   │   │   │   ├── countup
    │   │   │   │       ├── basic.vue
    │   │   │   │       ├── custom.vue
    │   │   │   │       ├── index.config.ts
    │   │   │   │       ├── index.vue
    │   │   │   │       └── scroll.vue
    │   │   │   │   ├── ellipsis
    │   │   │   │       ├── end.vue
    │   │   │   │       ├── expand.vue
    │   │   │   │       ├── index.config.ts
    │   │   │   │       ├── index.vue
    │   │   │   │       ├── middle.vue
    │   │   │   │       ├── row.vue
    │   │   │   │       └── start.vue
    │   │   │   │   ├── empty
    │   │   │   │       ├── basic.vue
    │   │   │   │       ├── bottom.vue
    │   │   │   │       ├── custom.vue
    │   │   │   │       ├── index.config.ts
    │   │   │   │       ├── index.vue
    │   │   │   │       └── type.vue
    │   │   │   │   ├── imagepreview
    │   │   │   │       ├── index.config.ts
    │   │   │   │       └── index.vue
    │   │   │   │   ├── list
    │   │   │   │       ├── basic.vue
    │   │   │   │       ├── index.config.ts
    │   │   │   │       └── index.vue
    │   │   │   │   ├── noticebar
    │   │   │   │       ├── basic.vue
    │   │   │   │       ├── close.vue
    │   │   │   │       ├── content.vue
    │   │   │   │       ├── custom.vue
    │   │   │   │       ├── index.config.ts
    │   │   │   │       ├── index.vue
    │   │   │   │       ├── right.vue
    │   │   │   │       ├── scrollable.vue
    │   │   │   │       ├── vertical-content.vue
    │   │   │   │       ├── vertical.vue
    │   │   │   │       └── wrap.vue
    │   │   │   │   ├── popover
    │   │   │   │       ├── basic.vue
    │   │   │   │       ├── color.vue
    │   │   │   │       ├── content.vue
    │   │   │   │       ├── index.config.ts
    │   │   │   │       ├── index.vue
    │   │   │   │       ├── option.vue
    │   │   │   │       ├── position.vue
    │   │   │   │       └── target.vue
    │   │   │   │   ├── price
    │   │   │   │       ├── decimal.vue
    │   │   │   │       ├── index.config.ts
    │   │   │   │       ├── index.vue
    │   │   │   │       ├── position.vue
    │   │   │   │       ├── size.vue
    │   │   │   │       ├── symbol.vue
    │   │   │   │       ├── thousands.vue
    │   │   │   │       └── through.vue
    │   │   │   │   ├── progress
    │   │   │   │       ├── basic.vue
    │   │   │   │       ├── change.vue
    │   │   │   │       ├── color.vue
    │   │   │   │       ├── content.vue
    │   │   │   │       ├── index.config.ts
    │   │   │   │       ├── index.vue
    │   │   │   │       ├── inside.vue
    │   │   │   │       ├── size.vue
    │   │   │   │       ├── status.vue
    │   │   │   │       └── text.vue
    │   │   │   │   ├── skeleton
    │   │   │   │       ├── avatar.vue
    │   │   │   │       ├── basic.vue
    │   │   │   │       ├── index.config.ts
    │   │   │   │       ├── index.vue
    │   │   │   │       ├── picture.vue
    │   │   │   │       ├── round.vue
    │   │   │   │       ├── row.vue
    │   │   │   │       └── sub.vue
    │   │   │   │   ├── steps
    │   │   │   │       ├── basic.vue
    │   │   │   │       ├── custom.vue
    │   │   │   │       ├── desc.vue
    │   │   │   │       ├── dot.vue
    │   │   │   │       ├── index.config.ts
    │   │   │   │       ├── index.vue
    │   │   │   │       ├── vertical-dot.vue
    │   │   │   │       └── vertical.vue
    │   │   │   │   ├── swiper
    │   │   │   │       ├── async.vue
    │   │   │   │       ├── basic.vue
    │   │   │   │       ├── dynamic.vue
    │   │   │   │       ├── index.config.ts
    │   │   │   │       ├── index.vue
    │   │   │   │       ├── methods.vue
    │   │   │   │       ├── page.vue
    │   │   │   │       ├── vertical.vue
    │   │   │   │       └── width.vue
    │   │   │   │   ├── table
    │   │   │   │       ├── align.vue
    │   │   │   │       ├── async.vue
    │   │   │   │       ├── basic.vue
    │   │   │   │       ├── border.vue
    │   │   │   │       ├── custom.vue
    │   │   │   │       ├── index.config.ts
    │   │   │   │       ├── index.vue
    │   │   │   │       ├── nodata.vue
    │   │   │   │       ├── sort.vue
    │   │   │   │       ├── striped.vue
    │   │   │   │       └── summary.vue
    │   │   │   │   ├── tag
    │   │   │   │       ├── basic.vue
    │   │   │   │       ├── color.vue
    │   │   │   │       ├── custom.vue
    │   │   │   │       ├── index.config.ts
    │   │   │   │       └── index.vue
    │   │   │   │   ├── tour
    │   │   │   │       ├── basic.vue
    │   │   │   │       ├── content.vue
    │   │   │   │       ├── custom.vue
    │   │   │   │       ├── index.config.ts
    │   │   │   │       ├── index.vue
    │   │   │   │       ├── position.vue
    │   │   │   │       └── step.vue
    │   │   │   │   ├── trendarrow
    │   │   │   │       ├── basic.vue
    │   │   │   │       ├── color.vue
    │   │   │   │       ├── digits.vue
    │   │   │   │       ├── icon.vue
    │   │   │   │       ├── index.config.ts
    │   │   │   │       ├── index.vue
    │   │   │   │       ├── left.vue
    │   │   │   │       ├── sign.vue
    │   │   │   │       └── zero.vue
    │   │   │   │   └── watermark
    │   │   │   │       ├── basic.vue
    │   │   │   │       ├── index.config.ts
    │   │   │   │       ├── index.vue
    │   │   │   │       ├── multi.vue
    │   │   │   │       └── part.vue
    │   │   ├── feedback
    │   │   │   └── pages
    │   │   │   │   ├── actionsheet
    │   │   │   │       ├── basic.vue
    │   │   │   │       ├── content.vue
    │   │   │   │       ├── custom.vue
    │   │   │   │       ├── index.config.ts
    │   │   │   │       ├── index.vue
    │   │   │   │       └── status.vue
    │   │   │   │   ├── backtop
    │   │   │   │       ├── basic.vue
    │   │   │   │       ├── index.config.ts
    │   │   │   │       └── index.vue
    │   │   │   │   ├── dialog
    │   │   │   │       ├── index.config.ts
    │   │   │   │       └── index.vue
    │   │   │   │   ├── drag
    │   │   │   │       ├── basic.vue
    │   │   │   │       ├── direction.vue
    │   │   │   │       ├── index.config.ts
    │   │   │   │       └── index.vue
    │   │   │   │   ├── infiniteloading
    │   │   │   │       ├── index.config.js
    │   │   │   │       └── index.vue
    │   │   │   │   ├── notify
    │   │   │   │       ├── index.config.ts
    │   │   │   │       └── index.vue
    │   │   │   │   ├── swipe
    │   │   │   │       ├── basic.vue
    │   │   │   │       ├── content.vue
    │   │   │   │       ├── direction.vue
    │   │   │   │       ├── disabled.vue
    │   │   │   │       ├── index.config.ts
    │   │   │   │       ├── index.vue
    │   │   │   │       ├── lock.vue
    │   │   │   │       └── methods.vue
    │   │   │   │   ├── switch
    │   │   │   │       ├── async.vue
    │   │   │   │       ├── basic.vue
    │   │   │   │       ├── color.vue
    │   │   │   │       ├── disabled.vue
    │   │   │   │       ├── event.vue
    │   │   │   │       ├── icon.vue
    │   │   │   │       ├── index.config.ts
    │   │   │   │       ├── index.vue
    │   │   │   │       ├── loading.vue
    │   │   │   │       └── text.vue
    │   │   │   │   └── toast
    │   │   │   │       ├── index.config.ts
    │   │   │   │       └── index.vue
    │   │   ├── index.html
    │   │   ├── layout
    │   │   │   └── pages
    │   │   │   │   ├── divider
    │   │   │   │       ├── basic.vue
    │   │   │   │       ├── custom.vue
    │   │   │   │       ├── dashed.vue
    │   │   │   │       ├── index.config.ts
    │   │   │   │       ├── index.vue
    │   │   │   │       ├── position.vue
    │   │   │   │       ├── text.vue
    │   │   │   │       └── vertical.vue
    │   │   │   │   ├── grid
    │   │   │   │       ├── basic.vue
    │   │   │   │       ├── column.vue
    │   │   │   │       ├── content.vue
    │   │   │   │       ├── gutter.vue
    │   │   │   │       ├── horizontal.vue
    │   │   │   │       ├── index.config.ts
    │   │   │   │       ├── index.vue
    │   │   │   │       ├── reverse.vue
    │   │   │   │       └── square.vue
    │   │   │   │   ├── layout
    │   │   │   │       ├── basic.vue
    │   │   │   │       ├── flex.vue
    │   │   │   │       ├── gap.vue
    │   │   │   │       ├── index.config.ts
    │   │   │   │       └── index.vue
    │   │   │   │   ├── space
    │   │   │   │       ├── basic.vue
    │   │   │   │       ├── direction.vue
    │   │   │   │       ├── gutter.vue
    │   │   │   │       ├── index.config.ts
    │   │   │   │       ├── index.vue
    │   │   │   │       └── wrap.vue
    │   │   │   │   └── sticky
    │   │   │   │       ├── basic.vue
    │   │   │   │       ├── index.config.ts
    │   │   │   │       ├── index.vue
    │   │   │   │       └── top.vue
    │   │   ├── nav
    │   │   │   └── pages
    │   │   │   │   ├── elevator
    │   │   │   │       ├── basic.vue
    │   │   │   │       ├── content.vue
    │   │   │   │       ├── custom.vue
    │   │   │   │       ├── index.config.ts
    │   │   │   │       ├── index.vue
    │   │   │   │       └── sticky.vue
    │   │   │   │   ├── fixednav
    │   │   │   │       ├── basic.vue
    │   │   │   │       ├── custom.vue
    │   │   │   │       ├── index.config.ts
    │   │   │   │       ├── index.vue
    │   │   │   │       ├── left.vue
    │   │   │   │       └── overlay.vue
    │   │   │   │   ├── indicator
    │   │   │   │       ├── basic.vue
    │   │   │   │       ├── block.vue
    │   │   │   │       ├── index.config.ts
    │   │   │   │       ├── index.vue
    │   │   │   │       └── zero.vue
    │   │   │   │   ├── menu
    │   │   │   │       ├── basic.vue
    │   │   │   │       ├── col.vue
    │   │   │   │       ├── color.vue
    │   │   │   │       ├── custom.vue
    │   │   │   │       ├── disabled.vue
    │   │   │   │       ├── icon.vue
    │   │   │   │       ├── index.config.ts
    │   │   │   │       ├── index.vue
    │   │   │   │       └── up.vue
    │   │   │   │   ├── navbar
    │   │   │   │       ├── basic.vue
    │   │   │   │       ├── index.config.ts
    │   │   │   │       ├── index.vue
    │   │   │   │       ├── left.vue
    │   │   │   │       ├── right.vue
    │   │   │   │       └── title.vue
    │   │   │   │   ├── pagination
    │   │   │   │       ├── basic.vue
    │   │   │   │       ├── custom.vue
    │   │   │   │       ├── ellipse.vue
    │   │   │   │       ├── index.config.ts
    │   │   │   │       ├── index.vue
    │   │   │   │       └── simple.vue
    │   │   │   │   ├── sidenavbar
    │   │   │   │       ├── basic.vue
    │   │   │   │       ├── index.config.ts
    │   │   │   │       ├── index.vue
    │   │   │   │       ├── nest.vue
    │   │   │   │       └── popup.vue
    │   │   │   │   ├── tabbar
    │   │   │   │       ├── badge.vue
    │   │   │   │       ├── basic.vue
    │   │   │   │       ├── before-switch.vue
    │   │   │   │       ├── check.vue
    │   │   │   │       ├── color.vue
    │   │   │   │       ├── fixed.vue
    │   │   │   │       ├── icon.vue
    │   │   │   │       ├── index.config.ts
    │   │   │   │       ├── index.vue
    │   │   │   │       ├── name.vue
    │   │   │   │       └── quantity.vue
    │   │   │   │   └── tabs
    │   │   │   │       ├── animated-time.vue
    │   │   │   │       ├── auto-height.vue
    │   │   │   │       ├── basic.vue
    │   │   │   │       ├── custom.vue
    │   │   │   │       ├── index.config.ts
    │   │   │   │       ├── index.vue
    │   │   │   │       ├── left-align.vue
    │   │   │   │       ├── scroll.vue
    │   │   │   │       ├── size.vue
    │   │   │   │       ├── smile.vue
    │   │   │   │       ├── swipeable.vue
    │   │   │   │       ├── vertical-smile.vue
    │   │   │   │       └── vertical.vue
    │   │   ├── pages
    │   │   │   └── index
    │   │   │   │   ├── index.config.ts
    │   │   │   │   └── index.vue
    │   │   └── utils
    │   │   │   ├── index.ts
    │   │   │   └── useTranslate.ts
    │   ├── tsconfig.json
    │   └── types
    │   │   ├── global.d.ts
    │   │   └── vue.d.ts
    ├── nutui-touch-emulator
    │   ├── README.md
    │   ├── build.js
    │   ├── package.json
    │   └── src
    │   │   └── index.js
    ├── nutui-vite-plugins
    │   ├── package.json
    │   ├── src
    │   │   ├── index.ts
    │   │   └── markdown.ts
    │   └── tsup.config.ts
    └── nutui-vscode-extension
    │   ├── .gitignore
    │   ├── .vscodeignore
    │   ├── CHANGELOG.md
    │   ├── LICENSE
    │   ├── README.md
    │   ├── package.json
    │   ├── scripts
    │       └── createComponentMap.js
    │   ├── src
    │       ├── componentDesc.ts
    │       ├── componentMap.ts
    │       ├── extension.ts
    │       ├── nutui.png
    │       └── utils.ts
    │   ├── tsconfig.json
    │   └── webpack.config.js
├── pnpm-lock.yaml
├── pnpm-workspace.yaml
├── publish
    ├── nutui-taro
    │   ├── CHANGELOG.md
    │   ├── LICENSE
    │   ├── README.md
    │   └── package.json
    └── nutui
    │   ├── CHANGELOG.md
    │   ├── LICENSE
    │   ├── README.md
    │   └── package.json
├── scripts
    ├── copy-dist.cjs
    ├── copyh5.cjs
    ├── copymd.cjs
    ├── copytaro.cjs
    ├── createAttributes.cjs
    ├── generate-changelog.cjs
    ├── generate-nutui-taro-vue.cjs
    ├── generate-nutui.cjs
    ├── generate-script-setup.cjs
    ├── generate-taro-route.cjs
    ├── generate-themes.cjs
    ├── generate-types-taro.cjs
    ├── generate-types.cjs
    ├── generate-unplugin-deps.cjs
    └── verifymail.js
├── src
    ├── config.json
    ├── packages
    │   ├── __VUE
    │   │   ├── actionsheet
    │   │   │   ├── __tests__
    │   │   │   │   ├── __snapshots__
    │   │   │   │   │   └── index.spec.ts.snap
    │   │   │   │   └── index.spec.ts
    │   │   │   ├── demo
    │   │   │   │   ├── basic.vue
    │   │   │   │   ├── content.vue
    │   │   │   │   ├── custom.vue
    │   │   │   │   ├── index.vue
    │   │   │   │   └── status.vue
    │   │   │   ├── doc.en-US.md
    │   │   │   ├── doc.md
    │   │   │   ├── doc.taro.md
    │   │   │   ├── index.scss
    │   │   │   ├── index.taro.vue
    │   │   │   └── index.vue
    │   │   ├── address
    │   │   │   ├── __tests__
    │   │   │   │   └── address.spec.ts
    │   │   │   ├── address-list.ts
    │   │   │   ├── demo.vue
    │   │   │   ├── doc.en-US.md
    │   │   │   ├── doc.md
    │   │   │   ├── doc.taro.md
    │   │   │   ├── index.scss
    │   │   │   ├── index.taro.vue
    │   │   │   ├── index.vue
    │   │   │   └── type.ts
    │   │   ├── addresslist
    │   │   │   ├── components
    │   │   │   │   ├── GeneralShell.taro.vue
    │   │   │   │   ├── GeneralShell.vue
    │   │   │   │   ├── ItemContents.taro.vue
    │   │   │   │   └── ItemContents.vue
    │   │   │   ├── demo.vue
    │   │   │   ├── doc.en-US.md
    │   │   │   ├── doc.md
    │   │   │   ├── doc.taro.md
    │   │   │   ├── index.scss
    │   │   │   ├── index.taro.vue
    │   │   │   └── index.vue
    │   │   ├── animate
    │   │   │   ├── __tests__
    │   │   │   │   └── animate.spec.ts
    │   │   │   ├── animate.taro.vue
    │   │   │   ├── animate.vue
    │   │   │   ├── demo
    │   │   │   │   ├── click.vue
    │   │   │   │   ├── index.vue
    │   │   │   │   ├── loop.vue
    │   │   │   │   └── show.vue
    │   │   │   ├── doc.en-US.md
    │   │   │   ├── doc.md
    │   │   │   ├── doc.taro.md
    │   │   │   ├── index.scss
    │   │   │   ├── index.taro.ts
    │   │   │   ├── index.ts
    │   │   │   └── types.ts
    │   │   ├── audio
    │   │   │   ├── __tests__
    │   │   │   │   └── audio.spec.ts
    │   │   │   ├── demo
    │   │   │   │   ├── basic.vue
    │   │   │   │   ├── control.vue
    │   │   │   │   ├── index.vue
    │   │   │   │   ├── play.vue
    │   │   │   │   └── progress.vue
    │   │   │   ├── doc.en-US.md
    │   │   │   ├── doc.md
    │   │   │   ├── doc.taro.md
    │   │   │   ├── index.scss
    │   │   │   ├── index.vue
    │   │   │   └── types.ts
    │   │   ├── audiooperate
    │   │   │   ├── doc.md
    │   │   │   ├── index.scss
    │   │   │   └── index.vue
    │   │   ├── avatar
    │   │   │   ├── __tests__
    │   │   │   │   ├── __snapshots__
    │   │   │   │   │   └── avatar.spec.tsx.snap
    │   │   │   │   └── avatar.spec.tsx
    │   │   │   ├── demo
    │   │   │   │   ├── badge.vue
    │   │   │   │   ├── basic.vue
    │   │   │   │   ├── click.vue
    │   │   │   │   ├── color.vue
    │   │   │   │   ├── count.vue
    │   │   │   │   ├── group.vue
    │   │   │   │   ├── index.vue
    │   │   │   │   ├── shape.vue
    │   │   │   │   ├── size.vue
    │   │   │   │   └── zindex.vue
    │   │   │   ├── doc.en-US.md
    │   │   │   ├── doc.md
    │   │   │   ├── doc.taro.md
    │   │   │   ├── index.scss
    │   │   │   ├── index.taro.vue
    │   │   │   ├── index.vue
    │   │   │   └── types.ts
    │   │   ├── avatarcropper
    │   │   │   ├── __tests__
    │   │   │   │   ├── __snapshots__
    │   │   │   │   │   └── avatarcropper.spec.ts.snap
    │   │   │   │   └── avatarcropper.spec.ts
    │   │   │   ├── demo
    │   │   │   │   ├── basic.vue
    │   │   │   │   ├── index.vue
    │   │   │   │   ├── shape.vue
    │   │   │   │   └── toolbar.vue
    │   │   │   ├── doc.en-US.md
    │   │   │   ├── doc.md
    │   │   │   ├── doc.taro.md
    │   │   │   ├── index.scss
    │   │   │   ├── index.taro.vue
    │   │   │   ├── index.vue
    │   │   │   └── types.ts
    │   │   ├── avatargroup
    │   │   │   ├── index.scss
    │   │   │   ├── index.taro.vue
    │   │   │   └── index.vue
    │   │   ├── backtop
    │   │   │   ├── __tests__
    │   │   │   │   └── backtop.spec.ts
    │   │   │   ├── backtop.taro.vue
    │   │   │   ├── backtop.vue
    │   │   │   ├── demo
    │   │   │   │   ├── basic.vue
    │   │   │   │   ├── custom.vue
    │   │   │   │   ├── distance.vue
    │   │   │   │   └── index.vue
    │   │   │   ├── doc.en-US.md
    │   │   │   ├── doc.md
    │   │   │   ├── doc.taro.md
    │   │   │   ├── index.scss
    │   │   │   ├── index.taro.ts
    │   │   │   └── index.ts
    │   │   ├── badge
    │   │   │   ├── __tests__
    │   │   │   │   ├── __snapshots__
    │   │   │   │   │   └── badge.spec.ts.snap
    │   │   │   │   └── badge.spec.ts
    │   │   │   ├── badge.taro.vue
    │   │   │   ├── badge.vue
    │   │   │   ├── demo
    │   │   │   │   ├── basic.vue
    │   │   │   │   ├── color.vue
    │   │   │   │   ├── icon.vue
    │   │   │   │   ├── index.vue
    │   │   │   │   ├── max.vue
    │   │   │   │   └── position.vue
    │   │   │   ├── doc.en-US.md
    │   │   │   ├── doc.md
    │   │   │   ├── doc.taro.md
    │   │   │   ├── index.scss
    │   │   │   ├── index.taro.ts
    │   │   │   └── index.ts
    │   │   ├── barrage
    │   │   │   ├── __tests__
    │   │   │   │   └── barrage.spec.tsx
    │   │   │   ├── demo
    │   │   │   │   ├── basic.vue
    │   │   │   │   └── index.vue
    │   │   │   ├── doc.en-US.md
    │   │   │   ├── doc.md
    │   │   │   ├── doc.taro.md
    │   │   │   ├── index.scss
    │   │   │   ├── index.taro.vue
    │   │   │   └── index.vue
    │   │   ├── button
    │   │   │   ├── __tests__
    │   │   │   │   └── button.spec.ts
    │   │   │   ├── button.taro.vue
    │   │   │   ├── button.vue
    │   │   │   ├── demo
    │   │   │   │   ├── block.vue
    │   │   │   │   ├── color.vue
    │   │   │   │   ├── disabled.vue
    │   │   │   │   ├── icon.vue
    │   │   │   │   ├── index.vue
    │   │   │   │   ├── loading.vue
    │   │   │   │   ├── plain.vue
    │   │   │   │   ├── shape.vue
    │   │   │   │   ├── size.vue
    │   │   │   │   └── type.vue
    │   │   │   ├── doc.en-US.md
    │   │   │   ├── doc.md
    │   │   │   ├── doc.taro.md
    │   │   │   ├── index.scss
    │   │   │   ├── index.taro.ts
    │   │   │   ├── index.ts
    │   │   │   └── types.ts
    │   │   ├── calendar
    │   │   │   ├── __tests__
    │   │   │   │   ├── __snapshots__
    │   │   │   │   │   └── calendar.spec.tsx.snap
    │   │   │   │   └── calendar.spec.tsx
    │   │   │   ├── demo
    │   │   │   │   ├── custom.vue
    │   │   │   │   ├── disabled.vue
    │   │   │   │   ├── index.vue
    │   │   │   │   ├── multiple.vue
    │   │   │   │   ├── range-quick.vue
    │   │   │   │   ├── range.vue
    │   │   │   │   ├── single-quick.vue
    │   │   │   │   ├── single.vue
    │   │   │   │   ├── tiled.vue
    │   │   │   │   └── week.vue
    │   │   │   ├── doc.en-US.md
    │   │   │   ├── doc.md
    │   │   │   ├── doc.taro.md
    │   │   │   ├── index.scss
    │   │   │   ├── index.taro.vue
    │   │   │   └── index.vue
    │   │   ├── calendarcard
    │   │   │   ├── __tests__
    │   │   │   │   └── calendarcard.spec.tsx
    │   │   │   ├── calendar-card.taro.vue
    │   │   │   ├── calendar-card.vue
    │   │   │   ├── demo
    │   │   │   │   ├── custom-range.vue
    │   │   │   │   ├── disable.vue
    │   │   │   │   ├── first.vue
    │   │   │   │   ├── index.vue
    │   │   │   │   ├── info.vue
    │   │   │   │   ├── multiple.vue
    │   │   │   │   ├── popup.vue
    │   │   │   │   ├── range.vue
    │   │   │   │   ├── ref.vue
    │   │   │   │   ├── single.vue
    │   │   │   │   └── week.vue
    │   │   │   ├── doc.en-US.md
    │   │   │   ├── doc.md
    │   │   │   ├── doc.taro.md
    │   │   │   ├── icon.taro.ts
    │   │   │   ├── icon.ts
    │   │   │   ├── index.scss
    │   │   │   ├── index.taro.ts
    │   │   │   ├── index.ts
    │   │   │   ├── types.ts
    │   │   │   └── utils.ts
    │   │   ├── calendaritem
    │   │   │   ├── index.taro.vue
    │   │   │   ├── index.vue
    │   │   │   └── type.ts
    │   │   ├── card
    │   │   │   ├── __tests__
    │   │   │   │   ├── __snapshots__
    │   │   │   │   │   └── index.spec.ts.snap
    │   │   │   │   └── index.spec.ts
    │   │   │   ├── demo
    │   │   │   │   ├── basic.vue
    │   │   │   │   ├── footer.vue
    │   │   │   │   ├── index.vue
    │   │   │   │   ├── shop.vue
    │   │   │   │   └── tag.vue
    │   │   │   ├── doc.en-US.md
    │   │   │   ├── doc.md
    │   │   │   ├── doc.taro.md
    │   │   │   ├── index.scss
    │   │   │   ├── index.taro.vue
    │   │   │   └── index.vue
    │   │   ├── cascader
    │   │   │   ├── __tests__
    │   │   │   │   ├── __snapshots__
    │   │   │   │   │   └── cascader.spec.ts.snap
    │   │   │   │   └── cascader.spec.ts
    │   │   │   ├── cascader-item.taro.vue
    │   │   │   ├── cascader-item.vue
    │   │   │   ├── demo
    │   │   │   │   ├── basic.vue
    │   │   │   │   ├── convert.vue
    │   │   │   │   ├── custom.vue
    │   │   │   │   ├── index.vue
    │   │   │   │   ├── lazy.vue
    │   │   │   │   └── partial.vue
    │   │   │   ├── doc.en-US.md
    │   │   │   ├── doc.md
    │   │   │   ├── doc.taro.md
    │   │   │   ├── helper.ts
    │   │   │   ├── index.scss
    │   │   │   ├── index.taro.vue
    │   │   │   ├── index.vue
    │   │   │   ├── tree.ts
    │   │   │   └── types.ts
    │   │   ├── category
    │   │   │   ├── demo.vue
    │   │   │   ├── doc.en-US.md
    │   │   │   ├── doc.md
    │   │   │   ├── doc.taro.md
    │   │   │   ├── index.scss
    │   │   │   ├── index.taro.vue
    │   │   │   └── index.vue
    │   │   ├── categorypane
    │   │   │   ├── index.scss
    │   │   │   ├── index.taro.vue
    │   │   │   └── index.vue
    │   │   ├── cell
    │   │   │   ├── __tests__
    │   │   │   │   ├── __snapshots__
    │   │   │   │   │   └── cell.spec.ts.snap
    │   │   │   │   └── cell.spec.ts
    │   │   │   ├── cell.taro.vue
    │   │   │   ├── cell.vue
    │   │   │   ├── demo
    │   │   │   │   ├── align.vue
    │   │   │   │   ├── basic.vue
    │   │   │   │   ├── center.vue
    │   │   │   │   ├── desc.vue
    │   │   │   │   ├── group.vue
    │   │   │   │   ├── icon.vue
    │   │   │   │   ├── index.vue
    │   │   │   │   ├── link.vue
    │   │   │   │   ├── size.vue
    │   │   │   │   ├── slot.vue
    │   │   │   │   └── title.vue
    │   │   │   ├── doc.en-US.md
    │   │   │   ├── doc.md
    │   │   │   ├── doc.taro.md
    │   │   │   ├── index.scss
    │   │   │   ├── index.taro.ts
    │   │   │   ├── index.ts
    │   │   │   └── types.ts
    │   │   ├── cellgroup
    │   │   │   ├── __tests__
    │   │   │   │   ├── __snapshots__
    │   │   │   │   │   └── index.spec.ts.snap
    │   │   │   │   └── index.spec.ts
    │   │   │   ├── cell-group.taro.vue
    │   │   │   ├── cell-group.vue
    │   │   │   ├── index.scss
    │   │   │   ├── index.taro.ts
    │   │   │   └── index.ts
    │   │   ├── checkbox
    │   │   │   ├── __tests__
    │   │   │   │   ├── __snapshots__
    │   │   │   │   │   └── checkbox.spec.tsx.snap
    │   │   │   │   └── checkbox.spec.tsx
    │   │   │   ├── demo
    │   │   │   │   ├── basic.vue
    │   │   │   │   ├── disabled.vue
    │   │   │   │   ├── event.vue
    │   │   │   │   ├── group-disabled.vue
    │   │   │   │   ├── group.vue
    │   │   │   │   ├── icon.vue
    │   │   │   │   ├── indeterminate.vue
    │   │   │   │   ├── index.vue
    │   │   │   │   ├── max.vue
    │   │   │   │   ├── methods.vue
    │   │   │   │   ├── methods2.vue
    │   │   │   │   ├── shape.vue
    │   │   │   │   └── size.vue
    │   │   │   ├── doc.en-US.md
    │   │   │   ├── doc.md
    │   │   │   ├── doc.taro.md
    │   │   │   ├── index.scss
    │   │   │   ├── index.taro.vue
    │   │   │   ├── index.vue
    │   │   │   └── types.ts
    │   │   ├── checkboxgroup
    │   │   │   ├── __tests__
    │   │   │   │   └── checkboxgroup.spec.tsx
    │   │   │   ├── index.scss
    │   │   │   ├── index.taro.vue
    │   │   │   └── index.vue
    │   │   ├── circleprogress
    │   │   │   ├── __tests__
    │   │   │   │   └── index.spec.ts
    │   │   │   ├── circle-progress.taro.vue
    │   │   │   ├── circle-progress.vue
    │   │   │   ├── demo
    │   │   │   │   ├── basic.vue
    │   │   │   │   ├── change.vue
    │   │   │   │   ├── color.vue
    │   │   │   │   ├── content.vue
    │   │   │   │   ├── index.vue
    │   │   │   │   ├── size.vue
    │   │   │   │   └── width.vue
    │   │   │   ├── doc.en-US.md
    │   │   │   ├── doc.md
    │   │   │   ├── doc.taro.md
    │   │   │   ├── index.scss
    │   │   │   ├── index.taro.ts
    │   │   │   ├── index.ts
    │   │   │   └── types.ts
    │   │   ├── col
    │   │   │   ├── __tests__
    │   │   │   │   ├── __snapshots__
    │   │   │   │   │   └── index.spec.ts.snap
    │   │   │   │   └── index.spec.ts
    │   │   │   ├── col.taro.vue
    │   │   │   ├── col.vue
    │   │   │   ├── index.scss
    │   │   │   ├── index.taro.ts
    │   │   │   └── index.ts
    │   │   ├── collapse
    │   │   │   ├── __tests__
    │   │   │   │   ├── __snapshots__
    │   │   │   │   │   └── collapse.spec.tsx.snap
    │   │   │   │   └── collapse.spec.tsx
    │   │   │   ├── collapse.taro.vue
    │   │   │   ├── collapse.vue
    │   │   │   ├── demo
    │   │   │   │   ├── accordion.vue
    │   │   │   │   ├── basic.vue
    │   │   │   │   ├── custom.vue
    │   │   │   │   ├── data.vue
    │   │   │   │   ├── disabled.vue
    │   │   │   │   ├── extra.vue
    │   │   │   │   └── index.vue
    │   │   │   ├── doc.en-US.md
    │   │   │   ├── doc.md
    │   │   │   ├── doc.taro.md
    │   │   │   ├── index.scss
    │   │   │   ├── index.taro.ts
    │   │   │   ├── index.ts
    │   │   │   └── types.ts
    │   │   ├── collapseitem
    │   │   │   ├── collapse-item.taro.vue
    │   │   │   ├── collapse-item.vue
    │   │   │   ├── index.scss
    │   │   │   ├── index.taro.ts
    │   │   │   └── index.ts
    │   │   ├── comment
    │   │   │   ├── __tests__
    │   │   │   │   └── comment.spec.ts
    │   │   │   ├── comment_data.json
    │   │   │   ├── components
    │   │   │   │   ├── CmtBottom.taro.vue
    │   │   │   │   ├── CmtBottom.vue
    │   │   │   │   ├── CmtHeader.taro.vue
    │   │   │   │   ├── CmtHeader.vue
    │   │   │   │   ├── CmtImages.taro.vue
    │   │   │   │   └── CmtImages.vue
    │   │   │   ├── demo.vue
    │   │   │   ├── doc.en-US.md
    │   │   │   ├── doc.md
    │   │   │   ├── doc.taro.md
    │   │   │   ├── index.scss
    │   │   │   ├── index.taro.vue
    │   │   │   ├── index.vue
    │   │   │   └── type.ts
    │   │   ├── configprovider
    │   │   │   ├── __tests__
    │   │   │   │   ├── __snapshots__
    │   │   │   │   │   └── configprovider.spec.ts.snap
    │   │   │   │   └── configprovider.spec.ts
    │   │   │   ├── common.ts
    │   │   │   ├── demo
    │   │   │   │   ├── basic.vue
    │   │   │   │   ├── index.vue
    │   │   │   │   └── theme.vue
    │   │   │   ├── doc.en-US.md
    │   │   │   ├── doc.md
    │   │   │   ├── doc.taro.md
    │   │   │   ├── index.scss
    │   │   │   ├── index.taro.vue
    │   │   │   └── index.vue
    │   │   ├── countdown
    │   │   │   ├── __tests__
    │   │   │   │   └── countdown.spec.tsx
    │   │   │   ├── countdown.taro.vue
    │   │   │   ├── countdown.vue
    │   │   │   ├── demo
    │   │   │   │   ├── basic.vue
    │   │   │   │   ├── control.vue
    │   │   │   │   ├── custom.vue
    │   │   │   │   ├── format.vue
    │   │   │   │   ├── index.vue
    │   │   │   │   ├── millisecond.vue
    │   │   │   │   └── ref.vue
    │   │   │   ├── doc.en-US.md
    │   │   │   ├── doc.md
    │   │   │   ├── doc.taro.md
    │   │   │   ├── index.scss
    │   │   │   ├── index.taro.ts
    │   │   │   ├── index.ts
    │   │   │   └── util.ts
    │   │   ├── countup
    │   │   │   ├── __tests__
    │   │   │   │   └── countup.spec.tsx
    │   │   │   ├── demo
    │   │   │   │   ├── basic.vue
    │   │   │   │   ├── custom.vue
    │   │   │   │   ├── index.vue
    │   │   │   │   └── scroll.vue
    │   │   │   ├── doc.en-US.md
    │   │   │   ├── doc.md
    │   │   │   ├── doc.taro.md
    │   │   │   ├── index.scss
    │   │   │   ├── index.taro.vue
    │   │   │   └── index.vue
    │   │   ├── datepicker
    │   │   │   ├── __tests__
    │   │   │   │   └── datepicker.spec.ts
    │   │   │   ├── demo
    │   │   │   │   ├── basic.vue
    │   │   │   │   ├── date-time.vue
    │   │   │   │   ├── filter.vue
    │   │   │   │   ├── format.vue
    │   │   │   │   ├── hour-minute.vue
    │   │   │   │   ├── index.vue
    │   │   │   │   ├── month-day.vue
    │   │   │   │   ├── pop.vue
    │   │   │   │   ├── step.vue
    │   │   │   │   ├── time.vue
    │   │   │   │   └── year-month.vue
    │   │   │   ├── doc.en-US.md
    │   │   │   ├── doc.md
    │   │   │   ├── doc.taro.md
    │   │   │   ├── index.scss
    │   │   │   ├── index.taro.vue
    │   │   │   ├── index.vue
    │   │   │   └── type.ts
    │   │   ├── dialog
    │   │   │   ├── __tests__
    │   │   │   │   ├── __snapshots__
    │   │   │   │   │   └── function.spec.ts.snap
    │   │   │   │   ├── dialog.ts
    │   │   │   │   ├── function.spec.ts
    │   │   │   │   └── index.spec.ts
    │   │   │   ├── demo.vue
    │   │   │   ├── doc.en-US.md
    │   │   │   ├── doc.md
    │   │   │   ├── doc.taro.md
    │   │   │   ├── index.scss
    │   │   │   ├── index.taro.vue
    │   │   │   ├── index.ts
    │   │   │   └── index.vue
    │   │   ├── divider
    │   │   │   ├── __tests__
    │   │   │   │   ├── __snapshots__
    │   │   │   │   │   └── divider.spec.ts.snap
    │   │   │   │   └── divider.spec.ts
    │   │   │   ├── demo
    │   │   │   │   ├── basic.vue
    │   │   │   │   ├── custom.vue
    │   │   │   │   ├── dashed.vue
    │   │   │   │   ├── index.vue
    │   │   │   │   ├── position.vue
    │   │   │   │   ├── text.vue
    │   │   │   │   └── vertical.vue
    │   │   │   ├── divider.taro.vue
    │   │   │   ├── divider.vue
    │   │   │   ├── doc.en-US.md
    │   │   │   ├── doc.md
    │   │   │   ├── doc.taro.md
    │   │   │   ├── index.scss
    │   │   │   ├── index.taro.ts
    │   │   │   ├── index.ts
    │   │   │   └── types.ts
    │   │   ├── drag
    │   │   │   ├── __tests__
    │   │   │   │   ├── __snapshots__
    │   │   │   │   │   └── index.spec.ts.snap
    │   │   │   │   └── index.spec.ts
    │   │   │   ├── demo
    │   │   │   │   ├── attract.vue
    │   │   │   │   ├── basic.vue
    │   │   │   │   ├── boundary.vue
    │   │   │   │   ├── direction.vue
    │   │   │   │   └── index.vue
    │   │   │   ├── doc.en-US.md
    │   │   │   ├── doc.md
    │   │   │   ├── doc.taro.md
    │   │   │   ├── index.scss
    │   │   │   ├── index.taro.vue
    │   │   │   ├── index.vue
    │   │   │   └── types.ts
    │   │   ├── ecard
    │   │   │   ├── __tests__
    │   │   │   │   ├── __snapshots__
    │   │   │   │   │   └── index.spec.ts.snap
    │   │   │   │   └── index.spec.ts
    │   │   │   ├── demo
    │   │   │   │   ├── basic.vue
    │   │   │   │   └── index.vue
    │   │   │   ├── doc.en-US.md
    │   │   │   ├── doc.md
    │   │   │   ├── doc.taro.md
    │   │   │   ├── index.scss
    │   │   │   ├── index.taro.vue
    │   │   │   └── index.vue
    │   │   ├── elevator
    │   │   │   ├── __tests__
    │   │   │   │   └── index.spec.ts
    │   │   │   ├── demo
    │   │   │   │   ├── basic.vue
    │   │   │   │   ├── content.vue
    │   │   │   │   ├── custom.vue
    │   │   │   │   ├── index.vue
    │   │   │   │   └── sticky.vue
    │   │   │   ├── doc.en-US.md
    │   │   │   ├── doc.md
    │   │   │   ├── doc.taro.md
    │   │   │   ├── index.scss
    │   │   │   ├── index.taro.vue
    │   │   │   ├── index.vue
    │   │   │   └── type.ts
    │   │   ├── ellipsis
    │   │   │   ├── __tests__
    │   │   │   │   ├── __snapshots__
    │   │   │   │   │   └── ellipsis.spec.ts.snap
    │   │   │   │   └── ellipsis.spec.ts
    │   │   │   ├── demo
    │   │   │   │   ├── end.vue
    │   │   │   │   ├── expand.vue
    │   │   │   │   ├── index.vue
    │   │   │   │   ├── middle.vue
    │   │   │   │   ├── row.vue
    │   │   │   │   └── start.vue
    │   │   │   ├── doc.en-US.md
    │   │   │   ├── doc.md
    │   │   │   ├── doc.taro.md
    │   │   │   ├── index.scss
    │   │   │   ├── index.taro.vue
    │   │   │   ├── index.vue
    │   │   │   └── types.ts
    │   │   ├── empty
    │   │   │   ├── __tests__
    │   │   │   │   └── index.spec.ts
    │   │   │   ├── demo
    │   │   │   │   ├── basic.vue
    │   │   │   │   ├── bottom.vue
    │   │   │   │   ├── custom.vue
    │   │   │   │   ├── index.vue
    │   │   │   │   └── type.vue
    │   │   │   ├── doc.en-US.md
    │   │   │   ├── doc.md
    │   │   │   ├── doc.taro.md
    │   │   │   ├── empty.taro.vue
    │   │   │   ├── empty.vue
    │   │   │   ├── index.scss
    │   │   │   ├── index.taro.ts
    │   │   │   ├── index.ts
    │   │   │   └── types.ts
    │   │   ├── fixednav
    │   │   │   ├── __tests__
    │   │   │   │   └── fixednav.spec.ts
    │   │   │   ├── demo
    │   │   │   │   ├── basic.vue
    │   │   │   │   ├── custom.vue
    │   │   │   │   ├── drag.vue
    │   │   │   │   ├── index.vue
    │   │   │   │   ├── left.vue
    │   │   │   │   └── overlay.vue
    │   │   │   ├── doc.en-US.md
    │   │   │   ├── doc.md
    │   │   │   ├── doc.taro.md
    │   │   │   ├── index.scss
    │   │   │   ├── index.taro.vue
    │   │   │   └── index.vue
    │   │   ├── form
    │   │   │   ├── __tests__
    │   │   │   │   └── index.spec.tsx
    │   │   │   ├── common.ts
    │   │   │   ├── demo
    │   │   │   │   ├── basic.vue
    │   │   │   │   ├── dynamic.vue
    │   │   │   │   ├── index.vue
    │   │   │   │   ├── star.vue
    │   │   │   │   ├── type.vue
    │   │   │   │   └── validate.vue
    │   │   │   ├── doc.en-US.md
    │   │   │   ├── doc.md
    │   │   │   ├── doc.taro.md
    │   │   │   ├── form.taro.vue
    │   │   │   ├── form.vue
    │   │   │   ├── index.scss
    │   │   │   ├── index.taro.ts
    │   │   │   ├── index.ts
    │   │   │   └── types.ts
    │   │   ├── formitem
    │   │   │   ├── form-item.taro.vue
    │   │   │   ├── form-item.vue
    │   │   │   ├── index.scss
    │   │   │   ├── index.taro.ts
    │   │   │   └── index.ts
    │   │   ├── grid
    │   │   │   ├── __tests__
    │   │   │   │   ├── __snapshots__
    │   │   │   │   │   └── grid.spec.ts.snap
    │   │   │   │   └── grid.spec.ts
    │   │   │   ├── demo
    │   │   │   │   ├── basic.vue
    │   │   │   │   ├── column.vue
    │   │   │   │   ├── content.vue
    │   │   │   │   ├── gutter.vue
    │   │   │   │   ├── horizontal.vue
    │   │   │   │   ├── index.vue
    │   │   │   │   ├── reverse.vue
    │   │   │   │   └── square.vue
    │   │   │   ├── doc.en-US.md
    │   │   │   ├── doc.md
    │   │   │   ├── doc.taro.md
    │   │   │   ├── grid.taro.vue
    │   │   │   ├── grid.vue
    │   │   │   ├── index.scss
    │   │   │   ├── index.taro.ts
    │   │   │   ├── index.ts
    │   │   │   └── types.ts
    │   │   ├── griditem
    │   │   │   ├── grid-item.taro.vue
    │   │   │   ├── grid-item.vue
    │   │   │   ├── index.scss
    │   │   │   ├── index.taro.ts
    │   │   │   └── index.ts
    │   │   ├── icon
    │   │   │   ├── __tests__
    │   │   │   │   └── index.spec.tsx
    │   │   │   ├── demo.vue
    │   │   │   ├── doc.en-US.md
    │   │   │   ├── doc.md
    │   │   │   ├── doc.taro.md
    │   │   │   ├── index.scss
    │   │   │   ├── index.taro.vue
    │   │   │   └── index.vue
    │   │   ├── image
    │   │   │   ├── __tests__
    │   │   │   │   ├── __snapshots__
    │   │   │   │   │   ├── image.spec.ts.snap
    │   │   │   │   │   └── image.spec.tsx.snap
    │   │   │   │   └── image.spec.tsx
    │   │   │   ├── demo
    │   │   │   │   ├── basic.vue
    │   │   │   │   ├── error.vue
    │   │   │   │   ├── fit.vue
    │   │   │   │   ├── index.vue
    │   │   │   │   ├── lazy.vue
    │   │   │   │   ├── loading.vue
    │   │   │   │   ├── position.vue
    │   │   │   │   └── round.vue
    │   │   │   ├── doc.en-US.md
    │   │   │   ├── doc.md
    │   │   │   ├── doc.taro.md
    │   │   │   ├── image.taro.vue
    │   │   │   ├── image.vue
    │   │   │   ├── index.scss
    │   │   │   ├── index.taro.ts
    │   │   │   ├── index.ts
    │   │   │   └── types.ts
    │   │   ├── imagepreview
    │   │   │   ├── __tests__
    │   │   │   │   └── imagepreview.spec.ts
    │   │   │   ├── demo.vue
    │   │   │   ├── doc.en-US.md
    │   │   │   ├── doc.md
    │   │   │   ├── doc.taro.md
    │   │   │   ├── imagePreviewItem.vue
    │   │   │   ├── index.scss
    │   │   │   ├── index.taro.vue
    │   │   │   ├── index.ts
    │   │   │   ├── index.vue
    │   │   │   └── types.ts
    │   │   ├── indicator
    │   │   │   ├── __tests__
    │   │   │   │   └── indicator.spec.ts
    │   │   │   ├── demo
    │   │   │   │   ├── basic.vue
    │   │   │   │   ├── block.vue
    │   │   │   │   ├── index.vue
    │   │   │   │   └── zero.vue
    │   │   │   ├── doc.en-US.md
    │   │   │   ├── doc.md
    │   │   │   ├── doc.taro.md
    │   │   │   ├── index.scss
    │   │   │   ├── index.taro.ts
    │   │   │   ├── index.ts
    │   │   │   ├── indicator.taro.vue
    │   │   │   ├── indicator.vue
    │   │   │   └── types.ts
    │   │   ├── infiniteloading
    │   │   │   ├── __tests__
    │   │   │   │   ├── __snapshots__
    │   │   │   │   │   └── infiniteloading.spec.ts.snap
    │   │   │   │   └── infiniteloading.spec.ts
    │   │   │   ├── demo.vue
    │   │   │   ├── doc.en-US.md
    │   │   │   ├── doc.md
    │   │   │   ├── doc.taro.md
    │   │   │   ├── index.scss
    │   │   │   └── index.vue
    │   │   ├── input
    │   │   │   ├── __tests__
    │   │   │   │   ├── __snapshots__
    │   │   │   │   │   └── input.spec.ts.snap
    │   │   │   │   └── input.spec.ts
    │   │   │   ├── demo
    │   │   │   │   ├── align.vue
    │   │   │   │   ├── basic.vue
    │   │   │   │   ├── border.vue
    │   │   │   │   ├── clear.vue
    │   │   │   │   ├── count.vue
    │   │   │   │   ├── event.vue
    │   │   │   │   ├── form.vue
    │   │   │   │   ├── format.vue
    │   │   │   │   ├── index.vue
    │   │   │   │   ├── slot.vue
    │   │   │   │   ├── status.vue
    │   │   │   │   └── type.vue
    │   │   │   ├── doc.en-US.md
    │   │   │   ├── doc.md
    │   │   │   ├── doc.taro.md
    │   │   │   ├── index.scss
    │   │   │   ├── index.taro.ts
    │   │   │   ├── index.ts
    │   │   │   ├── input.taro.vue
    │   │   │   ├── input.vue
    │   │   │   ├── types.ts
    │   │   │   └── util.ts
    │   │   ├── inputnumber
    │   │   │   ├── __tests__
    │   │   │   │   ├── __snapshots__
    │   │   │   │   │   └── index.spec.tsx.snap
    │   │   │   │   └── index.spec.tsx
    │   │   │   ├── demo
    │   │   │   │   ├── basic.vue
    │   │   │   │   ├── decimal.vue
    │   │   │   │   ├── disabled.vue
    │   │   │   │   ├── icon.vue
    │   │   │   │   ├── index.vue
    │   │   │   │   ├── limit.vue
    │   │   │   │   ├── readonly.vue
    │   │   │   │   ├── size.vue
    │   │   │   │   └── step.vue
    │   │   │   ├── doc.en-US.md
    │   │   │   ├── doc.md
    │   │   │   ├── doc.taro.md
    │   │   │   ├── index.scss
    │   │   │   ├── index.taro.ts
    │   │   │   ├── index.ts
    │   │   │   ├── input-number.taro.vue
    │   │   │   └── input-number.vue
    │   │   ├── invoice
    │   │   │   ├── __tests__
    │   │   │   │   ├── __snapshots__
    │   │   │   │   │   └── invoice.spec.tsx.snap
    │   │   │   │   └── invoice.spec.tsx
    │   │   │   ├── demo
    │   │   │   │   ├── basic.vue
    │   │   │   │   └── index.vue
    │   │   │   ├── doc.en-US.md
    │   │   │   ├── doc.md
    │   │   │   ├── doc.taro.md
    │   │   │   ├── index.scss
    │   │   │   ├── index.taro.ts
    │   │   │   ├── index.ts
    │   │   │   ├── invoice.taro.vue
    │   │   │   ├── invoice.vue
    │   │   │   └── types.ts
    │   │   ├── layout
    │   │   │   ├── demo
    │   │   │   │   ├── basic.vue
    │   │   │   │   ├── flex.vue
    │   │   │   │   ├── gap.vue
    │   │   │   │   └── index.vue
    │   │   │   ├── doc.en-US.md
    │   │   │   ├── doc.md
    │   │   │   ├── doc.taro.md
    │   │   │   ├── index.scss
    │   │   │   ├── index.taro.ts
    │   │   │   ├── index.ts
    │   │   │   ├── layout.taro.vue
    │   │   │   ├── layout.vue
    │   │   │   └── types.ts
    │   │   ├── list
    │   │   │   ├── __tests__
    │   │   │   │   └── list.spec.ts
    │   │   │   ├── demo
    │   │   │   │   ├── basic.vue
    │   │   │   │   └── index.vue
    │   │   │   ├── doc.en-US.md
    │   │   │   ├── doc.md
    │   │   │   ├── doc.taro.md
    │   │   │   ├── index.scss
    │   │   │   ├── index.taro.vue
    │   │   │   ├── index.vue
    │   │   │   └── type.ts
    │   │   ├── menu
    │   │   │   ├── __tests__
    │   │   │   │   └── menu.spec.tsx
    │   │   │   ├── demo
    │   │   │   │   ├── basic.vue
    │   │   │   │   ├── col.vue
    │   │   │   │   ├── color.vue
    │   │   │   │   ├── custom.vue
    │   │   │   │   ├── disabled.vue
    │   │   │   │   ├── icon.vue
    │   │   │   │   ├── index.vue
    │   │   │   │   └── up.vue
    │   │   │   ├── doc.en-US.md
    │   │   │   ├── doc.md
    │   │   │   ├── doc.taro.md
    │   │   │   ├── index.scss
    │   │   │   ├── index.taro.vue
    │   │   │   ├── index.vue
    │   │   │   └── types.ts
    │   │   ├── menuitem
    │   │   │   ├── index.scss
    │   │   │   ├── index.taro.vue
    │   │   │   └── index.vue
    │   │   ├── navbar
    │   │   │   ├── __tests__
    │   │   │   │   ├── __snapshots__
    │   │   │   │   │   └── navbar.spec.ts.snap
    │   │   │   │   └── navbar.spec.ts
    │   │   │   ├── demo
    │   │   │   │   ├── basic.vue
    │   │   │   │   ├── index.vue
    │   │   │   │   ├── left.vue
    │   │   │   │   ├── right.vue
    │   │   │   │   └── title.vue
    │   │   │   ├── doc.en-US.md
    │   │   │   ├── doc.md
    │   │   │   ├── doc.taro.md
    │   │   │   ├── index.scss
    │   │   │   ├── index.taro.ts
    │   │   │   ├── index.ts
    │   │   │   ├── navbar.taro.vue
    │   │   │   └── navbar.vue
    │   │   ├── noticebar
    │   │   │   ├── __tests__
    │   │   │   │   ├── __snapshots__
    │   │   │   │   │   └── noticebar.spec.ts.snap
    │   │   │   │   └── noticebar.spec.ts
    │   │   │   ├── demo
    │   │   │   │   ├── basic.vue
    │   │   │   │   ├── close.vue
    │   │   │   │   ├── content.vue
    │   │   │   │   ├── custom.vue
    │   │   │   │   ├── index.vue
    │   │   │   │   ├── right.vue
    │   │   │   │   ├── scrollable.vue
    │   │   │   │   ├── vertical-content.vue
    │   │   │   │   ├── vertical.vue
    │   │   │   │   └── wrap.vue
    │   │   │   ├── doc.en-US.md
    │   │   │   ├── doc.md
    │   │   │   ├── doc.taro.md
    │   │   │   ├── index.scss
    │   │   │   ├── index.taro.vue
    │   │   │   ├── index.vue
    │   │   │   └── types.ts
    │   │   ├── notify
    │   │   │   ├── __tests__
    │   │   │   │   ├── __snapshots__
    │   │   │   │   │   └── notify.spec.ts.snap
    │   │   │   │   ├── function.spec.ts
    │   │   │   │   ├── notify.spec.ts
    │   │   │   │   └── notify.ts
    │   │   │   ├── demo.vue
    │   │   │   ├── doc.en-US.md
    │   │   │   ├── doc.md
    │   │   │   ├── doc.taro.md
    │   │   │   ├── index.scss
    │   │   │   ├── index.taro.vue
    │   │   │   ├── index.ts
    │   │   │   ├── index.vue
    │   │   │   └── types.ts
    │   │   ├── numberkeyboard
    │   │   │   ├── __tests__
    │   │   │   │   └── index.spec.ts
    │   │   │   ├── demo
    │   │   │   │   ├── basic.vue
    │   │   │   │   ├── idcard.vue
    │   │   │   │   ├── index.vue
    │   │   │   │   ├── random.vue
    │   │   │   │   ├── right.vue
    │   │   │   │   ├── title.vue
    │   │   │   │   └── value.vue
    │   │   │   ├── doc.en-US.md
    │   │   │   ├── doc.md
    │   │   │   ├── doc.taro.md
    │   │   │   ├── index.scss
    │   │   │   ├── index.taro.vue
    │   │   │   ├── index.vue
    │   │   │   └── types.ts
    │   │   ├── overlay
    │   │   │   ├── __tests__
    │   │   │   │   ├── __snapshots__
    │   │   │   │   │   └── overlay.spec.ts.snap
    │   │   │   │   └── overlay.spec.ts
    │   │   │   ├── demo
    │   │   │   │   ├── basic.vue
    │   │   │   │   ├── close.vue
    │   │   │   │   ├── duration.vue
    │   │   │   │   ├── index.vue
    │   │   │   │   ├── lock.vue
    │   │   │   │   ├── mask.vue
    │   │   │   │   └── nest.vue
    │   │   │   ├── doc.en-US.md
    │   │   │   ├── doc.md
    │   │   │   ├── doc.taro.md
    │   │   │   ├── index.scss
    │   │   │   ├── index.taro.ts
    │   │   │   ├── index.ts
    │   │   │   ├── overlay.taro.vue
    │   │   │   └── overlay.vue
    │   │   ├── pagination
    │   │   │   ├── __tests__
    │   │   │   │   ├── __snapshots__
    │   │   │   │   │   └── index.spec.ts.snap
    │   │   │   │   └── index.spec.ts
    │   │   │   ├── demo
    │   │   │   │   ├── basic.vue
    │   │   │   │   ├── custom.vue
    │   │   │   │   ├── ellipse.vue
    │   │   │   │   ├── index.vue
    │   │   │   │   └── simple.vue
    │   │   │   ├── doc.en-US.md
    │   │   │   ├── doc.md
    │   │   │   ├── doc.taro.md
    │   │   │   ├── index.scss
    │   │   │   ├── index.taro.vue
    │   │   │   ├── index.vue
    │   │   │   └── types.ts
    │   │   ├── picker
    │   │   │   ├── Column.vue
    │   │   │   ├── __tests__
    │   │   │   │   └── picker.spec.ts
    │   │   │   ├── baseProps.ts
    │   │   │   ├── demo
    │   │   │   │   ├── async.vue
    │   │   │   │   ├── basic.vue
    │   │   │   │   ├── cascader.vue
    │   │   │   │   ├── columns.vue
    │   │   │   │   ├── field.vue
    │   │   │   │   ├── index.vue
    │   │   │   │   ├── popup.vue
    │   │   │   │   ├── three-d.vue
    │   │   │   │   └── vmodel.vue
    │   │   │   ├── doc.en-US.md
    │   │   │   ├── doc.md
    │   │   │   ├── doc.taro.md
    │   │   │   ├── index.scss
    │   │   │   ├── index.taro.vue
    │   │   │   ├── index.vue
    │   │   │   ├── types.ts
    │   │   │   └── usePicker.ts
    │   │   ├── popover
    │   │   │   ├── __tests__
    │   │   │   │   └── popover.spec.tsx
    │   │   │   ├── demo
    │   │   │   │   ├── basic.vue
    │   │   │   │   ├── color.vue
    │   │   │   │   ├── content.vue
    │   │   │   │   ├── index.vue
    │   │   │   │   ├── option.vue
    │   │   │   │   ├── position.vue
    │   │   │   │   └── target.vue
    │   │   │   ├── doc.en-US.md
    │   │   │   ├── doc.md
    │   │   │   ├── doc.taro.md
    │   │   │   ├── index.scss
    │   │   │   ├── index.taro.vue
    │   │   │   ├── index.vue
    │   │   │   └── type.ts
    │   │   ├── popup
    │   │   │   ├── __tests__
    │   │   │   │   └── popup.spec.ts
    │   │   │   ├── demo
    │   │   │   │   ├── basic.vue
    │   │   │   │   ├── close.vue
    │   │   │   │   ├── index.vue
    │   │   │   │   ├── multi.vue
    │   │   │   │   ├── port.vue
    │   │   │   │   ├── position.vue
    │   │   │   │   └── round.vue
    │   │   │   ├── doc.en-US.md
    │   │   │   ├── doc.md
    │   │   │   ├── doc.taro.md
    │   │   │   ├── index.scss
    │   │   │   ├── index.taro.vue
    │   │   │   ├── index.vue
    │   │   │   ├── props.ts
    │   │   │   └── types.ts
    │   │   ├── price
    │   │   │   ├── __tests__
    │   │   │   │   └── price.spec.ts
    │   │   │   ├── demo
    │   │   │   │   ├── decimal.vue
    │   │   │   │   ├── index.vue
    │   │   │   │   ├── position.vue
    │   │   │   │   ├── size.vue
    │   │   │   │   ├── symbol.vue
    │   │   │   │   ├── thousands.vue
    │   │   │   │   └── through.vue
    │   │   │   ├── doc.en-US.md
    │   │   │   ├── doc.md
    │   │   │   ├── doc.taro.md
    │   │   │   ├── index.scss
    │   │   │   ├── index.taro.ts
    │   │   │   ├── index.ts
    │   │   │   ├── price.taro.vue
    │   │   │   ├── price.vue
    │   │   │   └── types.ts
    │   │   ├── progress
    │   │   │   ├── __tests__
    │   │   │   │   ├── __snapshots__
    │   │   │   │   │   └── index.spec.ts.snap
    │   │   │   │   └── index.spec.ts
    │   │   │   ├── demo
    │   │   │   │   ├── basic.vue
    │   │   │   │   ├── change.vue
    │   │   │   │   ├── color.vue
    │   │   │   │   ├── content.vue
    │   │   │   │   ├── index.vue
    │   │   │   │   ├── inside.vue
    │   │   │   │   ├── size.vue
    │   │   │   │   ├── status.vue
    │   │   │   │   └── text.vue
    │   │   │   ├── doc.en-US.md
    │   │   │   ├── doc.md
    │   │   │   ├── doc.taro.md
    │   │   │   ├── index.scss
    │   │   │   ├── index.taro.ts
    │   │   │   ├── index.ts
    │   │   │   ├── progress.taro.vue
    │   │   │   ├── progress.vue
    │   │   │   └── types.ts
    │   │   ├── pullrefresh
    │   │   │   ├── __tests__
    │   │   │   │   └── pullrefresh.spec.ts
    │   │   │   ├── demo.vue
    │   │   │   ├── doc.en-US.md
    │   │   │   ├── doc.md
    │   │   │   ├── doc.taro.md
    │   │   │   ├── index.scss
    │   │   │   └── index.vue
    │   │   ├── radio
    │   │   │   ├── __tests__
    │   │   │   │   └── radio.spec.tsx
    │   │   │   ├── demo
    │   │   │   │   ├── basic.vue
    │   │   │   │   ├── disabled.vue
    │   │   │   │   ├── event.vue
    │   │   │   │   ├── horizontal.vue
    │   │   │   │   ├── icon-size.vue
    │   │   │   │   ├── icon.vue
    │   │   │   │   ├── index.vue
    │   │   │   │   ├── position.vue
    │   │   │   │   ├── shape.vue
    │   │   │   │   └── size.vue
    │   │   │   ├── doc.en-US.md
    │   │   │   ├── doc.md
    │   │   │   ├── doc.taro.md
    │   │   │   ├── index.scss
    │   │   │   ├── index.taro.ts
    │   │   │   ├── index.ts
    │   │   │   ├── radio.taro.vue
    │   │   │   ├── radio.vue
    │   │   │   └── types.ts
    │   │   ├── radiogroup
    │   │   │   ├── index.scss
    │   │   │   ├── index.taro.ts
    │   │   │   ├── index.ts
    │   │   │   ├── radio-group.taro.vue
    │   │   │   └── radio-group.vue
    │   │   ├── range
    │   │   │   ├── __tests__
    │   │   │   │   └── range.spec.ts
    │   │   │   ├── demo
    │   │   │   │   ├── basic.vue
    │   │   │   │   ├── button.vue
    │   │   │   │   ├── color.vue
    │   │   │   │   ├── disabled.vue
    │   │   │   │   ├── hidden-range.vue
    │   │   │   │   ├── hidden-tag.vue
    │   │   │   │   ├── index.vue
    │   │   │   │   ├── limit.vue
    │   │   │   │   ├── marks.vue
    │   │   │   │   ├── range.vue
    │   │   │   │   ├── step.vue
    │   │   │   │   └── vertical.vue
    │   │   │   ├── doc.en-US.md
    │   │   │   ├── doc.md
    │   │   │   ├── doc.taro.md
    │   │   │   ├── index.scss
    │   │   │   ├── index.taro.vue
    │   │   │   ├── index.vue
    │   │   │   └── type.ts
    │   │   ├── rate
    │   │   │   ├── __tests__
    │   │   │   │   ├── __snapshots__
    │   │   │   │   │   ├── rate.spec.ts.snap
    │   │   │   │   │   └── rate.spec.tsx.snap
    │   │   │   │   └── rate.spec.tsx
    │   │   │   ├── demo
    │   │   │   │   ├── basic.vue
    │   │   │   │   ├── color.vue
    │   │   │   │   ├── count.vue
    │   │   │   │   ├── disabled.vue
    │   │   │   │   ├── event.vue
    │   │   │   │   ├── half.vue
    │   │   │   │   ├── icon.vue
    │   │   │   │   ├── index.vue
    │   │   │   │   ├── read.vue
    │   │   │   │   └── size.vue
    │   │   │   ├── doc.en-US.md
    │   │   │   ├── doc.md
    │   │   │   ├── doc.taro.md
    │   │   │   ├── index.scss
    │   │   │   ├── index.taro.ts
    │   │   │   ├── index.ts
    │   │   │   ├── rate.taro.vue
    │   │   │   └── rate.vue
    │   │   ├── row
    │   │   │   ├── __tests__
    │   │   │   │   └── index.spec.ts
    │   │   │   ├── index.scss
    │   │   │   ├── index.taro.ts
    │   │   │   ├── index.ts
    │   │   │   ├── row.taro.vue
    │   │   │   └── row.vue
    │   │   ├── scroll-view
    │   │   │   └── index.taro.vue
    │   │   ├── searchbar
    │   │   │   ├── __tests__
    │   │   │   │   ├── __snapshots__
    │   │   │   │   │   └── searchbar.spec.tsx.snap
    │   │   │   │   └── searchbar.spec.tsx
    │   │   │   ├── demo
    │   │   │   │   ├── all.vue
    │   │   │   │   ├── background.vue
    │   │   │   │   ├── basic.vue
    │   │   │   │   ├── clear.vue
    │   │   │   │   ├── focus.vue
    │   │   │   │   ├── index.vue
    │   │   │   │   ├── left.vue
    │   │   │   │   ├── right.vue
    │   │   │   │   └── shape.vue
    │   │   │   ├── doc.en-US.md
    │   │   │   ├── doc.md
    │   │   │   ├── doc.taro.md
    │   │   │   ├── index.scss
    │   │   │   ├── index.taro.vue
    │   │   │   ├── index.vue
    │   │   │   └── types.ts
    │   │   ├── shortpassword
    │   │   │   ├── __tests__
    │   │   │   │   └── index.spec.ts
    │   │   │   ├── demo
    │   │   │   │   ├── basic.vue
    │   │   │   │   ├── error.vue
    │   │   │   │   ├── forget.vue
    │   │   │   │   ├── index.vue
    │   │   │   │   └── length.vue
    │   │   │   ├── doc.en-US.md
    │   │   │   ├── doc.md
    │   │   │   ├── doc.taro.md
    │   │   │   ├── index.scss
    │   │   │   ├── index.taro.vue
    │   │   │   └── index.vue
    │   │   ├── sidenavbar
    │   │   │   ├── __tests__
    │   │   │   │   └── index.spec.tsx
    │   │   │   ├── demo
    │   │   │   │   ├── basic.vue
    │   │   │   │   ├── index.vue
    │   │   │   │   ├── nest.vue
    │   │   │   │   └── popup.vue
    │   │   │   ├── doc.en-US.md
    │   │   │   ├── doc.md
    │   │   │   ├── doc.taro.md
    │   │   │   ├── index.scss
    │   │   │   ├── index.taro.vue
    │   │   │   └── index.vue
    │   │   ├── sidenavbaritem
    │   │   │   ├── index.scss
    │   │   │   ├── index.taro.vue
    │   │   │   └── index.vue
    │   │   ├── signature
    │   │   │   ├── __tests__
    │   │   │   │   ├── __snapshots__
    │   │   │   │   │   └── signature.spec.tsx.snap
    │   │   │   │   └── signature.spec.tsx
    │   │   │   ├── demo
    │   │   │   │   ├── basic.vue
    │   │   │   │   ├── custom.vue
    │   │   │   │   └── index.vue
    │   │   │   ├── doc.en-US.md
    │   │   │   ├── doc.md
    │   │   │   ├── doc.taro.md
    │   │   │   ├── index.scss
    │   │   │   ├── index.taro.vue
    │   │   │   └── index.vue
    │   │   ├── skeleton
    │   │   │   ├── __tests__
    │   │   │   │   ├── __snapshots__
    │   │   │   │   │   └── skeleton.spec.tsx.snap
    │   │   │   │   └── skeleton.spec.tsx
    │   │   │   ├── demo
    │   │   │   │   ├── avatar.vue
    │   │   │   │   ├── basic.vue
    │   │   │   │   ├── index.vue
    │   │   │   │   ├── picture.vue
    │   │   │   │   ├── round.vue
    │   │   │   │   ├── row.vue
    │   │   │   │   └── sub.vue
    │   │   │   ├── doc.en-US.md
    │   │   │   ├── doc.md
    │   │   │   ├── doc.taro.md
    │   │   │   ├── index.scss
    │   │   │   ├── index.taro.ts
    │   │   │   ├── index.ts
    │   │   │   ├── skeleton.taro.vue
    │   │   │   └── skeleton.vue
    │   │   ├── sku
    │   │   │   ├── __tests__
    │   │   │   │   ├── __snapshots__
    │   │   │   │   │   └── sku.spec.ts.snap
    │   │   │   │   └── sku.spec.ts
    │   │   │   ├── components
    │   │   │   │   ├── SkuHeader.taro.vue
    │   │   │   │   ├── SkuHeader.vue
    │   │   │   │   ├── SkuOperate.vue
    │   │   │   │   ├── SkuSelect.vue
    │   │   │   │   ├── SkuStepper.taro.vue
    │   │   │   │   └── SkuStepper.vue
    │   │   │   ├── data.ts
    │   │   │   ├── demo.vue
    │   │   │   ├── doc.en-US.md
    │   │   │   ├── doc.md
    │   │   │   ├── doc.taro.md
    │   │   │   ├── index.scss
    │   │   │   ├── index.taro.vue
    │   │   │   ├── index.vue
    │   │   │   └── type.ts
    │   │   ├── space
    │   │   │   ├── __tests__
    │   │   │   │   ├── __snapshots__
    │   │   │   │   │   └── space.spec.ts.snap
    │   │   │   │   └── space.spec.ts
    │   │   │   ├── demo
    │   │   │   │   ├── basic.vue
    │   │   │   │   ├── direction.vue
    │   │   │   │   ├── gutter.vue
    │   │   │   │   ├── index.vue
    │   │   │   │   └── wrap.vue
    │   │   │   ├── doc.en-US.md
    │   │   │   ├── doc.md
    │   │   │   ├── doc.taro.md
    │   │   │   ├── index.scss
    │   │   │   ├── index.taro.vue
    │   │   │   ├── index.vue
    │   │   │   └── types.ts
    │   │   ├── step
    │   │   │   ├── index.scss
    │   │   │   ├── index.taro.ts
    │   │   │   ├── index.ts
    │   │   │   ├── step.taro.vue
    │   │   │   └── step.vue
    │   │   ├── steps
    │   │   │   ├── __tests__
    │   │   │   │   ├── __snapshots__
    │   │   │   │   │   └── index.spec.tsx.snap
    │   │   │   │   └── index.spec.tsx
    │   │   │   ├── demo
    │   │   │   │   ├── basic.vue
    │   │   │   │   ├── custom.vue
    │   │   │   │   ├── desc.vue
    │   │   │   │   ├── dot.vue
    │   │   │   │   ├── index.vue
    │   │   │   │   ├── vertical-dot.vue
    │   │   │   │   └── vertical.vue
    │   │   │   ├── doc.en-US.md
    │   │   │   ├── doc.md
    │   │   │   ├── doc.taro.md
    │   │   │   ├── index.scss
    │   │   │   ├── index.taro.ts
    │   │   │   ├── index.ts
    │   │   │   ├── steps.taro.vue
    │   │   │   ├── steps.vue
    │   │   │   └── types.ts
    │   │   ├── sticky
    │   │   │   ├── __tests__
    │   │   │   │   ├── __snapshots__
    │   │   │   │   │   └── index.spec.ts.snap
    │   │   │   │   └── index.spec.ts
    │   │   │   ├── demo
    │   │   │   │   ├── basic.vue
    │   │   │   │   ├── bottom.vue
    │   │   │   │   ├── container.vue
    │   │   │   │   ├── index.vue
    │   │   │   │   └── top.vue
    │   │   │   ├── doc.en-US.md
    │   │   │   ├── doc.md
    │   │   │   ├── doc.taro.md
    │   │   │   ├── index.scss
    │   │   │   ├── index.taro.vue
    │   │   │   └── index.vue
    │   │   ├── subsidenavbar
    │   │   │   ├── index.scss
    │   │   │   ├── index.taro.vue
    │   │   │   └── index.vue
    │   │   ├── swipe
    │   │   │   ├── __tests__
    │   │   │   │   └── swipe.spec.tsx
    │   │   │   ├── demo
    │   │   │   │   ├── basic.vue
    │   │   │   │   ├── content.vue
    │   │   │   │   ├── direction.vue
    │   │   │   │   ├── disabled.vue
    │   │   │   │   ├── index.vue
    │   │   │   │   ├── lock.vue
    │   │   │   │   └── methods.vue
    │   │   │   ├── doc.en-US.md
    │   │   │   ├── doc.md
    │   │   │   ├── doc.taro.md
    │   │   │   ├── index.scss
    │   │   │   ├── index.taro.ts
    │   │   │   ├── index.ts
    │   │   │   ├── swipe.taro.vue
    │   │   │   ├── swipe.vue
    │   │   │   └── types.ts
    │   │   ├── swipegroup
    │   │   │   ├── index.scss
    │   │   │   ├── index.taro.ts
    │   │   │   ├── index.ts
    │   │   │   ├── swipe-group.taro.vue
    │   │   │   └── swipe-group.vue
    │   │   ├── swiper
    │   │   │   ├── __tests__
    │   │   │   │   └── index.spec.tsx
    │   │   │   ├── demo
    │   │   │   │   ├── async.vue
    │   │   │   │   ├── basic.vue
    │   │   │   │   ├── dynamic.vue
    │   │   │   │   ├── index.vue
    │   │   │   │   ├── methods.vue
    │   │   │   │   ├── page.vue
    │   │   │   │   ├── vertical.vue
    │   │   │   │   └── width.vue
    │   │   │   ├── doc.en-US.md
    │   │   │   ├── doc.md
    │   │   │   ├── doc.taro.md
    │   │   │   ├── index.scss
    │   │   │   ├── index.taro.vue
    │   │   │   ├── index.vue
    │   │   │   └── types.ts
    │   │   ├── swiperitem
    │   │   │   ├── index.scss
    │   │   │   ├── index.taro.vue
    │   │   │   ├── index.vue
    │   │   │   └── type.ts
    │   │   ├── switch
    │   │   │   ├── __tests__
    │   │   │   │   ├── __snapshots__
    │   │   │   │   │   └── switch.spec.ts.snap
    │   │   │   │   └── switch.spec.ts
    │   │   │   ├── demo
    │   │   │   │   ├── async.vue
    │   │   │   │   ├── basic.vue
    │   │   │   │   ├── color.vue
    │   │   │   │   ├── disabled.vue
    │   │   │   │   ├── event.vue
    │   │   │   │   ├── icon.vue
    │   │   │   │   ├── index.vue
    │   │   │   │   ├── loading.vue
    │   │   │   │   └── text.vue
    │   │   │   ├── doc.en-US.md
    │   │   │   ├── doc.md
    │   │   │   ├── doc.taro.md
    │   │   │   ├── index.scss
    │   │   │   ├── index.taro.ts
    │   │   │   ├── index.ts
    │   │   │   ├── switch.taro.vue
    │   │   │   └── switch.vue
    │   │   ├── tabbar
    │   │   │   ├── __tests__
    │   │   │   │   ├── __snapshots__
    │   │   │   │   │   └── index.spec.tsx.snap
    │   │   │   │   └── index.spec.tsx
    │   │   │   ├── demo
    │   │   │   │   ├── badge.vue
    │   │   │   │   ├── basic.vue
    │   │   │   │   ├── before-switch.vue
    │   │   │   │   ├── check.vue
    │   │   │   │   ├── color.vue
    │   │   │   │   ├── fixed.vue
    │   │   │   │   ├── icon.vue
    │   │   │   │   ├── index.vue
    │   │   │   │   ├── name.vue
    │   │   │   │   └── quantity.vue
    │   │   │   ├── doc.en-US.md
    │   │   │   ├── doc.md
    │   │   │   ├── doc.taro.md
    │   │   │   ├── index.scss
    │   │   │   ├── index.taro.ts
    │   │   │   ├── index.ts
    │   │   │   ├── tabbar.taro.vue
    │   │   │   ├── tabbar.vue
    │   │   │   └── types.ts
    │   │   ├── tabbaritem
    │   │   │   ├── index.scss
    │   │   │   ├── index.taro.ts
    │   │   │   ├── index.ts
    │   │   │   ├── tabbar-item.taro.vue
    │   │   │   └── tabbar-item.vue
    │   │   ├── table
    │   │   │   ├── __tests__
    │   │   │   │   └── index.spec.ts
    │   │   │   ├── demo
    │   │   │   │   ├── align.vue
    │   │   │   │   ├── async.vue
    │   │   │   │   ├── basic.vue
    │   │   │   │   ├── border.vue
    │   │   │   │   ├── custom.vue
    │   │   │   │   ├── index.vue
    │   │   │   │   ├── nodata.vue
    │   │   │   │   ├── sort.vue
    │   │   │   │   ├── striped.vue
    │   │   │   │   └── summary.vue
    │   │   │   ├── doc.en-US.md
    │   │   │   ├── doc.md
    │   │   │   ├── doc.taro.md
    │   │   │   ├── index.scss
    │   │   │   ├── index.taro.vue
    │   │   │   ├── index.vue
    │   │   │   ├── renderColumn.ts
    │   │   │   └── types.ts
    │   │   ├── tabpane
    │   │   │   ├── index.scss
    │   │   │   ├── index.taro.vue
    │   │   │   └── index.vue
    │   │   ├── tabs
    │   │   │   ├── __tests__
    │   │   │   │   └── index.spec.tsx
    │   │   │   ├── demo
    │   │   │   │   ├── animated-time.vue
    │   │   │   │   ├── auto-height.vue
    │   │   │   │   ├── basic.vue
    │   │   │   │   ├── custom.vue
    │   │   │   │   ├── index.vue
    │   │   │   │   ├── left-align.vue
    │   │   │   │   ├── scroll.vue
    │   │   │   │   ├── size.vue
    │   │   │   │   ├── smile.vue
    │   │   │   │   ├── swipeable.vue
    │   │   │   │   ├── vertical-smile.vue
    │   │   │   │   └── vertical.vue
    │   │   │   ├── doc.en-US.md
    │   │   │   ├── doc.md
    │   │   │   ├── doc.taro.md
    │   │   │   ├── hooks.ts
    │   │   │   ├── index.scss
    │   │   │   ├── index.taro.vue
    │   │   │   ├── index.vue
    │   │   │   └── types.ts
    │   │   ├── tag
    │   │   │   ├── __tests__
    │   │   │   │   └── tag.spec.ts
    │   │   │   ├── demo
    │   │   │   │   ├── basic.vue
    │   │   │   │   ├── color.vue
    │   │   │   │   ├── custom.vue
    │   │   │   │   └── index.vue
    │   │   │   ├── doc.en-US.md
    │   │   │   ├── doc.md
    │   │   │   ├── doc.taro.md
    │   │   │   ├── index.scss
    │   │   │   ├── index.taro.ts
    │   │   │   ├── index.ts
    │   │   │   ├── tag.taro.vue
    │   │   │   ├── tag.vue
    │   │   │   └── types.ts
    │   │   ├── textarea
    │   │   │   ├── __tests__
    │   │   │   │   └── textarea.spec.ts
    │   │   │   ├── demo
    │   │   │   │   ├── basic.vue
    │   │   │   │   ├── focus.vue
    │   │   │   │   ├── index.vue
    │   │   │   │   ├── limit.vue
    │   │   │   │   ├── row.vue
    │   │   │   │   └── status.vue
    │   │   │   ├── doc.en-US.md
    │   │   │   ├── doc.md
    │   │   │   ├── doc.taro.md
    │   │   │   ├── index.scss
    │   │   │   ├── index.taro.ts
    │   │   │   ├── index.ts
    │   │   │   ├── textarea.taro.vue
    │   │   │   └── textarea.vue
    │   │   ├── timedetail
    │   │   │   ├── demo.vue
    │   │   │   ├── doc.md
    │   │   │   ├── index.scss
    │   │   │   ├── index.taro.vue
    │   │   │   └── index.vue
    │   │   ├── timepannel
    │   │   │   ├── demo.vue
    │   │   │   ├── doc.md
    │   │   │   ├── index.scss
    │   │   │   ├── index.taro.vue
    │   │   │   └── index.vue
    │   │   ├── timeselect
    │   │   │   ├── __tests__
    │   │   │   │   └── timeselect.spec.ts
    │   │   │   ├── demo
    │   │   │   │   ├── basic.vue
    │   │   │   │   ├── index.vue
    │   │   │   │   ├── multiple.vue
    │   │   │   │   └── title.vue
    │   │   │   ├── doc.en-US.md
    │   │   │   ├── doc.md
    │   │   │   ├── doc.taro.md
    │   │   │   ├── index.scss
    │   │   │   ├── index.taro.vue
    │   │   │   └── index.vue
    │   │   ├── toast
    │   │   │   ├── __tests__
    │   │   │   │   ├── index.spec.ts
    │   │   │   │   └── toast.ts
    │   │   │   ├── demo.vue
    │   │   │   ├── doc.en-US.md
    │   │   │   ├── doc.md
    │   │   │   ├── doc.taro.md
    │   │   │   ├── index.scss
    │   │   │   ├── index.taro.vue
    │   │   │   ├── index.ts
    │   │   │   └── index.vue
    │   │   ├── tour
    │   │   │   ├── __tests__
    │   │   │   │   └── tour.spec.tsx
    │   │   │   ├── demo
    │   │   │   │   ├── basic.vue
    │   │   │   │   ├── content.vue
    │   │   │   │   ├── custom.vue
    │   │   │   │   ├── index.vue
    │   │   │   │   ├── position.vue
    │   │   │   │   └── step.vue
    │   │   │   ├── doc.en-US.md
    │   │   │   ├── doc.md
    │   │   │   ├── doc.taro.md
    │   │   │   ├── index.scss
    │   │   │   ├── index.taro.vue
    │   │   │   ├── index.vue
    │   │   │   └── type.ts
    │   │   ├── trendarrow
    │   │   │   ├── __tests__
    │   │   │   │   ├── __snapshots__
    │   │   │   │   │   └── trendarrow.spec.ts.snap
    │   │   │   │   └── trendarrow.spec.ts
    │   │   │   ├── demo
    │   │   │   │   ├── basic.vue
    │   │   │   │   ├── color.vue
    │   │   │   │   ├── digits.vue
    │   │   │   │   ├── icon.vue
    │   │   │   │   ├── index.vue
    │   │   │   │   ├── left.vue
    │   │   │   │   ├── sign.vue
    │   │   │   │   └── zero.vue
    │   │   │   ├── doc.en-US.md
    │   │   │   ├── doc.md
    │   │   │   ├── doc.taro.md
    │   │   │   ├── index.scss
    │   │   │   ├── index.taro.ts
    │   │   │   ├── index.ts
    │   │   │   ├── trend-arrow.taro.vue
    │   │   │   └── trend-arrow.vue
    │   │   ├── uploader
    │   │   │   ├── __tests__
    │   │   │   │   ├── __snapshots__
    │   │   │   │   │   └── index.spec.ts.snap
    │   │   │   │   └── index.spec.ts
    │   │   │   ├── demo.vue
    │   │   │   ├── doc.en-US.md
    │   │   │   ├── doc.md
    │   │   │   ├── doc.taro.md
    │   │   │   ├── index.scss
    │   │   │   ├── index.taro.vue
    │   │   │   ├── index.vue
    │   │   │   ├── type.ts
    │   │   │   └── uploader.ts
    │   │   ├── video
    │   │   │   ├── __tests__
    │   │   │   │   ├── __snapshots__
    │   │   │   │   │   └── video.spec.ts.snap
    │   │   │   │   └── video.spec.ts
    │   │   │   ├── demo
    │   │   │   │   ├── autoplay.vue
    │   │   │   │   ├── background.vue
    │   │   │   │   ├── basic.vue
    │   │   │   │   ├── index.vue
    │   │   │   │   ├── methods.vue
    │   │   │   │   ├── playsinline.vue
    │   │   │   │   └── poster.vue
    │   │   │   ├── doc.en-US.md
    │   │   │   ├── doc.md
    │   │   │   ├── doc.taro.md
    │   │   │   ├── index.scss
    │   │   │   └── index.vue
    │   │   └── watermark
    │   │   │   ├── __tests__
    │   │   │       └── watermark.spec.tsx
    │   │   │   ├── demo
    │   │   │       ├── basic.vue
    │   │   │       ├── index.vue
    │   │   │       ├── multi.vue
    │   │   │       └── part.vue
    │   │   │   ├── doc.en-US.md
    │   │   │   ├── doc.md
    │   │   │   ├── doc.taro.md
    │   │   │   ├── index.scss
    │   │   │   ├── index.taro.ts
    │   │   │   ├── index.ts
    │   │   │   ├── watermark.taro.vue
    │   │   │   └── watermark.vue
    │   ├── locale
    │   │   ├── README.md
    │   │   ├── index.ts
    │   │   └── lang
    │   │   │   ├── baseLang.ts
    │   │   │   ├── en-US.ts
    │   │   │   ├── id-ID.ts
    │   │   │   ├── zh-CN.ts
    │   │   │   └── zh-TW.ts
    │   ├── resolver
    │   │   ├── index.ts
    │   │   └── package.json
    │   ├── styles
    │   │   ├── animation
    │   │   │   ├── drop.scss
    │   │   │   ├── ease.scss
    │   │   │   ├── fade.scss
    │   │   │   ├── index.scss
    │   │   │   ├── rotate.scss
    │   │   │   └── zoom.scss
    │   │   ├── mixins
    │   │   │   ├── index.scss
    │   │   │   ├── make-animation.scss
    │   │   │   └── text-ellipsis.scss
    │   │   ├── reset.css
    │   │   ├── variables-jdb.scss
    │   │   ├── variables-jddkh.scss
    │   │   ├── variables-jdt.scss
    │   │   └── variables.scss
    │   └── utils
    │   │   ├── Interceptor.ts
    │   │   ├── canvas.ts
    │   │   ├── create
    │   │       ├── component.ts
    │   │       ├── index.ts
    │   │       ├── mountComponent.ts
    │   │       └── renderIcon.ts
    │   │   ├── date.ts
    │   │   ├── index.ts
    │   │   ├── pxCheck.ts
    │   │   ├── raf.ts
    │   │   ├── throttle.ts
    │   │   ├── touchEmulator.js
    │   │   ├── unit.ts
    │   │   ├── useExpose
    │   │       └── index.ts
    │   │   ├── useLocale
    │   │       └── index.ts
    │   │   ├── useLockScroll
    │   │       └── index.ts
    │   │   ├── useRect
    │   │       └── index.ts
    │   │   ├── useRelation
    │   │       ├── index.ts
    │   │       ├── useChildren.ts
    │   │       ├── useInject.ts
    │   │       ├── useParent.ts
    │   │       ├── useProvide.ts
    │   │       └── useRelation.ts
    │   │   ├── useRoute
    │   │       └── index.ts
    │   │   ├── useScrollParent
    │   │       └── index.ts
    │   │   ├── useTaroRect
    │   │       └── index.ts
    │   │   ├── useTouch
    │   │       └── index.ts
    │   │   ├── util.ts
    │   │   └── with-install.ts
    ├── shims-vue.d.ts
    └── sites
    │   ├── assets
    │       ├── images
    │       │   ├── bg-article.png
    │       │   ├── cat-back.png
    │       │   ├── cat-title.png
    │       │   ├── header-bg.png
    │       │   ├── icon-color.png
    │       │   ├── icon-footer-vx.png
    │       │   ├── icon-gitee.png
    │       │   ├── icon-select-gray-down.png
    │       │   ├── icon-select-gray-up.png
    │       │   ├── icon-select-white-down.png
    │       │   ├── icon-select-white-up.png
    │       │   ├── icon-title.png
    │       │   ├── icon-user.png
    │       │   ├── img-article.jpg
    │       │   ├── img-home-features1.png
    │       │   ├── img-home-features2.png
    │       │   ├── img-home-features3.png
    │       │   ├── img-home-features4.png
    │       │   ├── img-home-features5.png
    │       │   ├── img-joy.png
    │       │   ├── img-taro-left-white.png
    │       │   ├── img-taro-left.png
    │       │   ├── img-taro-right-white.png
    │       │   ├── img-taro-right.png
    │       │   ├── input-search.png
    │       │   ├── iphone-cases.png
    │       │   ├── item-active.png
    │       │   ├── item-rotate-active.png
    │       │   ├── left-arrow.png
    │       │   ├── logo-blue.png
    │       │   ├── logo-header-red.png
    │       │   ├── logo-header-white.png
    │       │   ├── logo-red.png
    │       │   ├── marketing-back.png
    │       │   ├── marketing-title.png
    │       │   ├── order.png
    │       │   ├── right-arrow.png
    │       │   ├── vx-code.png
    │       │   └── vx-code1.png
    │       ├── styles
    │       │   ├── highlight.scss
    │       │   ├── md-style.scss
    │       │   ├── reset.scss
    │       │   └── variables.scss
    │       └── util
    │       │   ├── helper.ts
    │       │   ├── index.ts
    │       │   ├── ref.ts
    │       │   └── useTranslate.ts
    │   ├── config
    │       └── env.ts
    │   ├── doc
    │       ├── App.vue
    │       ├── components
    │       │   ├── DemoPreview.vue
    │       │   ├── DocHeader.vue
    │       │   ├── IconDemo.vue
    │       │   ├── Nav.vue
    │       │   └── demo-block
    │       │   │   ├── basedUtil.ts
    │       │   │   ├── demoBlock.scss
    │       │   │   ├── demoBlock.vue
    │       │   │   ├── index.html
    │       │   │   ├── index.ts
    │       │   │   ├── package.json
    │       │   │   └── tsconfig.json
    │       ├── directive
    │       │   └── hover
    │       │   │   └── hover.ts
    │       ├── favicon.ico
    │       ├── main.ts
    │       ├── router.ts
    │       └── views
    │       │   └── Index.vue
    │   ├── mobile
    │       ├── App.vue
    │       ├── components
    │       │   ├── Index.vue
    │       │   └── demo.vue
    │       ├── favicon.ico
    │       ├── main.ts
    │       └── router.ts
    │   └── utils
    │       ├── index.ts
    │       └── useTranslate.ts
├── test-setup.ts
├── tsconfig.h5.json
├── tsconfig.json
├── tsconfig.taro.json
├── vite.config.build.css.ts
├── vite.config.build.disperse.ts
├── vite.config.build.locale.ts
├── vite.config.build.resolver.ts
├── vite.config.build.taro.vue.disperse.ts
├── vite.config.build.taro.vue.ts
├── vite.config.build.ts
├── vite.config.jdt.ts
└── vite.config.ts


/.git-blame-ignore-revs:
--------------------------------------------------------------------------------
1 | # Apply with:
2 | # `git config --local blame.ignoreRevsFile .git-blame-ignore-revs`
3 | 
4 | # [chore: prettier format](https://github.com/jd-opensource/nutui/pull/2995)
5 | 41772b4225c020af0893516081e57c1389d8b387


--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE/config.yml:
--------------------------------------------------------------------------------
1 | blank_issues_enabled: false
2 | contact_links:
3 |   - name: 🤖 常见问题 QA
4 |     url: https://github.com/jd-opensource/nutui/issues/2461
5 |     about: 这里可能会有解决方案。
6 | 


--------------------------------------------------------------------------------
/.husky/.gitignore:
--------------------------------------------------------------------------------
1 | _
2 | 


--------------------------------------------------------------------------------
/.husky/commit-msg:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | . "$(dirname "$0")/_/husky.sh"
3 | 
4 | npx --no-install commitlint --edit "$1"


--------------------------------------------------------------------------------
/.husky/pre-commit:
--------------------------------------------------------------------------------
1 | node ./scripts/verifymail.js
2 | npx --no-install nano-staged
3 | 


--------------------------------------------------------------------------------
/.npmrc:
--------------------------------------------------------------------------------
1 | registry=https://registry.npmmirror.com/
2 | engine-strict=true
3 | strict-peer-dependencies=false
4 | 


--------------------------------------------------------------------------------
/.prettierrc:
--------------------------------------------------------------------------------
 1 | {
 2 |   "singleQuote": true,
 3 |   "semi": false,
 4 |   "bracketSpacing": true,
 5 |   "tabWidth": 2,
 6 |   "useTabs": false,
 7 |   "printWidth": 120,
 8 |   "proseWrap": "preserve",
 9 |   "htmlWhitespaceSensitivity": "strict",
10 |   "trailingComma": "none",
11 |   "plugins": ["prettier-markdown-table"]
12 | }
13 | 


--------------------------------------------------------------------------------
/eslint.config.js:
--------------------------------------------------------------------------------
1 | import NutUI from '@nutui/eslint-config'
2 | import gitignore from 'eslint-config-flat-gitignore'
3 | 
4 | export default [
5 |   gitignore(),
6 |   ...NutUI
7 | ]
8 | 


--------------------------------------------------------------------------------
/packages/nutui-eslint-config/README.md:
--------------------------------------------------------------------------------
 1 | # ESLint Config of NutUI Vue
 2 | 
 3 | ## Install
 4 | 
 5 | ```sh
 6 | # pnpm
 7 | pnpm add @nutui/eslint-config -D
 8 | # npm
 9 | npm i @nutui/eslint-config -D
10 | # yarn
11 | yarn add @nutui/eslint-config -D
12 | ```
13 | 
14 | ## Usage
15 | 
16 | ```json
17 | {
18 |   "extends": "@nutui/eslint-config"
19 | }
20 | ```


--------------------------------------------------------------------------------
/packages/nutui-playground/README.md:
--------------------------------------------------------------------------------
 1 | # NutUI Vue SFC Playground
 2 | 
 3 | ## Run and build
 4 | 
 5 | ```sh
 6 | pnpm i
 7 | pnpm dev
 8 | pnpm build
 9 | ```
10 | 
11 | > Some codes refer to [Vue SFC Playground](https://github.com/vuejs/core/tree/main/packages/sfc-playground) 


--------------------------------------------------------------------------------
/packages/nutui-playground/public/style.js:
--------------------------------------------------------------------------------
1 | // It is empty to be compatible with Functional Component style import
2 | 


--------------------------------------------------------------------------------
/packages/nutui-playground/src/download/template/README.md:
--------------------------------------------------------------------------------
 1 | # NutUI Template
 2 | 
 3 | This is a project template using [Vite](https://vitejs.dev/). It requires [Node.js](https://nodejs.org) v12+.
 4 | 
 5 | To start:
 6 | 
 7 | ```sh
 8 | pnpm i
 9 | pnpm dev
10 | 
11 | # if using yarn:
12 | yarn
13 | yarn dev
14 | 
15 | # if using npm:
16 | npm install
17 | npm run dev
18 | ```
19 | 


--------------------------------------------------------------------------------
/packages/nutui-playground/src/download/template/main.js:
--------------------------------------------------------------------------------
1 | import { createApp } from 'vue'
2 | import App from './App.vue'
3 | import '@nutui/touch-emulator'
4 | 
5 | createApp(App).mount('#app')
6 | 


--------------------------------------------------------------------------------
/packages/nutui-playground/src/main.ts:
--------------------------------------------------------------------------------
 1 | import { createApp } from 'vue'
 2 | import App from './App.vue'
 3 | import './style.css'
 4 | 
 5 | // @ts-expect-error Custom window property
 6 | window.VUE_DEVTOOLS_CONFIG = {
 7 |   defaultSelectedAppId: 'repl'
 8 | }
 9 | 
10 | createApp(App).mount('#app')
11 | 


--------------------------------------------------------------------------------
/packages/nutui-playground/src/style.css:
--------------------------------------------------------------------------------
1 | html {
2 |   height: 100vh;
3 | }
4 | 
5 | body,
6 | #app {
7 |   height: 100%;
8 | }
9 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/.editorconfig:
--------------------------------------------------------------------------------
 1 | # http://editorconfig.org
 2 | root = true
 3 | 
 4 | [*]
 5 | indent_style = space
 6 | indent_size = 2
 7 | charset = utf-8
 8 | trim_trailing_whitespace = true
 9 | insert_final_newline = true
10 | 
11 | [*.md]
12 | trim_trailing_whitespace = false
13 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/.eslintrc:
--------------------------------------------------------------------------------
1 | {
2 |   "extends": ["taro/vue3", "@nutui/eslint-config"]
3 | }
4 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/.gitignore:
--------------------------------------------------------------------------------
 1 | dist/
 2 | deploy_versions/
 3 | .temp/
 4 | .rn_temp/
 5 | node_modules/
 6 | .DS_Store
 7 | .swc
 8 | src/app.config.ts
 9 | lib
10 | components.d.ts


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/README.md:
--------------------------------------------------------------------------------
1 | # nutui-taro-demo
2 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/babel.config.cjs:
--------------------------------------------------------------------------------
 1 | // babel-preset-taro 更多选项和默认值:
 2 | // https://github.com/NervJS/taro/blob/next/packages/babel-preset-taro/README.md
 3 | module.exports = {
 4 |   presets: [
 5 |     [
 6 |       'taro',
 7 |       {
 8 |         framework: 'vue3',
 9 |         ts: true
10 |       }
11 |     ]
12 |   ]
13 | }
14 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/config/dev.ts:
--------------------------------------------------------------------------------
1 | export default {
2 |   env: {
3 |     NODE_ENV: '"development"'
4 |   },
5 |   defineConstants: {},
6 |   mini: {},
7 |   h5: {}
8 | }
9 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/config/prod.ts:
--------------------------------------------------------------------------------
 1 | export default {
 2 |   env: {
 3 |     NODE_ENV: '"production"'
 4 |   },
 5 |   defineConstants: {},
 6 |   mini: {},
 7 |   h5: {
 8 |     publicPath: '/taro/vue/4x/demo/'
 9 |   }
10 | }
11 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/project.tt.json:
--------------------------------------------------------------------------------
 1 | {
 2 |   "miniprogramRoot": "./",
 3 |   "projectname": "@nutui/nutui-taro-demo",
 4 |   "appid": "touristappid",
 5 |   "setting": {
 6 |     "urlCheck": true,
 7 |     "es6": false,
 8 |     "postcss": false,
 9 |     "minified": false
10 |   },
11 |   "compileType": "miniprogram"
12 | }
13 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/basic/pages/button/block.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <nut-button block type="primary">Block</nut-button>
3 | </template>
4 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/basic/pages/button/color.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <nut-button color="#7232dd">Pure</nut-button>
3 |   <nut-button color="#7232dd" plain>Pure</nut-button>
4 |   <nut-button color="linear-gradient(to right, #ff6034, #ee0a24)"> Gradient </nut-button>
5 | </template>
6 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/basic/pages/button/disabled.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <nut-button disabled type="primary">Disabled</nut-button>
3 |   <nut-button plain disabled type="info">Disabled</nut-button>
4 |   <nut-button plain disabled type="primary">Disabled</nut-button>
5 | </template>
6 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/basic/pages/button/index.config.ts:
--------------------------------------------------------------------------------
1 | export default {
2 |   navigationBarTitleText: 'Button'
3 | }
4 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/basic/pages/button/plain.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <nut-button plain type="primary">Plain</nut-button>
3 |   <nut-button plain type="info">Plain</nut-button>
4 | </template>
5 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/basic/pages/button/shape.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <nut-button shape="square" type="primary">Square</nut-button>
3 |   <nut-button shape="round" type="info">Round</nut-button>
4 | </template>
5 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/basic/pages/button/size.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <nut-button size="large" type="primary">Large</nut-button>
3 |   <nut-button type="primary">Normal</nut-button>
4 |   <nut-button size="small" type="primary">Small</nut-button>
5 |   <nut-button size="mini" type="primary">Mini</nut-button>
6 | </template>
7 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/basic/pages/button/type.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <nut-button type="primary">Primary</nut-button>
3 |   <nut-button type="info">Info</nut-button>
4 |   <nut-button type="default">Default</nut-button>
5 |   <nut-button type="danger">Danger</nut-button>
6 |   <nut-button type="warning">Warning</nut-button>
7 |   <nut-button type="success">Success</nut-button>
8 | </template>
9 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/basic/pages/cell/align.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <nut-cell desc-text-align="left" desc="Description"></nut-cell>
3 | </template>
4 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/basic/pages/cell/center.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <nut-cell center title="Title" sub-title="Subtitle" desc="Description"></nut-cell>
3 | </template>
4 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/basic/pages/cell/desc.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <nut-cell title="Title">
3 |     <template #desc>
4 |       <span style="color: red">Description Slot</span>
5 |     </template>
6 |   </nut-cell>
7 | </template>
8 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/basic/pages/cell/group.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <nut-cell-group title="CellGroup Title" desc="CellGroup Description">
3 |     <nut-cell title="Cell"></nut-cell>
4 |     <nut-cell title="Link Style" is-link></nut-cell>
5 |   </nut-cell-group>
6 | </template>
7 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/basic/pages/cell/icon.vue:
--------------------------------------------------------------------------------
 1 | <template>
 2 |   <nut-cell title="Icon Slot" desc="Description">
 3 |     <template #icon>
 4 |       <My />
 5 |     </template>
 6 |   </nut-cell>
 7 | </template>
 8 | <script setup lang="ts">
 9 | import { My } from '@nutui/icons-vue-taro'
10 | </script>
11 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/basic/pages/cell/index.config.ts:
--------------------------------------------------------------------------------
1 | export default {
2 |   navigationBarTitleText: 'Cell'
3 | }
4 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/basic/pages/cell/link.vue:
--------------------------------------------------------------------------------
 1 | <template>
 2 |   <nut-cell title="Switch">
 3 |     <template #link>
 4 |       <nut-switch v-model="checked" />
 5 |     </template>
 6 |   </nut-cell>
 7 | </template>
 8 | <script setup lang="ts">
 9 | import { ref } from 'vue'
10 | const checked = ref(true)
11 | </script>
12 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/basic/pages/cell/size.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <nut-cell size="large" title="Title" desc="Description"></nut-cell>
3 |   <nut-cell size="large" title="Title" sub-title="Subtitle" desc="Description"></nut-cell>
4 | </template>
5 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/basic/pages/cell/slot.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <nut-cell>
3 |     <div>Content</div>
4 |   </nut-cell>
5 | </template>
6 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/basic/pages/cell/title.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <nut-cell desc="Description">
3 |     <template #title>
4 |       <span style="color: red">Title</span>
5 |     </template>
6 |   </nut-cell>
7 | </template>
8 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/basic/pages/configprovider/index.config.ts:
--------------------------------------------------------------------------------
1 | export default { navigationBarTitleText: 'ConfigProvider' }
2 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/basic/pages/icon/index.config.ts:
--------------------------------------------------------------------------------
1 | export default {
2 |   navigationBarTitleText: 'Icon'
3 | }
4 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/basic/pages/image/index.config.ts:
--------------------------------------------------------------------------------
1 | export default { navigationBarTitleText: 'Image' }
2 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/basic/pages/image/index.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <Demo>
3 |     <h2>基础用法</h2>
4 |     <nut-cell>
5 |       <nut-image></nut-image>
6 |     </nut-cell>
7 |   </Demo>
8 | </template>
9 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/basic/pages/overlay/basic.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <nut-button type="primary" @click="show = true">open</nut-button>
3 |   <nut-overlay v-model:visible="show"></nut-overlay>
4 | </template>
5 | <script setup lang="ts">
6 | import { ref } from 'vue'
7 | const show = ref(false)
8 | </script>
9 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/basic/pages/overlay/duration.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <nut-button type="primary" @click="show = true">duration</nut-button>
3 |   <nut-overlay v-model:visible="show" :duration="2.5"></nut-overlay>
4 | </template>
5 | <script setup lang="ts">
6 | import { ref } from 'vue'
7 | const show = ref(false)
8 | </script>
9 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/basic/pages/overlay/index.config.ts:
--------------------------------------------------------------------------------
1 | export default {
2 |   navigationBarTitleText: 'Overlay'
3 | }
4 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/basic/pages/overlay/lock.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <nut-button type="primary" @click="show = true">lock-scroll</nut-button>
3 |   <nut-overlay v-model:visible="show" :lock-scroll="true"></nut-overlay>
4 | </template>
5 | <script setup lang="ts">
6 | import { ref } from 'vue'
7 | const show = ref(false)
8 | </script>
9 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/basic/pages/overlay/mask.vue:
--------------------------------------------------------------------------------
 1 | <template>
 2 |   <nut-button type="primary" @click="show = true">style</nut-button>
 3 |   <nut-overlay
 4 |     v-model:visible="show"
 5 |     :overlay-style="{
 6 |       backgroundColor: 'rgba(0, 0, 0, .2)'
 7 |     }"
 8 |   ></nut-overlay>
 9 | </template>
10 | <script setup lang="ts">
11 | import { ref } from 'vue'
12 | const show = ref(false)
13 | </script>
14 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/basic/pages/popup/basic.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <nut-cell title="Center" is-link @click="show = true"></nut-cell>
3 |   <nut-popup v-model:visible="show" :style="{ padding: '30px 50px' }"> 正文 </nut-popup>
4 | </template>
5 | <script setup>
6 | import { ref } from 'vue'
7 | const show = ref(false)
8 | </script>
9 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/basic/pages/popup/index.config.ts:
--------------------------------------------------------------------------------
1 | export default {
2 |   navigationBarTitleText: 'Popup'
3 | }
4 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/basic/pages/popup/round.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <nut-cell title="Round" is-link @click="show = true"></nut-cell>
3 |   <nut-popup v-model:visible="show" position="bottom" closeable round :style="{ height: '30%' }"></nut-popup>
4 | </template>
5 | <script setup>
6 | import { ref } from 'vue'
7 | const show = ref(false)
8 | </script>
9 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/business/pages/address/index.config.js:
--------------------------------------------------------------------------------
1 | export default {
2 |   navigationBarTitleText: 'Address'
3 | }
4 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/business/pages/addresslist/index.config.js:
--------------------------------------------------------------------------------
1 | export default {
2 |   navigationBarTitleText: 'Addresslist'
3 | }
4 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/business/pages/avatarcropper/index.config.ts:
--------------------------------------------------------------------------------
1 | export default {
2 |   navigationBarTitleText: 'AvatarCropper'
3 | }
4 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/business/pages/barrage/index.config.js:
--------------------------------------------------------------------------------
1 | export default {
2 |   navigationBarTitleText: 'Barrage'
3 | }
4 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/business/pages/card/index.config.js:
--------------------------------------------------------------------------------
1 | export default {
2 |   navigationBarTitleText: 'Card'
3 | }
4 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/business/pages/category/index.config.js:
--------------------------------------------------------------------------------
1 | export default {
2 |   navigationBarTitleText: 'Category'
3 | }
4 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/business/pages/comment/index.config.ts:
--------------------------------------------------------------------------------
1 | export default { navigationBarTitleText: 'Comment' }
2 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/business/pages/ecard/index.config.ts:
--------------------------------------------------------------------------------
1 | export default { navigationBarTitleText: 'Ecard' }
2 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/business/pages/invoice/index.config.ts:
--------------------------------------------------------------------------------
1 | export default {
2 |   navigationBarTitleText: 'Invoice'
3 | }
4 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/business/pages/signature/index.config.ts:
--------------------------------------------------------------------------------
1 | export default {
2 |   navigationBarTitleText: 'Signature'
3 | }
4 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/business/pages/sku/index.config.js:
--------------------------------------------------------------------------------
1 | export default {
2 |   navigationBarTitleText: 'Sku'
3 | }
4 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/business/pages/timeselect/index.config.js:
--------------------------------------------------------------------------------
1 | export default {
2 |   navigationBarTitleText: 'TimeSelect'
3 | }
4 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/dentry/pages/calendar/index.config.ts:
--------------------------------------------------------------------------------
1 | export default {
2 |   navigationBarTitleText: 'Calendar'
3 | }
4 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/dentry/pages/calendarcard/first.vue:
--------------------------------------------------------------------------------
 1 | <template>
 2 |   <nut-calendar-card v-model="value" :first-day-of-week="1" @change="onChange"></nut-calendar-card>
 3 | </template>
 4 | <script setup lang="ts">
 5 | import { ref } from 'vue'
 6 | const value = ref(null)
 7 | const onChange = (val: Date) => {
 8 |   console.log(val)
 9 | }
10 | </script>
11 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/dentry/pages/calendarcard/index.config.ts:
--------------------------------------------------------------------------------
1 | export default {
2 |   navigationBarTitleText: 'CalendarCard'
3 | }
4 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/dentry/pages/calendarcard/range.vue:
--------------------------------------------------------------------------------
 1 | <template>
 2 |   <nut-calendar-card v-model="value" type="range" @change="onChange"></nut-calendar-card>
 3 | </template>
 4 | <script setup lang="ts">
 5 | import { ref } from 'vue'
 6 | const value = ref([])
 7 | const onChange = (val: Date) => {
 8 |   console.log(val)
 9 | }
10 | </script>
11 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/dentry/pages/calendarcard/single.vue:
--------------------------------------------------------------------------------
 1 | <template>
 2 |   <nut-calendar-card v-model="value" @change="onChange"></nut-calendar-card>
 3 | </template>
 4 | <script setup lang="ts">
 5 | import { ref } from 'vue'
 6 | const value = ref(new Date('2023-01-01'))
 7 | const onChange = (val: Date) => {
 8 |   console.log(val)
 9 | }
10 | </script>
11 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/dentry/pages/calendarcard/week.vue:
--------------------------------------------------------------------------------
 1 | <template>
 2 |   <nut-calendar-card v-model="value" type="week" @change="onChange"></nut-calendar-card>
 3 | </template>
 4 | <script setup lang="ts">
 5 | import { ref } from 'vue'
 6 | const value = ref([])
 7 | const onChange = (val: Date) => {
 8 |   console.log(val)
 9 | }
10 | </script>
11 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/dentry/pages/cascader/index.config.ts:
--------------------------------------------------------------------------------
1 | export default {
2 |   navigationBarTitleText: 'Cascader'
3 | }
4 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/dentry/pages/checkbox/basic.vue:
--------------------------------------------------------------------------------
 1 | <template>
 2 |   <nut-cell>
 3 |     <nut-checkbox v-model="val1"> Right </nut-checkbox>
 4 |     <nut-checkbox v-model="val2" text-position="left"> Left </nut-checkbox>
 5 |   </nut-cell>
 6 | </template>
 7 | <script setup>
 8 | import { ref } from 'vue'
 9 | const val1 = ref(true)
10 | const val2 = ref(false)
11 | </script>
12 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/dentry/pages/checkbox/disabled.vue:
--------------------------------------------------------------------------------
 1 | <template>
 2 |   <nut-cell>
 3 |     <nut-checkbox v-model="val1" disabled> checked </nut-checkbox>
 4 |     <nut-checkbox v-model="val2" disabled> unchecked </nut-checkbox>
 5 |   </nut-cell>
 6 | </template>
 7 | <script setup>
 8 | import { ref } from 'vue'
 9 | const val1 = ref(true)
10 | const val2 = ref(false)
11 | </script>
12 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/dentry/pages/checkbox/event.vue:
--------------------------------------------------------------------------------
 1 | <template>
 2 |   <nut-cell>
 3 |     <nut-checkbox v-model="val" @change="change"> Change </nut-checkbox>
 4 |   </nut-cell>
 5 | </template>
 6 | <script setup>
 7 | import { ref } from 'vue'
 8 | const val = ref(false)
 9 | const change = (state) => {
10 |   console.log(state)
11 | }
12 | </script>
13 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/dentry/pages/checkbox/indeterminate.vue:
--------------------------------------------------------------------------------
 1 | <template>
 2 |   <nut-cell>
 3 |     <nut-checkbox v-model="val" indeterminate> Indeterminate </nut-checkbox>
 4 |   </nut-cell>
 5 | </template>
 6 | <script setup>
 7 | import { ref } from 'vue'
 8 | const val = ref(false)
 9 | </script>
10 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/dentry/pages/checkbox/index.config.ts:
--------------------------------------------------------------------------------
1 | export default {
2 |   navigationBarTitleText: 'Checkbox'
3 | }
4 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/dentry/pages/checkbox/shape.vue:
--------------------------------------------------------------------------------
 1 | <template>
 2 |   <nut-cell>
 3 |     <nut-checkbox v-model="val1" shape="button"> Button </nut-checkbox>
 4 |     <nut-checkbox v-model="val2" shape="button"> Button </nut-checkbox>
 5 |   </nut-cell>
 6 | </template>
 7 | <script setup>
 8 | import { ref } from 'vue'
 9 | const val1 = ref(true)
10 | const val2 = ref(false)
11 | </script>
12 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/dentry/pages/checkbox/size.vue:
--------------------------------------------------------------------------------
 1 | <template>
 2 |   <nut-cell>
 3 |     <nut-checkbox v-model="val1" icon-size="25"> size 25 </nut-checkbox>
 4 |     <nut-checkbox v-model="val2" icon-size="10"> size 10 </nut-checkbox>
 5 |   </nut-cell>
 6 | </template>
 7 | <script setup>
 8 | import { ref } from 'vue'
 9 | const val1 = ref(false)
10 | const val2 = ref(false)
11 | </script>
12 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/dentry/pages/datepicker/index.config.ts:
--------------------------------------------------------------------------------
1 | export default {
2 |   navigationBarTitleText: 'DatePicker'
3 | }
4 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/dentry/pages/form/index.config.ts:
--------------------------------------------------------------------------------
1 | export default {
2 |   navigationBarTitleText: 'Form'
3 | }
4 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/dentry/pages/input/align.vue:
--------------------------------------------------------------------------------
 1 | <template>
 2 |   <nut-input v-model="val1" input-align="left" />
 3 |   <nut-input v-model="val2" input-align="center" />
 4 |   <nut-input v-model="val3" input-align="right" />
 5 | </template>
 6 | <script setup>
 7 | import { ref } from 'vue'
 8 | const val1 = ref('Left')
 9 | const val2 = ref('Center')
10 | const val3 = ref('Right')
11 | </script>
12 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/dentry/pages/input/basic.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <nut-input v-model="val" placeholder="Placeholder" />
3 | </template>
4 | <script setup>
5 | import { ref } from 'vue'
6 | const val = ref('')
7 | </script>
8 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/dentry/pages/input/border.vue:
--------------------------------------------------------------------------------
 1 | <template>
 2 |   <nut-input v-model="val1" :border="false" />
 3 |   <nut-input v-model="val2" :border="false" />
 4 | </template>
 5 | <script setup>
 6 | import { ref } from 'vue'
 7 | const val1 = ref('12345')
 8 | const val2 = ref('12345')
 9 | </script>
10 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/dentry/pages/input/count.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <nut-input v-model="val" show-word-limit :max-length="50" />
3 | </template>
4 | <script setup>
5 | import { ref } from 'vue'
6 | const val = ref('12345')
7 | </script>
8 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/dentry/pages/input/event.vue:
--------------------------------------------------------------------------------
 1 | <template>
 2 |   <nut-input v-model="val" clearable placeholder="Event" @clear="clear" @click-input="click" />
 3 | </template>
 4 | <script setup>
 5 | import { ref } from 'vue'
 6 | const val = ref('')
 7 | const clear = () => {
 8 |   console.log('clear')
 9 | }
10 | const click = () => {
11 |   console.log('click-input')
12 | }
13 | </script>
14 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/dentry/pages/input/form.vue:
--------------------------------------------------------------------------------
 1 | <template>
 2 |   <nut-form>
 3 |     <nut-form-item label="Label" label-align="center">
 4 |       <nut-input v-model="val" />
 5 |     </nut-form-item>
 6 |   </nut-form>
 7 | </template>
 8 | <script setup>
 9 | import { ref } from 'vue'
10 | const val = ref('')
11 | </script>
12 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/dentry/pages/input/index.config.ts:
--------------------------------------------------------------------------------
1 | export default {
2 |   navigationBarTitleText: 'Input'
3 | }
4 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/dentry/pages/input/status.vue:
--------------------------------------------------------------------------------
 1 | <template>
 2 |   <nut-input v-model="val1" disabled />
 3 |   <nut-input v-model="val2" readonly />
 4 | </template>
 5 | <script setup>
 6 | import { ref } from 'vue'
 7 | const val1 = ref('Disabled')
 8 | const val2 = ref('Readonly')
 9 | </script>
10 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/dentry/pages/inputnumber/basic.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <nut-input-number v-model="val" />
3 | </template>
4 | <script setup lang="ts">
5 | import { ref } from 'vue'
6 | const val = ref(1)
7 | </script>
8 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/dentry/pages/inputnumber/decimal.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <nut-input-number v-model="val" step="0.1" decimal-places="1" />
3 | </template>
4 | <script setup lang="ts">
5 | import { ref } from 'vue'
6 | const val = ref(1)
7 | </script>
8 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/dentry/pages/inputnumber/disabled.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <nut-input-number v-model="val" disabled />
3 | </template>
4 | <script setup lang="ts">
5 | import { ref } from 'vue'
6 | const val = ref(1)
7 | </script>
8 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/dentry/pages/inputnumber/index.config.ts:
--------------------------------------------------------------------------------
1 | export default {
2 |   navigationBarTitleText: 'InputNumber'
3 | }
4 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/dentry/pages/inputnumber/limit.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <nut-input-number v-model="val" :min="10" :max="20" />
3 | </template>
4 | <script setup lang="ts">
5 | import { ref } from 'vue'
6 | const val = ref(10)
7 | </script>
8 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/dentry/pages/inputnumber/readonly.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <nut-input-number v-model="val" readonly />
3 | </template>
4 | <script setup lang="ts">
5 | import { ref } from 'vue'
6 | const val = ref(1)
7 | </script>
8 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/dentry/pages/inputnumber/size.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <nut-input-number v-model="val" :button-size="30" :input-width="50" />
3 | </template>
4 | <script setup lang="ts">
5 | import { ref } from 'vue'
6 | const val = ref(1)
7 | </script>
8 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/dentry/pages/inputnumber/step.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <nut-input-number v-model="val" :step="5" />
3 | </template>
4 | <script setup lang="ts">
5 | import { ref } from 'vue'
6 | const val = ref(1)
7 | </script>
8 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/dentry/pages/numberkeyboard/index.config.ts:
--------------------------------------------------------------------------------
1 | export default {
2 |   navigationBarTitleText: 'NumberKeyboard'
3 | }
4 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/dentry/pages/picker/index.config.ts:
--------------------------------------------------------------------------------
1 | export default {
2 |   navigationBarTitleText: 'Picker'
3 | }
4 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/dentry/pages/radio/basic.vue:
--------------------------------------------------------------------------------
 1 | <template>
 2 |   <nut-radio-group v-model="val">
 3 |     <nut-radio label="1">Option 1</nut-radio>
 4 |     <nut-radio label="2">Option 2</nut-radio>
 5 |     <nut-radio label="3">Option 3</nut-radio>
 6 |   </nut-radio-group>
 7 | </template>
 8 | <script setup lang="ts">
 9 | import { ref } from 'vue'
10 | const val = ref('1')
11 | </script>
12 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/dentry/pages/radio/index.config.ts:
--------------------------------------------------------------------------------
1 | export default {
2 |   navigationBarTitleText: 'Radio'
3 | }
4 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/dentry/pages/range/basic.vue:
--------------------------------------------------------------------------------
 1 | <template>
 2 |   <nut-range v-model="val" @change="change"></nut-range>
 3 | </template>
 4 | <script setup lang="ts">
 5 | import { ref } from 'vue'
 6 | const val = ref(40)
 7 | const change = (value: number) => {
 8 |   console.log(value)
 9 | }
10 | </script>
11 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/dentry/pages/range/color.vue:
--------------------------------------------------------------------------------
 1 | <template>
 2 |   <nut-range v-model="val" inactive-color="red" button-color="blue" active-color="skyblue" @change="change"></nut-range>
 3 | </template>
 4 | <script setup lang="ts">
 5 | import { ref } from 'vue'
 6 | const val = ref(40)
 7 | const change = (value: number) => {
 8 |   console.log(value)
 9 | }
10 | </script>
11 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/dentry/pages/range/disabled.vue:
--------------------------------------------------------------------------------
 1 | <template>
 2 |   <nut-range v-model="val" disabled @change="change"></nut-range>
 3 | </template>
 4 | <script setup lang="ts">
 5 | import { ref } from 'vue'
 6 | const val = ref(40)
 7 | const change = (value: number) => {
 8 |   console.log(value)
 9 | }
10 | </script>
11 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/dentry/pages/range/hidden-range.vue:
--------------------------------------------------------------------------------
 1 | <template>
 2 |   <nut-range v-model="val" hidden-range @change="change"></nut-range>
 3 | </template>
 4 | <script setup lang="ts">
 5 | import { ref } from 'vue'
 6 | const val = ref(40)
 7 | const change = (value: number) => {
 8 |   console.log(value)
 9 | }
10 | </script>
11 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/dentry/pages/range/hidden-tag.vue:
--------------------------------------------------------------------------------
 1 | <template>
 2 |   <nut-range v-model="val" hidden-tag @change="change"></nut-range>
 3 | </template>
 4 | <script setup lang="ts">
 5 | import { ref } from 'vue'
 6 | const val = ref(40)
 7 | const change = (value: number) => {
 8 |   console.log(value)
 9 | }
10 | </script>
11 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/dentry/pages/range/index.config.ts:
--------------------------------------------------------------------------------
1 | export default {
2 |   navigationBarTitleText: 'Range'
3 | }
4 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/dentry/pages/range/limit.vue:
--------------------------------------------------------------------------------
 1 | <template>
 2 |   <nut-range v-model="val" :max="10" :min="-10" @change="change" />
 3 | </template>
 4 | <script setup lang="ts">
 5 | import { ref } from 'vue'
 6 | const val = ref(0)
 7 | const change = (value: number) => {
 8 |   console.log(value)
 9 | }
10 | </script>
11 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/dentry/pages/range/range.vue:
--------------------------------------------------------------------------------
 1 | <template>
 2 |   <nut-range v-model="val" range @change="change"></nut-range>
 3 | </template>
 4 | <script setup lang="ts">
 5 | import { ref } from 'vue'
 6 | const val = ref([20, 80])
 7 | const change = (value: number[]) => {
 8 |   console.log(value)
 9 | }
10 | </script>
11 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/dentry/pages/range/step.vue:
--------------------------------------------------------------------------------
 1 | <template>
 2 |   <nut-range v-model="val" :step="5" @change="change"></nut-range>
 3 | </template>
 4 | <script setup lang="ts">
 5 | import { ref } from 'vue'
 6 | const val = ref(20)
 7 | const change = (value: number) => {
 8 |   console.log(value)
 9 | }
10 | </script>
11 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/dentry/pages/rate/basic.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <nut-rate v-model="value" />
3 | </template>
4 | <script setup lang="ts">
5 | import { ref } from 'vue'
6 | const value = ref(3)
7 | </script>
8 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/dentry/pages/rate/color.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <nut-rate v-model="value" active-color="skyblue" />
3 | </template>
4 | <script setup lang="ts">
5 | import { ref } from 'vue'
6 | const value = ref(3)
7 | </script>
8 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/dentry/pages/rate/count.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <nut-rate v-model="value" :count="10" />
3 | </template>
4 | <script setup lang="ts">
5 | import { ref } from 'vue'
6 | const value = ref(3)
7 | </script>
8 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/dentry/pages/rate/disabled.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <nut-rate v-model="value" disabled />
3 | </template>
4 | <script setup lang="ts">
5 | import { ref } from 'vue'
6 | const value = ref(3)
7 | </script>
8 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/dentry/pages/rate/event.vue:
--------------------------------------------------------------------------------
 1 | <template>
 2 |   <nut-rate v-model="value" @change="onChange" />
 3 | </template>
 4 | <script setup lang="ts">
 5 | import { ref } from 'vue'
 6 | const value = ref(3)
 7 | const onChange = (val: number) => {
 8 |   console.log(val)
 9 | }
10 | </script>
11 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/dentry/pages/rate/half.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <nut-rate v-model="value" allow-half />
3 | </template>
4 | <script setup lang="ts">
5 | import { ref } from 'vue'
6 | const value = ref(3.5)
7 | </script>
8 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/dentry/pages/rate/icon.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <nut-rate v-model="value" :custom-icon="HeartFill" />
3 | </template>
4 | <script setup lang="ts">
5 | import { ref } from 'vue'
6 | import { HeartFill } from '@nutui/icons-vue-taro'
7 | const value = ref(3)
8 | </script>
9 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/dentry/pages/rate/index.config.ts:
--------------------------------------------------------------------------------
1 | export default {
2 |   navigationBarTitleText: 'Rate'
3 | }
4 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/dentry/pages/rate/read.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <nut-rate v-model="value" readonly />
3 | </template>
4 | <script setup lang="ts">
5 | import { ref } from 'vue'
6 | const value = ref(3)
7 | </script>
8 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/dentry/pages/rate/size.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <nut-rate v-model="value" size="35" />
3 | </template>
4 | <script setup lang="ts">
5 | import { ref } from 'vue'
6 | const value = ref(3)
7 | </script>
8 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/dentry/pages/searchbar/background.vue:
--------------------------------------------------------------------------------
 1 | <template>
 2 |   <nut-searchbar
 3 |     v-model="val"
 4 |     background="linear-gradient(to right, #9866F0, #EB4D50)"
 5 |     input-background="#fff"
 6 |   ></nut-searchbar>
 7 | </template>
 8 | <script setup lang="ts">
 9 | import { ref } from 'vue'
10 | const val = ref('')
11 | </script>
12 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/dentry/pages/searchbar/basic.vue:
--------------------------------------------------------------------------------
 1 | <template>
 2 |   <nut-searchbar v-model="val" @search="search"></nut-searchbar>
 3 | </template>
 4 | <script setup lang="ts">
 5 | import { ref } from 'vue'
 6 | const val = ref('')
 7 | const search = (text: string) => {
 8 |   console.log('search', text)
 9 | }
10 | </script>
11 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/dentry/pages/searchbar/focus.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <nut-searchbar v-model="val" :focus-style="{ outline: '1px solid red' }"></nut-searchbar>
3 | </template>
4 | <script setup lang="ts">
5 | import { ref } from 'vue'
6 | const val = ref('')
7 | </script>
8 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/dentry/pages/searchbar/index.config.ts:
--------------------------------------------------------------------------------
1 | export default {
2 |   navigationBarTitleText: 'Searchbar'
3 | }
4 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/dentry/pages/searchbar/left.vue:
--------------------------------------------------------------------------------
 1 | <template>
 2 |   <nut-searchbar v-model="val">
 3 |     <template #leftout> label </template>
 4 |     <template #leftin>
 5 |       <Search2 />
 6 |     </template>
 7 |   </nut-searchbar>
 8 | </template>
 9 | <script setup lang="ts">
10 | import { ref } from 'vue'
11 | import { Search2 } from '@nutui/icons-vue-taro'
12 | const val = ref('')
13 | </script>
14 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/dentry/pages/searchbar/right.vue:
--------------------------------------------------------------------------------
 1 | <template>
 2 |   <nut-searchbar v-model="val">
 3 |     <template #rightout> Search </template>
 4 |     <template #rightin>
 5 |       <Search2 />
 6 |     </template>
 7 |   </nut-searchbar>
 8 | </template>
 9 | <script setup lang="ts">
10 | import { ref } from 'vue'
11 | import { Search2 } from '@nutui/icons-vue-taro'
12 | const val = ref('')
13 | </script>
14 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/dentry/pages/searchbar/shape.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <nut-searchbar v-model="val" shape="square"></nut-searchbar>
3 | </template>
4 | <script setup lang="ts">
5 | import { ref } from 'vue'
6 | const val = ref('')
7 | </script>
8 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/dentry/pages/shortpassword/index.config.ts:
--------------------------------------------------------------------------------
1 | export default {
2 |   navigationBarTitleText: 'Shortpassword'
3 | }
4 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/dentry/pages/textarea/basic.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <nut-textarea v-model="val" />
3 | </template>
4 | <script setup>
5 | import { ref } from 'vue'
6 | const val = ref('')
7 | </script>
8 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/dentry/pages/textarea/focus.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <nut-textarea v-model="val" autofocus />
3 | </template>
4 | <script setup>
5 | import { ref } from 'vue'
6 | const val = ref('')
7 | </script>
8 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/dentry/pages/textarea/index.config.ts:
--------------------------------------------------------------------------------
1 | export default {
2 |   navigationBarTitleText: 'Textarea'
3 | }
4 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/dentry/pages/textarea/limit.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <nut-textarea v-model="val" limit-show :max-length="20" />
3 | </template>
4 | <script setup>
5 | import { ref } from 'vue'
6 | const val = ref('')
7 | </script>
8 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/dentry/pages/textarea/row.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <nut-textarea v-model="val" autosize />
3 | </template>
4 | <script setup>
5 | import { ref } from 'vue'
6 | const val = ref('')
7 | </script>
8 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/dentry/pages/textarea/status.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <nut-textarea readonly model-value="Textarea Readonly" />
3 |   <nut-textarea disabled model-value="Textarea Disabled" />
4 | </template>
5 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/dentry/pages/uploader/index.config.ts:
--------------------------------------------------------------------------------
1 | export default {
2 |   navigationBarTitleText: 'Uploader'
3 | }
4 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/exhibition/pages/animate/index.config.ts:
--------------------------------------------------------------------------------
1 | export default { navigationBarTitleText: 'Animate' }
2 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/exhibition/pages/avatar/click.vue:
--------------------------------------------------------------------------------
 1 | <template>
 2 |   <nut-avatar @click="click"><My /></nut-avatar>
 3 | </template>
 4 | <script setup lang="ts">
 5 | import { My } from '@nutui/icons-vue-taro'
 6 | const click = () => {
 7 |   console.log('click')
 8 | }
 9 | </script>
10 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/exhibition/pages/avatar/color.vue:
--------------------------------------------------------------------------------
 1 | <template>
 2 |   <nut-avatar bg-color="red">
 3 |     <My color="white" />
 4 |   </nut-avatar>
 5 |   <nut-avatar color="white" bg-color="blue">小明</nut-avatar>
 6 | </template>
 7 | <script setup lang="ts">
 8 | import { My } from '@nutui/icons-vue-taro'
 9 | </script>
10 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/exhibition/pages/avatar/index.config.ts:
--------------------------------------------------------------------------------
1 | export default {
2 |   navigationBarTitleText: 'Avatar'
3 | }
4 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/exhibition/pages/avatar/shape.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <nut-avatar shape="square"><My /></nut-avatar>
3 |   <nut-avatar shape="round"><My /></nut-avatar>
4 | </template>
5 | <script setup lang="ts">
6 | import { My } from '@nutui/icons-vue-taro'
7 | </script>
8 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/exhibition/pages/badge/index.config.ts:
--------------------------------------------------------------------------------
1 | export default {
2 |   navigationBarTitleText: 'Badge'
3 | }
4 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/exhibition/pages/circleprogress/basic.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <nut-circle-progress :progress="20" />
3 | </template>
4 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/exhibition/pages/circleprogress/color.vue:
--------------------------------------------------------------------------------
 1 | <template>
 2 |   <nut-space>
 3 |     <nut-circle-progress :progress="50" color="skyblue" />
 4 |     <nut-circle-progress :progress="100" :color="gradientColor" />
 5 |   </nut-space>
 6 | </template>
 7 | <script setup lang="ts">
 8 | const gradientColor = {
 9 |   '0%': '#FF5E5E',
10 |   '100%': '#FFA062'
11 | }
12 | </script>
13 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/exhibition/pages/circleprogress/content.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <nut-circle-progress :progress="90"> 90! </nut-circle-progress>
3 | </template>
4 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/exhibition/pages/circleprogress/index.config.ts:
--------------------------------------------------------------------------------
1 | export default {
2 |   navigationBarTitleText: 'CricleProgress'
3 | }
4 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/exhibition/pages/circleprogress/size.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <nut-space align="baseline">
3 |     <nut-circle-progress :progress="80" :radius="80" />
4 |     <nut-circle-progress :progress="50" :radius="50" />
5 |     <nut-circle-progress :progress="30" :radius="30" />
6 |   </nut-space>
7 | </template>
8 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/exhibition/pages/circleprogress/width.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <nut-circle-progress :progress="50" :stroke-width="10" />
3 | </template>
4 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/exhibition/pages/collapse/disabled.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <nut-collapse>
3 |     <nut-collapse-item name="name1" title="Title 1"> Content 1 </nut-collapse-item>
4 |     <nut-collapse-item name="name2" title="Title 2" disabled> Content 2 </nut-collapse-item>
5 |     <nut-collapse-item name="name3" title="Title 3" disabled> Content 3 </nut-collapse-item>
6 |   </nut-collapse>
7 | </template>
8 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/exhibition/pages/collapse/extra.vue:
--------------------------------------------------------------------------------
 1 | <template>
 2 |   <nut-collapse>
 3 |     <nut-collapse-item name="name1" title="Title 1">
 4 |       <template #extra> Extra Content </template>
 5 |       Content 1
 6 |     </nut-collapse-item>
 7 |     <nut-collapse-item name="name2" title="Title 2"> Content 2 </nut-collapse-item>
 8 |   </nut-collapse>
 9 | </template>
10 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/exhibition/pages/collapse/index.config.ts:
--------------------------------------------------------------------------------
1 | export default {
2 |   navigationBarTitleText: 'Collapse'
3 | }
4 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/exhibition/pages/countdown/basic.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <nut-countdown :start-time="start" :end-time="end"></nut-countdown>
3 | </template>
4 | 
5 | <script setup>
6 | const start = Date.now()
7 | const end = Date.now() + 60 * 1000
8 | </script>
9 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/exhibition/pages/countdown/format.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <nut-countdown :end-time="time" format="DD 天 HH 时 mm 分 ss 秒" />
3 | </template>
4 | 
5 | <script setup>
6 | const time = Date.now() + 60 * 1000
7 | </script>
8 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/exhibition/pages/countdown/index.config.ts:
--------------------------------------------------------------------------------
1 | export default {
2 |   navigationBarTitleText: 'Countdown'
3 | }
4 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/exhibition/pages/countdown/millisecond.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <nut-countdown :end-time="time" millisecond format="HH:mm:ss:SS" />
3 | </template>
4 | 
5 | <script setup>
6 | const time = Date.now() + 60 * 1000
7 | </script>
8 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/exhibition/pages/countup/basic.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <nut-countup :init-num="0" :end-num="200"></nut-countup>
3 |   <nut-countup :init-num="150" :end-num="0" :speed="2.62" :to-fixed="2"></nut-countup>
4 |   <nut-countup :init-num="1000" :end-num="0" :speed="50" :to-fixed="2"></nut-countup>
5 | </template>
6 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/exhibition/pages/countup/index.config.ts:
--------------------------------------------------------------------------------
1 | export default {
2 |   navigationBarTitleText: 'Countup'
3 | }
4 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/exhibition/pages/ellipsis/index.config.ts:
--------------------------------------------------------------------------------
1 | export default { navigationBarTitleText: 'Ellipsis' }
2 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/exhibition/pages/empty/basic.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <nut-empty description="404"></nut-empty>
3 | </template>
4 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/exhibition/pages/empty/bottom.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <nut-empty image="error" description="Error">
3 |     <div style="margin-top: 10px">
4 |       <nut-button type="primary">Refresh</nut-button>
5 |     </div>
6 |   </nut-empty>
7 | </template>
8 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/exhibition/pages/empty/custom.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <nut-empty
3 |     image="https://static-ftcms.jd.com/p/files/61a9e3313985005b3958672e.png"
4 |     description="Description"
5 |   ></nut-empty>
6 | </template>
7 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/exhibition/pages/empty/index.config.ts:
--------------------------------------------------------------------------------
1 | export default {
2 |   navigationBarTitleText: 'Empty'
3 | }
4 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/exhibition/pages/imagepreview/index.config.ts:
--------------------------------------------------------------------------------
1 | export default {
2 |   navigationBarTitleText: 'ImagePreview'
3 | }
4 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/exhibition/pages/list/index.config.ts:
--------------------------------------------------------------------------------
1 | export default { navigationBarTitleText: 'List' }
2 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/exhibition/pages/noticebar/basic.vue:
--------------------------------------------------------------------------------
 1 | <template>
 2 |   <nut-noticebar :text="text" />
 3 | </template>
 4 | <script setup>
 5 | import { ref } from 'vue'
 6 | const text = ref(
 7 |   'NutUI 是京东风格的移动端组件库,使用 Vue 语言来编写可以在 H5,小程序平台上的应用,帮助研发人员提升开发效率,改善开发体验。'
 8 | )
 9 | </script>
10 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/exhibition/pages/noticebar/close.vue:
--------------------------------------------------------------------------------
 1 | <template>
 2 |   <nut-noticebar :text="text" close-mode />
 3 | </template>
 4 | <script setup>
 5 | import { ref } from 'vue'
 6 | const text = ref(
 7 |   'NutUI 是京东风格的移动端组件库,使用 Vue 语言来编写可以在 H5,小程序平台上的应用,帮助研发人员提升开发效率,改善开发体验。'
 8 | )
 9 | </script>
10 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/exhibition/pages/noticebar/custom.vue:
--------------------------------------------------------------------------------
 1 | <template>
 2 |   <nut-noticebar :text="text" background="skyblue" color="rgba(0,0,0,0.8)" :left-icon="false" />
 3 | </template>
 4 | <script setup>
 5 | import { ref } from 'vue'
 6 | const text = ref(
 7 |   'NutUI 是京东风格的移动端组件库,使用 Vue 语言来编写可以在 H5,小程序平台上的应用,帮助研发人员提升开发效率,改善开发体验。'
 8 | )
 9 | </script>
10 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/exhibition/pages/noticebar/index.config.ts:
--------------------------------------------------------------------------------
1 | export default {
2 |   navigationBarTitleText: 'Noticebar'
3 | }
4 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/exhibition/pages/noticebar/wrap.vue:
--------------------------------------------------------------------------------
 1 | <template>
 2 |   <nut-noticebar :text="text" wrapable />
 3 | </template>
 4 | <script setup>
 5 | import { ref } from 'vue'
 6 | const text = ref(
 7 |   'NutUI 是京东风格的移动端组件库,使用 Vue 语言来编写可以在 H5,小程序平台上的应用,帮助研发人员提升开发效率,改善开发体验。'
 8 | )
 9 | </script>
10 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/exhibition/pages/popover/index.config.ts:
--------------------------------------------------------------------------------
1 | export default {
2 |   navigationBarTitleText: 'Popover'
3 | }
4 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/exhibition/pages/price/decimal.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <nut-price :price="8888" :decimal-digits="0" />
3 | </template>
4 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/exhibition/pages/price/index.config.ts:
--------------------------------------------------------------------------------
1 | export default {
2 |   navigationBarTitleText: 'Price'
3 | }
4 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/exhibition/pages/price/position.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <nut-price :price="8888.01" position="after" symbol="RMB" />
3 | </template>
4 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/exhibition/pages/price/size.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <nut-price :price="0" size="large" />
3 |   <nut-price :price="0" size="normal" />
4 |   <nut-price :price="0" size="small" />
5 | </template>
6 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/exhibition/pages/price/symbol.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <nut-price :price="10010.01" symbol="
quot; />
3 | </template>
4 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/exhibition/pages/price/thousands.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <nut-price :price="15213.1221" :decimal-digits="3" thousands />
3 | </template>
4 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/exhibition/pages/price/through.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <nut-price :price="8888" :decimal-digits="0" strike-through />
3 | </template>
4 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/exhibition/pages/progress/basic.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <nut-progress :percentage="30" />
3 | </template>
4 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/exhibition/pages/progress/color.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <nut-progress :percentage="30" stroke-color="skyblue" stroke-width="15" text-color="green" />
3 | </template>
4 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/exhibition/pages/progress/content.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <nut-progress :percentage="60" text-inside>
3 |     <image
4 |       src="https://img11.360buyimg.com/imagetools/jfs/t1/137646/13/7132/1648/5f4c748bE43da8ddd/a3f06d51dcae7b60.png"
5 |       style="width: 30px; height: 30px"
6 |     />
7 |   </nut-progress>
8 | </template>
9 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/exhibition/pages/progress/index.config.ts:
--------------------------------------------------------------------------------
1 | export default {
2 |   navigationBarTitleText: 'Progress'
3 | }
4 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/exhibition/pages/progress/inside.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <nut-progress :percentage="60" text-inside />
3 | </template>
4 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/exhibition/pages/progress/size.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <nut-progress :percentage="30" text-inside size="small"> </nut-progress>
3 |   <nut-progress :percentage="50" text-inside size="base"> </nut-progress>
4 |   <nut-progress :percentage="70" text-inside size="large"> </nut-progress>
5 | </template>
6 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/exhibition/pages/progress/text.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <nut-progress :percentage="50" :show-text="false" />
3 | </template>
4 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/exhibition/pages/skeleton/avatar.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <nut-skeleton width="250px" height="15px" animated avatar avatar-size="60px" row="3"> </nut-skeleton>
3 | </template>
4 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/exhibition/pages/skeleton/basic.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <nut-skeleton width="200px" height="15px" animated></nut-skeleton>
3 | </template>
4 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/exhibition/pages/skeleton/index.config.ts:
--------------------------------------------------------------------------------
1 | export default {
2 |   navigationBarTitleText: 'Skeleton'
3 | }
4 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/exhibition/pages/skeleton/round.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <nut-skeleton width="250px" height="15px" animated round></nut-skeleton>
3 | </template>
4 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/exhibition/pages/skeleton/row.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <nut-skeleton width="250px" height="15px" animated row="3"> </nut-skeleton>
3 | </template>
4 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/exhibition/pages/steps/desc.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <nut-steps :current="2">
3 |     <nut-step title="未开始" content="描述信息">1</nut-step>
4 |     <nut-step title="进行中" content="描述信息">2</nut-step>
5 |     <nut-step title="已完成" content="描述信息">3</nut-step>
6 |   </nut-steps>
7 | </template>
8 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/exhibition/pages/steps/dot.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <nut-steps :current="2" progress-dot>
3 |     <nut-step title="未开始">1</nut-step>
4 |     <nut-step title="进行中">2</nut-step>
5 |     <nut-step title="已完成">3</nut-step>
6 |   </nut-steps>
7 | </template>
8 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/exhibition/pages/steps/index.config.ts:
--------------------------------------------------------------------------------
1 | export default {
2 |   navigationBarTitleText: 'Steps'
3 | }
4 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/exhibition/pages/swiper/index.config.ts:
--------------------------------------------------------------------------------
1 | export default {
2 |   navigationBarTitleText: 'Swiper'
3 | }
4 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/exhibition/pages/table/index.config.ts:
--------------------------------------------------------------------------------
1 | export default {
2 |   navigationBarTitleText: 'Table'
3 | }
4 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/exhibition/pages/tag/basic.vue:
--------------------------------------------------------------------------------
 1 | <template>
 2 |   <nut-space>
 3 |     <nut-tag> default </nut-tag>
 4 |     <nut-tag type="primary"> primary </nut-tag>
 5 |     <nut-tag type="success"> success </nut-tag>
 6 |     <nut-tag type="danger"> danger </nut-tag>
 7 |     <nut-tag type="warning"> warning </nut-tag>
 8 |   </nut-space>
 9 | </template>
10 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/exhibition/pages/tag/color.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <nut-space>
3 |     <nut-tag color="#FA685D"> background </nut-tag>
4 |     <nut-tag color="#E9E9E9" text-color="#999999"> text </nut-tag>
5 |     <nut-tag color="#FA2400" plain> plain </nut-tag>
6 |   </nut-space>
7 | </template>
8 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/exhibition/pages/tag/index.config.ts:
--------------------------------------------------------------------------------
1 | export default {
2 |   navigationBarTitleText: 'Tag'
3 | }
4 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/exhibition/pages/tour/index.config.ts:
--------------------------------------------------------------------------------
1 | export default {
2 |   navigationBarTitleText: 'Tour'
3 | }
4 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/exhibition/pages/trendarrow/basic.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <nut-cell>
3 |     <nut-trend-arrow :rate="1" />
4 |     <nut-trend-arrow :rate="-0.2535" />
5 |   </nut-cell>
6 | </template>
7 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/exhibition/pages/trendarrow/digits.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <nut-cell>
3 |     <nut-trend-arrow :digits="1" :rate="10.2365" />
4 |     <nut-trend-arrow :digits="3" :rate="-0.2535" />
5 |   </nut-cell>
6 | </template>
7 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/exhibition/pages/trendarrow/index.config.ts:
--------------------------------------------------------------------------------
1 | export default { navigationBarTitleText: 'TrendArrow' }
2 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/exhibition/pages/trendarrow/left.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <nut-cell>
3 |     <nut-trend-arrow arrow-left :rate="0.2535" />
4 |     <nut-trend-arrow arrow-left :rate="-0.2535" />
5 |   </nut-cell>
6 | </template>
7 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/exhibition/pages/trendarrow/sign.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <nut-cell>
3 |     <nut-trend-arrow show-sign :rate="1" />
4 |     <nut-trend-arrow show-sign :rate="-0.2535" />
5 |   </nut-cell>
6 | </template>
7 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/exhibition/pages/trendarrow/zero.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <nut-cell>
3 |     <nut-trend-arrow show-sign :rate="0" />
4 |     <nut-trend-arrow show-sign show-zero :rate="0" />
5 |   </nut-cell>
6 | </template>
7 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/exhibition/pages/watermark/index.config.ts:
--------------------------------------------------------------------------------
1 | export default { navigationBarTitleText: 'Watermark' }
2 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/exhibition/pages/watermark/multi.vue:
--------------------------------------------------------------------------------
 1 | <template>
 2 |   <nut-cell style="height: 240px">
 3 |     <nut-watermark
 4 |       :full-page="false"
 5 |       :gap-y="24"
 6 |       font-color="#fa2c19"
 7 |       :content="['nutui', 'watermark']"
 8 |     ></nut-watermark>
 9 |   </nut-cell>
10 | </template>
11 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/feedback/pages/actionsheet/index.config.ts:
--------------------------------------------------------------------------------
1 | export default {
2 |   navigationBarTitleText: 'ActionSheet'
3 | }
4 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/feedback/pages/backtop/index.config.ts:
--------------------------------------------------------------------------------
1 | export default {
2 |   navigationBarTitleText: 'Backtop'
3 | }
4 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/feedback/pages/backtop/index.vue:
--------------------------------------------------------------------------------
 1 | <template>
 2 |   <Demo class="bg-w">
 3 |     <view style="height: 20px"></view>
 4 |     <Basic />
 5 |   </Demo>
 6 | </template>
 7 | 
 8 | <script lang="ts" setup>
 9 | import Basic from './basic.vue'
10 | </script>
11 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/feedback/pages/dialog/index.config.ts:
--------------------------------------------------------------------------------
1 | export default {
2 |   navigationBarTitleText: 'Dialog'
3 | }
4 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/feedback/pages/drag/basic.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <nut-drag>
3 |     <nut-button type="primary">move</nut-button>
4 |   </nut-drag>
5 | </template>
6 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/feedback/pages/drag/direction.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <nut-drag direction="x">
3 |     <nut-button type="primary">DirectionX</nut-button>
4 |   </nut-drag>
5 |   <nut-drag direction="y">
6 |     <nut-button type="primary">DirectionY</nut-button>
7 |   </nut-drag>
8 | </template>
9 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/feedback/pages/drag/index.config.ts:
--------------------------------------------------------------------------------
1 | export default {
2 |   navigationBarTitleText: 'Drag'
3 | }
4 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/feedback/pages/infiniteloading/index.config.js:
--------------------------------------------------------------------------------
1 | export default {
2 |   navigationBarTitleText: 'InfiniteLoading'
3 | }
4 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/feedback/pages/notify/index.config.ts:
--------------------------------------------------------------------------------
1 | export default {
2 |   navigationBarTitleText: 'Notify'
3 | }
4 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/feedback/pages/swipe/basic.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <nut-swipe>
3 |     <nut-cell round-radius="0" title="Swipe Left" />
4 |     <template #right>
5 |       <nut-button shape="square" style="height: 100%" type="danger">Button</nut-button>
6 |     </template>
7 |   </nut-swipe>
8 | </template>
9 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/feedback/pages/swipe/disabled.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <nut-swipe disabled>
3 |     <nut-cell round-radius="0" title="Disabled" />
4 |     <template #right>
5 |       <nut-button shape="square" style="height: 100%" type="danger">Button</nut-button>
6 |     </template>
7 |   </nut-swipe>
8 | </template>
9 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/feedback/pages/swipe/index.config.ts:
--------------------------------------------------------------------------------
1 | export default {
2 |   navigationBarTitleText: 'Swipe'
3 | }
4 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/feedback/pages/switch/async.vue:
--------------------------------------------------------------------------------
 1 | <template>
 2 |   <nut-switch :model-value="val" @change="change" />
 3 | </template>
 4 | <script setup>
 5 | import { ref } from 'vue'
 6 | const val = ref(true)
 7 | const change = (value) => {
 8 |   setTimeout(() => {
 9 |     val.value = value
10 |   }, 2000)
11 | }
12 | </script>
13 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/feedback/pages/switch/basic.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <nut-switch v-model="val" />
3 | </template>
4 | <script setup>
5 | import { ref } from 'vue'
6 | const val = ref(true)
7 | </script>
8 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/feedback/pages/switch/color.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <nut-switch v-model="val" active-color="skyblue" />
3 | </template>
4 | <script setup>
5 | import { ref } from 'vue'
6 | const val = ref(true)
7 | </script>
8 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/feedback/pages/switch/disabled.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <nut-switch v-model="val" disabled />
3 | </template>
4 | <script setup>
5 | import { ref } from 'vue'
6 | const val = ref(true)
7 | </script>
8 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/feedback/pages/switch/event.vue:
--------------------------------------------------------------------------------
 1 | <template>
 2 |   <nut-switch v-model="val" @change="change" />
 3 | </template>
 4 | <script setup>
 5 | import { ref } from 'vue'
 6 | const val = ref(true)
 7 | const change = (value) => {
 8 |   console.log(value)
 9 | }
10 | </script>
11 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/feedback/pages/switch/icon.vue:
--------------------------------------------------------------------------------
 1 | <template>
 2 |   <nut-switch v-model="val" loading>
 3 |     <template #icon>
 4 |       <Loading name="loading" />
 5 |     </template>
 6 |   </nut-switch>
 7 | </template>
 8 | <script setup>
 9 | import { ref } from 'vue'
10 | import { Loading } from '@nutui/icons-vue-taro'
11 | const val = ref(true)
12 | </script>
13 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/feedback/pages/switch/index.config.ts:
--------------------------------------------------------------------------------
1 | export default {
2 |   navigationBarTitleText: 'Switch'
3 | }
4 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/feedback/pages/switch/loading.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <nut-switch v-model="val" loading active-color="red" />
3 | </template>
4 | <script setup>
5 | import { ref } from 'vue'
6 | const val = ref(true)
7 | </script>
8 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/feedback/pages/switch/text.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <nut-switch v-model="val" active-text="开" inactive-text="关" />
3 | </template>
4 | <script setup>
5 | import { ref } from 'vue'
6 | const val = ref(true)
7 | </script>
8 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/feedback/pages/toast/index.config.ts:
--------------------------------------------------------------------------------
1 | export default {
2 |   navigationBarTitleText: 'Toast'
3 | }
4 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/layout/pages/divider/basic.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <nut-divider />
3 | </template>
4 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/layout/pages/divider/custom.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <nut-divider :style="{ color: '#1989fa', borderColor: '#1989fa', padding: '0 16px' }"> text </nut-divider>
3 | </template>
4 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/layout/pages/divider/dashed.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <nut-divider dashed> text </nut-divider>
3 | </template>
4 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/layout/pages/divider/index.config.ts:
--------------------------------------------------------------------------------
1 | export default {
2 |   navigationBarTitleText: 'Divider'
3 | }
4 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/layout/pages/divider/position.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <nut-divider content-position="left"> text </nut-divider>
3 |   <nut-divider> text </nut-divider>
4 |   <nut-divider content-position="right"> text </nut-divider>
5 | </template>
6 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/layout/pages/divider/text.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <nut-divider> text </nut-divider>
3 | </template>
4 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/layout/pages/divider/vertical.vue:
--------------------------------------------------------------------------------
 1 | <template>
 2 |   <div :style="{ fontSize: '14px', marginLeft: '27px', color: '#909ca4' }">
 3 |     text1
 4 |     <nut-divider direction="vertical" />
 5 |     link
 6 |     <nut-divider direction="vertical" />
 7 |     text2
 8 |   </div>
 9 | </template>
10 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/layout/pages/grid/index.config.ts:
--------------------------------------------------------------------------------
1 | export default {
2 |   navigationBarTitleText: 'Grid'
3 | }
4 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/layout/pages/layout/index.config.ts:
--------------------------------------------------------------------------------
1 | export default {
2 |   navigationBarTitleText: 'Layout'
3 | }
4 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/layout/pages/space/basic.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <nut-space>
3 |     <nut-button>Button</nut-button>
4 |     <nut-button>Button</nut-button>
5 |     <nut-button>Button</nut-button>
6 |     <nut-button>Button</nut-button>
7 |   </nut-space>
8 | </template>
9 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/layout/pages/space/direction.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <nut-space direction="vertical" fill>
3 |     <nut-button block>Button</nut-button>
4 |     <nut-button block>Button</nut-button>
5 |     <nut-button block>Button</nut-button>
6 |     <nut-button block>Button</nut-button>
7 |   </nut-space>
8 | </template>
9 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/layout/pages/space/index.config.ts:
--------------------------------------------------------------------------------
1 | export default {
2 |   navigationBarTitleText: 'Space'
3 | }
4 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/layout/pages/sticky/basic.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <nut-sticky top="57">
3 |     <nut-button type="primary">Top 57px</nut-button>
4 |   </nut-sticky>
5 | </template>
6 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/layout/pages/sticky/index.config.ts:
--------------------------------------------------------------------------------
1 | export default { navigationBarTitleText: 'Sticky' }
2 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/layout/pages/sticky/top.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <nut-sticky top="120">
3 |     <nut-button type="primary">Top 120px</nut-button>
4 |   </nut-sticky>
5 |   <div style="height: 200vh"></div>
6 | </template>
7 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/nav/pages/elevator/index.config.ts:
--------------------------------------------------------------------------------
1 | export default {
2 |   navigationBarTitleText: 'Elevator'
3 | }
4 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/nav/pages/fixednav/index.config.ts:
--------------------------------------------------------------------------------
1 | export default {
2 |   navigationBarTitleText: 'FixedNav'
3 | }
4 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/nav/pages/fixednav/index.vue:
--------------------------------------------------------------------------------
 1 | <template>
 2 |   <Demo>
 3 |     <Basic />
 4 | 
 5 |     <Left />
 6 | 
 7 |     <Overlay />
 8 | 
 9 |     <Custom />
10 |   </Demo>
11 | </template>
12 | 
13 | <script setup lang="ts">
14 | import Basic from './basic.vue'
15 | import Left from './left.vue'
16 | import Overlay from './overlay.vue'
17 | import Custom from './custom.vue'
18 | </script>
19 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/nav/pages/indicator/basic.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <nut-space :gutter="30">
3 |     <nut-indicator :size="5" :current="1" />
4 |     <nut-indicator :size="5" :current="3" />
5 |     <nut-indicator :size="5" :current="5" />
6 |   </nut-space>
7 | </template>
8 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/nav/pages/indicator/block.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <nut-indicator block align="left" :size="6" :current="5" />
3 |   <nut-indicator block algin="center" :size="6" :current="5" />
4 |   <nut-indicator block align="right" :size="6" :current="5" />
5 | </template>
6 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/nav/pages/indicator/index.config.ts:
--------------------------------------------------------------------------------
1 | export default {
2 |   navigationBarTitleText: 'Indicator'
3 | }
4 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/nav/pages/indicator/zero.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <nut-indicator :fill-zero="false" :size="6" :current="5" />
3 | </template>
4 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/nav/pages/menu/index.config.ts:
--------------------------------------------------------------------------------
1 | export default {
2 |   navigationBarTitleText: 'Menu'
3 | }
4 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/nav/pages/navbar/basic.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <nut-navbar title="Title" @click-title="onClick"></nut-navbar>
3 | </template>
4 | <script setup lang="ts">
5 | const onClick = () => {
6 |   console.log('[Navbar]: on click title')
7 | }
8 | </script>
9 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/nav/pages/navbar/index.config.ts:
--------------------------------------------------------------------------------
1 | export default {
2 |   navigationBarTitleText: 'Navbar'
3 | }
4 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/nav/pages/pagination/basic.vue:
--------------------------------------------------------------------------------
 1 | <template>
 2 |   <nut-pagination v-model="page" :total-items="25" :items-per-page="5" @change="change" />
 3 | </template>
 4 | <script setup lang="ts">
 5 | import { ref } from 'vue'
 6 | const page = ref(1)
 7 | const change = (value: number) => {
 8 |   console.log(value)
 9 | }
10 | </script>
11 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/nav/pages/pagination/ellipse.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <nut-pagination v-model="page" :total-items="125" :show-page-size="3" force-ellipses />
3 | </template>
4 | <script setup lang="ts">
5 | import { ref } from 'vue'
6 | const page = ref(1)
7 | </script>
8 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/nav/pages/pagination/index.config.ts:
--------------------------------------------------------------------------------
1 | export default {
2 |   navigationBarTitleText: 'Pagination'
3 | }
4 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/nav/pages/pagination/simple.vue:
--------------------------------------------------------------------------------
 1 | <template>
 2 |   <nut-pagination v-model="page" :page-count="12" mode="simple" @change="change" />
 3 | </template>
 4 | <script setup lang="ts">
 5 | import { ref } from 'vue'
 6 | const page = ref(1)
 7 | const change = (value: number) => {
 8 |   console.log(value)
 9 | }
10 | </script>
11 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/nav/pages/sidenavbar/index.config.ts:
--------------------------------------------------------------------------------
1 | export default {
2 |   navigationBarTitleText: 'SideNavbar'
3 | }
4 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/nav/pages/tabbar/index.config.ts:
--------------------------------------------------------------------------------
1 | export default {
2 |   navigationBarTitleText: 'Tabbar'
3 | }
4 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/nav/pages/tabs/index.config.ts:
--------------------------------------------------------------------------------
1 | export default {
2 |   navigationBarTitleText: 'Tabs'
3 | }
4 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/pages/index/index.config.ts:
--------------------------------------------------------------------------------
1 | export default {
2 |   navigationBarTitleText: '首页'
3 | }
4 | 


--------------------------------------------------------------------------------
/packages/nutui-taro-demo/src/utils/index.ts:
--------------------------------------------------------------------------------
1 | export * from './useTranslate'
2 | 


--------------------------------------------------------------------------------
/packages/nutui-touch-emulator/build.js:
--------------------------------------------------------------------------------
1 | const fs = require('fs')
2 | 
3 | if (!fs.existsSync('./dist')) {
4 |   fs.mkdirSync('./dist')
5 | }
6 | fs.copyFileSync('./src/index.js', './dist/index.js')
7 | 


--------------------------------------------------------------------------------
/packages/nutui-vite-plugins/src/index.ts:
--------------------------------------------------------------------------------
1 | export * from './markdown'
2 | export { default as markdown } from './markdown'
3 | 


--------------------------------------------------------------------------------
/packages/nutui-vite-plugins/tsup.config.ts:
--------------------------------------------------------------------------------
 1 | import type { Options } from 'tsup'
 2 | 
 3 | export default <Options>{
 4 |   entryPoints: ['src/*.ts'],
 5 |   clean: true,
 6 |   format: ['cjs', 'esm'],
 7 |   dts: true,
 8 |   shims: true,
 9 |   silent: true
10 | }
11 | 


--------------------------------------------------------------------------------
/packages/nutui-vscode-extension/.gitignore:
--------------------------------------------------------------------------------
1 | out
2 | dist
3 | node_modules
4 | .vscode-test/
5 | *.vsix
6 | yarn.lock
7 | 


--------------------------------------------------------------------------------
/packages/nutui-vscode-extension/.vscodeignore:
--------------------------------------------------------------------------------
 1 | .vscode/**
 2 | .vscode-test/**
 3 | out/**
 4 | node_modules/**
 5 | .gitignore
 6 | .yarnrc
 7 | vsc-extension-quickstart.md
 8 | **/tsconfig.json
 9 | **/.eslintrc.json
10 | **/*.map
11 | **/*.ts
12 | 


--------------------------------------------------------------------------------
/packages/nutui-vscode-extension/CHANGELOG.md:
--------------------------------------------------------------------------------
 1 | # Change Log
 2 | 
 3 | ## v1.0.2
 4 | 
 5 | * 支持分别跳转 H5 和小程序的组件文档
 6 | * 支持在 JSX、TSX 中使用插件功能
 7 | 
 8 | ## v1.0.0 ~ v1.0.1
 9 | 
10 | * 支持组件库 4.0 升级
11 | 
12 | ## v0.0.2
13 | 
14 | * 支持新增组件自动补全
15 | * 查看文档链接更新
16 | 
17 | 
18 | ## v0.0.1
19 | 
20 | * 支持快速查看组件文档
21 | * 支持自动补全功能


--------------------------------------------------------------------------------
/packages/nutui-vscode-extension/src/componentDesc.ts:
--------------------------------------------------------------------------------
1 | export interface ComponentDesc {
2 |   site: string
3 |   props?: string[]
4 | }
5 | 


--------------------------------------------------------------------------------
/packages/nutui-vscode-extension/src/nutui.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jd-opensource/nutui/fe5c0128e415492fc7d24f8887b721fea5c61b48/packages/nutui-vscode-extension/src/nutui.png


--------------------------------------------------------------------------------
/pnpm-workspace.yaml:
--------------------------------------------------------------------------------
1 | packages:
2 |   - 'packages/*'


--------------------------------------------------------------------------------
/src/packages/__VUE/animate/types.ts:
--------------------------------------------------------------------------------
 1 | export type AnimateType =
 2 |   | 'shake'
 3 |   | 'ripple'
 4 |   | 'breath'
 5 |   | 'float'
 6 |   | 'slide-right'
 7 |   | 'slide-left'
 8 |   | 'slide-top'
 9 |   | 'slide-bottom'
10 |   | 'jump'
11 |   | 'twinkle'
12 |   | 'flicker'
13 | export type AnimateAction = 'initial' | 'click' | ''
14 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/audio/demo/basic.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <nut-audio :url="url" loop type="icon"></nut-audio>
3 | </template>
4 | <script setup lang="ts">
5 | const url = '//storage.360buyimg.com/jdcdkh/SMB/VCG231024564.wav'
6 | </script>
7 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/audio/doc.taro.md:
--------------------------------------------------------------------------------
1 | # Audio 组件
2 | 
3 | ### 介绍
4 | 
5 | 用于音频播放
6 | 
7 | #### 直接使用 Taro 现有的 Taro.createInnerAudioContext 接口开发 [参考文档](https://taro-docs.jd.com/docs/apis/media/audio/createInnerAudioContext)
8 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/audio/types.ts:
--------------------------------------------------------------------------------
1 | export type AudioType = 'progress' | 'icon' | 'controls' | 'none'
2 | export type AudioOperateType = 'play' | 'back' | 'forward' | 'mute'
3 | export const AUDIO_KEY = Symbol('nut-audio')
4 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/audiooperate/index.scss:
--------------------------------------------------------------------------------
 1 | @import '../button/index.scss';
 2 | 
 3 | .nut-audio-operate-group {
 4 |   display: flex;
 5 |   display: flex;
 6 |   align-items: center;
 7 |   justify-content: center;
 8 |   margin-top: 10px;
 9 | 
10 |   .nut-audio-operate {
11 |     .nut-audio-operate-item {
12 |       margin: 0 5px;
13 |     }
14 |   }
15 | }
16 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/avatar/demo/badge.vue:
--------------------------------------------------------------------------------
 1 | <template>
 2 |   <nut-badge value="8">
 3 |     <nut-avatar shape="square"><My /></nut-avatar>
 4 |   </nut-badge>
 5 |   <span style="margin-right: 10px"></span>
 6 |   <nut-badge dot>
 7 |     <nut-avatar shape="square"><My /></nut-avatar>
 8 |   </nut-badge>
 9 | </template>
10 | <script setup lang="ts">
11 | import { My } from '@nutui/icons-vue'
12 | </script>
13 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/avatar/demo/basic.vue:
--------------------------------------------------------------------------------
 1 | <template>
 2 |   <nut-avatar> <img :src="url" /> </nut-avatar>
 3 |   <nut-avatar> <My /> </nut-avatar>
 4 |   <nut-avatar> 王 </nut-avatar>
 5 | </template>
 6 | <script setup lang="ts">
 7 | import { My } from '@nutui/icons-vue'
 8 | const url = 'https://img12.360buyimg.com/imagetools/jfs/t1/196430/38/8105/14329/60c806a4Ed506298a/e6de9fb7b8490f38.png'
 9 | </script>
10 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/avatar/demo/click.vue:
--------------------------------------------------------------------------------
 1 | <template>
 2 |   <nut-avatar @click="click"><My /></nut-avatar>
 3 | </template>
 4 | <script setup lang="ts">
 5 | import { My } from '@nutui/icons-vue'
 6 | const click = () => {
 7 |   console.log('click')
 8 | }
 9 | </script>
10 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/avatar/demo/color.vue:
--------------------------------------------------------------------------------
 1 | <template>
 2 |   <nut-avatar bg-color="red">
 3 |     <My color="white" />
 4 |   </nut-avatar>
 5 |   <nut-avatar color="white" bg-color="blue">小明</nut-avatar>
 6 | </template>
 7 | <script setup lang="ts">
 8 | import { My } from '@nutui/icons-vue'
 9 | </script>
10 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/avatar/demo/shape.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <nut-avatar shape="square"><My /></nut-avatar>
3 |   <nut-avatar shape="round"><My /></nut-avatar>
4 | </template>
5 | <script setup lang="ts">
6 | import { My } from '@nutui/icons-vue'
7 | </script>
8 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/avatar/types.ts:
--------------------------------------------------------------------------------
1 | export const AVATAR_KEY = Symbol('nut-avatar')
2 | 
3 | export type AvatarSize = 'large' | 'normal' | 'small'
4 | export type AvatarShape = 'round' | 'square'
5 | export type AvatarZIndex = 'left' | 'right'
6 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/avatarcropper/types.ts:
--------------------------------------------------------------------------------
1 | export type AvatarCropperToolbarPosition = 'top' | 'bottom'
2 | export type AvatarCropperSizeType = 'original' | 'compressed'
3 | export type AvatarCropperSourceType = 'album' | 'camera'
4 | export type AvatarCropperShape = 'square' | 'round'
5 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/avatargroup/index.scss:
--------------------------------------------------------------------------------
 1 | .nut-avatar-group {
 2 |   background-size: 100% 100%;
 3 |   background-repeat: no-repeat;
 4 |   background-position: center center;
 5 |   display: flex;
 6 |   position: relative;
 7 |   flex: 0 0 auto; // 防止被压缩
 8 |   .nut-avatar {
 9 |     border: 1px solid #fff;
10 |   }
11 | }
12 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/backtop/index.ts:
--------------------------------------------------------------------------------
 1 | import Backtop from './backtop.vue'
 2 | import type { ComponentPublicInstance } from 'vue'
 3 | import { withInstall } from '@/packages/utils'
 4 | 
 5 | withInstall(Backtop)
 6 | 
 7 | export type { BacktopProps } from './backtop.vue'
 8 | 
 9 | export type BacktopInstance = ComponentPublicInstance & InstanceType<typeof Backtop>
10 | 
11 | export { Backtop, Backtop as default }
12 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/badge/index.taro.ts:
--------------------------------------------------------------------------------
 1 | import Badge from './badge.taro.vue'
 2 | import type { ComponentPublicInstance } from 'vue'
 3 | import { withInstall } from '@/packages/utils'
 4 | 
 5 | withInstall(Badge)
 6 | 
 7 | export type { BadgeProps } from './badge.taro.vue'
 8 | 
 9 | export type BadgeInstance = ComponentPublicInstance & InstanceType<typeof Badge>
10 | 
11 | export { Badge, Badge as default }
12 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/badge/index.ts:
--------------------------------------------------------------------------------
 1 | import Badge from './badge.vue'
 2 | import type { ComponentPublicInstance } from 'vue'
 3 | import { withInstall } from '@/packages/utils'
 4 | 
 5 | withInstall(Badge)
 6 | 
 7 | export type { BadgeProps } from './badge.vue'
 8 | 
 9 | export type BadgeInstance = ComponentPublicInstance & InstanceType<typeof Badge>
10 | 
11 | export { Badge, Badge as default }
12 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/button/demo/block.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <nut-button block type="primary">Block</nut-button>
3 | </template>
4 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/button/demo/color.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <nut-button color="#7232dd">Pure</nut-button>
3 |   <nut-button color="#7232dd" plain>Pure</nut-button>
4 |   <nut-button color="linear-gradient(to right, #ff6034, #ee0a24)"> Gradient </nut-button>
5 | </template>
6 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/button/demo/disabled.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <nut-button disabled type="primary">Disabled</nut-button>
3 |   <nut-button plain disabled type="info">Disabled</nut-button>
4 |   <nut-button plain disabled type="primary">Disabled</nut-button>
5 | </template>
6 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/button/demo/plain.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <nut-button plain type="primary">Plain</nut-button>
3 |   <nut-button plain type="info">Plain</nut-button>
4 | </template>
5 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/button/demo/shape.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <nut-button shape="square" type="primary">Square</nut-button>
3 |   <nut-button shape="round" type="info">Round</nut-button>
4 | </template>
5 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/button/demo/size.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <nut-button size="large" type="primary">Large</nut-button>
3 |   <nut-button type="primary">Normal</nut-button>
4 |   <nut-button size="small" type="primary">Small</nut-button>
5 |   <nut-button size="mini" type="primary">Mini</nut-button>
6 | </template>
7 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/button/demo/type.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <nut-button type="primary">Primary</nut-button>
3 |   <nut-button type="info">Info</nut-button>
4 |   <nut-button type="default">Default</nut-button>
5 |   <nut-button type="danger">Danger</nut-button>
6 |   <nut-button type="warning">Warning</nut-button>
7 |   <nut-button type="success">Success</nut-button>
8 | </template>
9 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/button/types.ts:
--------------------------------------------------------------------------------
1 | export type ButtonType = 'default' | 'primary' | 'info' | 'success' | 'warning' | 'danger'
2 | export type ButtonSize = 'large' | 'normal' | 'small' | 'mini'
3 | export type ButtonShape = 'square' | 'round'
4 | export type ButtonFormType = 'button' | 'submit' | 'reset'
5 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/calendarcard/demo/first.vue:
--------------------------------------------------------------------------------
 1 | <template>
 2 |   <nut-calendar-card v-model="value" :first-day-of-week="1" @change="onChange"></nut-calendar-card>
 3 | </template>
 4 | <script setup lang="ts">
 5 | import { ref } from 'vue'
 6 | const value = ref(null)
 7 | const onChange = (val: Date) => {
 8 |   console.log(val)
 9 | }
10 | </script>
11 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/calendarcard/demo/range.vue:
--------------------------------------------------------------------------------
 1 | <template>
 2 |   <nut-calendar-card v-model="value" type="range" @change="onChange"></nut-calendar-card>
 3 | </template>
 4 | <script setup lang="ts">
 5 | import { ref } from 'vue'
 6 | const value = ref([])
 7 | const onChange = (val: Date) => {
 8 |   console.log(val)
 9 | }
10 | </script>
11 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/calendarcard/demo/single.vue:
--------------------------------------------------------------------------------
 1 | <template>
 2 |   <nut-calendar-card v-model="value" @change="onChange"></nut-calendar-card>
 3 | </template>
 4 | <script setup lang="ts">
 5 | import { ref } from 'vue'
 6 | const value = ref(new Date('2023-01-01'))
 7 | const onChange = (val: Date) => {
 8 |   console.log(val)
 9 | }
10 | </script>
11 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/calendarcard/demo/week.vue:
--------------------------------------------------------------------------------
 1 | <template>
 2 |   <nut-calendar-card v-model="value" type="week" @change="onChange"></nut-calendar-card>
 3 | </template>
 4 | <script setup lang="ts">
 5 | import { ref } from 'vue'
 6 | const value = ref([])
 7 | const onChange = (val: Date) => {
 8 |   console.log(val)
 9 | }
10 | </script>
11 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/cell/demo/align.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <nut-cell desc-text-align="left" desc="Description"></nut-cell>
3 | </template>
4 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/cell/demo/center.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <nut-cell center title="Title" sub-title="Subtitle" desc="Description"></nut-cell>
3 | </template>
4 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/cell/demo/desc.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <nut-cell title="Title">
3 |     <template #desc>
4 |       <span style="color: red">Description Slot</span>
5 |     </template>
6 |   </nut-cell>
7 | </template>
8 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/cell/demo/group.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <nut-cell-group title="CellGroup Title" desc="CellGroup Description">
3 |     <nut-cell title="Cell"></nut-cell>
4 |     <nut-cell title="Link Style" is-link></nut-cell>
5 |   </nut-cell-group>
6 | </template>
7 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/cell/demo/icon.vue:
--------------------------------------------------------------------------------
 1 | <template>
 2 |   <nut-cell title="Icon Slot" desc="Description">
 3 |     <template #icon>
 4 |       <My />
 5 |     </template>
 6 |   </nut-cell>
 7 | </template>
 8 | <script setup lang="ts">
 9 | import { My } from '@nutui/icons-vue'
10 | </script>
11 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/cell/demo/link.vue:
--------------------------------------------------------------------------------
 1 | <template>
 2 |   <nut-cell title="Switch">
 3 |     <template #link>
 4 |       <nut-switch v-model="checked" />
 5 |     </template>
 6 |   </nut-cell>
 7 | </template>
 8 | <script setup lang="ts">
 9 | import { ref } from 'vue'
10 | const checked = ref(true)
11 | </script>
12 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/cell/demo/size.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <nut-cell size="large" title="Title" desc="Description"></nut-cell>
3 |   <nut-cell size="large" title="Title" sub-title="Subtitle" desc="Description"></nut-cell>
4 | </template>
5 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/cell/demo/slot.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <nut-cell>
3 |     <div>Content</div>
4 |   </nut-cell>
5 | </template>
6 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/cell/demo/title.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <nut-cell desc="Description">
3 |     <template #title>
4 |       <span style="color: red">Title</span>
5 |     </template>
6 |   </nut-cell>
7 | </template>
8 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/cell/types.ts:
--------------------------------------------------------------------------------
1 | export type CellSize = 'normal' | 'large'
2 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/cellgroup/__tests__/__snapshots__/index.spec.ts.snap:
--------------------------------------------------------------------------------
1 | // Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html
2 | 
3 | exports[`should render title、desc slot correctly 1`] = `
4 | "<view class="nut-cell-group">Custom TitleCustom Desc<view class="nut-cell-group__wrap"></view>
5 | </view>"
6 | `;
7 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/cellgroup/__tests__/index.spec.ts:
--------------------------------------------------------------------------------
 1 | import { CellGroup } from '@nutui/nutui'
 2 | import { mount } from '@vue/test-utils'
 3 | test('should render title、desc slot correctly', () => {
 4 |   const wrapper = mount(CellGroup, {
 5 |     slots: {
 6 |       title: () => 'Custom Title',
 7 |       desc: () => 'Custom Desc'
 8 |     }
 9 |   })
10 |   expect(wrapper.html()).toMatchSnapshot()
11 | })
12 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/checkbox/demo/basic.vue:
--------------------------------------------------------------------------------
 1 | <template>
 2 |   <nut-cell>
 3 |     <nut-checkbox v-model="val1"> Right </nut-checkbox>
 4 |     <nut-checkbox v-model="val2" text-position="left"> Left </nut-checkbox>
 5 |   </nut-cell>
 6 | </template>
 7 | <script setup>
 8 | import { ref } from 'vue'
 9 | const val1 = ref(true)
10 | const val2 = ref(false)
11 | </script>
12 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/checkbox/demo/disabled.vue:
--------------------------------------------------------------------------------
 1 | <template>
 2 |   <nut-cell>
 3 |     <nut-checkbox v-model="val1" disabled> checked </nut-checkbox>
 4 |     <nut-checkbox v-model="val2" disabled> unchecked </nut-checkbox>
 5 |   </nut-cell>
 6 | </template>
 7 | <script setup>
 8 | import { ref } from 'vue'
 9 | const val1 = ref(true)
10 | const val2 = ref(false)
11 | </script>
12 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/checkbox/demo/event.vue:
--------------------------------------------------------------------------------
 1 | <template>
 2 |   <nut-cell>
 3 |     <nut-checkbox v-model="val" @change="change"> Change </nut-checkbox>
 4 |   </nut-cell>
 5 | </template>
 6 | <script setup>
 7 | import { ref } from 'vue'
 8 | const val = ref(false)
 9 | const change = (state) => {
10 |   console.log(state)
11 | }
12 | </script>
13 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/checkbox/demo/indeterminate.vue:
--------------------------------------------------------------------------------
 1 | <template>
 2 |   <nut-cell>
 3 |     <nut-checkbox v-model="val" indeterminate> Indeterminate </nut-checkbox>
 4 |   </nut-cell>
 5 | </template>
 6 | <script setup>
 7 | import { ref } from 'vue'
 8 | const val = ref(false)
 9 | </script>
10 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/checkbox/demo/shape.vue:
--------------------------------------------------------------------------------
 1 | <template>
 2 |   <nut-cell>
 3 |     <nut-checkbox v-model="val1" shape="button"> Button </nut-checkbox>
 4 |     <nut-checkbox v-model="val2" shape="button"> Button </nut-checkbox>
 5 |   </nut-cell>
 6 | </template>
 7 | <script setup>
 8 | import { ref } from 'vue'
 9 | const val1 = ref(true)
10 | const val2 = ref(false)
11 | </script>
12 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/checkbox/demo/size.vue:
--------------------------------------------------------------------------------
 1 | <template>
 2 |   <nut-cell>
 3 |     <nut-checkbox v-model="val1" icon-size="25"> size 25 </nut-checkbox>
 4 |     <nut-checkbox v-model="val2" icon-size="10"> size 10 </nut-checkbox>
 5 |   </nut-cell>
 6 | </template>
 7 | <script setup>
 8 | import { ref } from 'vue'
 9 | const val1 = ref(false)
10 | const val2 = ref(false)
11 | </script>
12 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/checkbox/types.ts:
--------------------------------------------------------------------------------
1 | export const CHECKBOX_KEY = Symbol('nut-checkbox')
2 | export type CheckboxTextPosition = 'right' | 'left'
3 | export type CheckboxShape = 'round' | 'button'
4 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/checkboxgroup/index.scss:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jd-opensource/nutui/fe5c0128e415492fc7d24f8887b721fea5c61b48/src/packages/__VUE/checkboxgroup/index.scss


--------------------------------------------------------------------------------
/src/packages/__VUE/circleprogress/demo/basic.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <nut-circle-progress :progress="20" />
3 | </template>
4 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/circleprogress/demo/color.vue:
--------------------------------------------------------------------------------
 1 | <template>
 2 |   <nut-space>
 3 |     <nut-circle-progress :progress="50" color="skyblue" />
 4 |     <nut-circle-progress :progress="100" :color="gradientColor" />
 5 |   </nut-space>
 6 | </template>
 7 | <script setup lang="ts">
 8 | const gradientColor = {
 9 |   '0%': '#FF5E5E',
10 |   '100%': '#FFA062'
11 | }
12 | </script>
13 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/circleprogress/demo/content.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <nut-circle-progress :progress="90"> 90! </nut-circle-progress>
3 | </template>
4 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/circleprogress/demo/size.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <nut-space align="baseline">
3 |     <nut-circle-progress :progress="80" :radius="80" />
4 |     <nut-circle-progress :progress="50" :radius="50" />
5 |     <nut-circle-progress :progress="30" :radius="30" />
6 |   </nut-space>
7 | </template>
8 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/circleprogress/demo/width.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <nut-circle-progress :progress="50" :stroke-width="10" />
3 | </template>
4 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/circleprogress/types.ts:
--------------------------------------------------------------------------------
1 | export type CircleProgressStrokeLinecap = 'butt' | 'round' | 'square'
2 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/col/index.taro.ts:
--------------------------------------------------------------------------------
 1 | import Col from './col.taro.vue'
 2 | import type { ComponentPublicInstance } from 'vue'
 3 | import { withInstall } from '@/packages/utils'
 4 | 
 5 | withInstall(Col)
 6 | 
 7 | export type { ColProps } from './col.taro.vue'
 8 | 
 9 | export type ColInstance = ComponentPublicInstance & InstanceType<typeof Col>
10 | 
11 | export { Col, Col as default }
12 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/col/index.ts:
--------------------------------------------------------------------------------
 1 | import Col from './col.vue'
 2 | import type { ComponentPublicInstance } from 'vue'
 3 | import { withInstall } from '@/packages/utils'
 4 | 
 5 | withInstall(Col)
 6 | 
 7 | export type { ColProps } from './col.vue'
 8 | 
 9 | export type ColInstance = ComponentPublicInstance & InstanceType<typeof Col>
10 | 
11 | export { Col, Col as default }
12 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/collapse/demo/disabled.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <nut-collapse>
3 |     <nut-collapse-item name="name1" title="Title 1"> Content 1 </nut-collapse-item>
4 |     <nut-collapse-item name="name2" title="Title 2" disabled> Content 2 </nut-collapse-item>
5 |     <nut-collapse-item name="name3" title="Title 3" disabled> Content 3 </nut-collapse-item>
6 |   </nut-collapse>
7 | </template>
8 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/collapse/demo/extra.vue:
--------------------------------------------------------------------------------
 1 | <template>
 2 |   <nut-collapse>
 3 |     <nut-collapse-item name="name1" title="Title 1">
 4 |       <template #extra> Extra Content </template>
 5 |       Content 1
 6 |     </nut-collapse-item>
 7 |     <nut-collapse-item name="name2" title="Title 2"> Content 2 </nut-collapse-item>
 8 |   </nut-collapse>
 9 | </template>
10 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/collapse/index.scss:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jd-opensource/nutui/fe5c0128e415492fc7d24f8887b721fea5c61b48/src/packages/__VUE/collapse/index.scss


--------------------------------------------------------------------------------
/src/packages/__VUE/collapse/types.ts:
--------------------------------------------------------------------------------
1 | import type { InjectionKey } from 'vue'
2 | 
3 | export const COLLAPSE_KEY = Symbol('nut-collapse') as InjectionKey<{
4 |   updateVal: (name: string | number) => void
5 |   isExpanded: (name: string | number) => boolean
6 | }>
7 | 
8 | export type CollapseValue = string | number | (string | number)[]
9 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/comment/type.ts:
--------------------------------------------------------------------------------
 1 | export interface VideosType {
 2 |   id?: number | string
 3 |   mainUrl: string
 4 |   videoUrl: string
 5 | }
 6 | export interface ImagesType {
 7 |   smallImgUrl: string
 8 |   bigImgUrl: string
 9 |   imgUrl: string
10 | }
11 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/configprovider/index.scss:
--------------------------------------------------------------------------------
1 | .nut-configprovider {
2 | }
3 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/configprovider/index.taro.vue:
--------------------------------------------------------------------------------
1 | <script lang="ts">
2 | import { createComponent } from '@/packages/utils/create'
3 | import { component } from './common'
4 | 
5 | const { create } = createComponent('config-provider')
6 | 
7 | export default create(component('view'))
8 | </script>
9 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/configprovider/index.vue:
--------------------------------------------------------------------------------
1 | <script lang="ts">
2 | import { createComponent } from '@/packages/utils/create'
3 | import { component } from './common'
4 | 
5 | const { create } = createComponent('config-provider')
6 | 
7 | export default create(component('div'))
8 | </script>
9 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/countdown/demo/basic.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <nut-countdown :start-time="start" :end-time="end"></nut-countdown>
3 | </template>
4 | 
5 | <script setup>
6 | const start = Date.now()
7 | const end = Date.now() + 60 * 1000
8 | </script>
9 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/countdown/demo/format.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <nut-countdown :end-time="time" format="DD 天 HH 时 mm 分 ss 秒" />
3 | </template>
4 | 
5 | <script setup>
6 | const time = Date.now() + 60 * 1000
7 | </script>
8 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/countdown/demo/millisecond.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <nut-countdown :end-time="time" millisecond format="HH:mm:ss:SS" />
3 | </template>
4 | 
5 | <script setup>
6 | const time = Date.now() + 60 * 1000
7 | </script>
8 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/countdown/index.scss:
--------------------------------------------------------------------------------
1 | .nut-countdown {
2 |   display: $countdown-display;
3 |   color: $countdown-color;
4 |   font-size: $countdown-font-size;
5 | }
6 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/countup/demo/basic.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <nut-countup :init-num="0" :end-num="200"></nut-countup>
3 |   <nut-countup :init-num="150" :end-num="0" :speed="2.62" :to-fixed="2"></nut-countup>
4 |   <nut-countup :init-num="1000" :end-num="0" :speed="50" :to-fixed="2"></nut-countup>
5 | </template>
6 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/datepicker/index.scss:
--------------------------------------------------------------------------------
1 | @import '../picker/index.scss';
2 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/datepicker/type.ts:
--------------------------------------------------------------------------------
1 | export type Formatter = (
2 |   type: string,
3 |   option: import('../picker/types').PickerOption
4 | ) => import('../picker/types').PickerOption
5 | export type Filter = (
6 |   columnType: string,
7 |   options: import('../picker/types').PickerOption[]
8 | ) => import('../picker/types').PickerOption[]
9 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/dialog/__tests__/__snapshots__/function.spec.ts.snap:
--------------------------------------------------------------------------------
1 | // Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html
2 | 
3 | exports[`function Dialog > dialog cancelText okText 1`] = `"<!--v-if--><!--v-if--><view class="">取消文案自定义</view>"`;
4 | 
5 | exports[`function Dialog > dialog cancelText okText 2`] = `"<view class="nut-button__wrap"><!--v-if--><!--v-if--><view class="">确定文案自定义</view></view>"`;
6 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/divider/__tests__/__snapshots__/divider.spec.ts.snap:
--------------------------------------------------------------------------------
1 | // Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html
2 | 
3 | exports[`Divider: default slot 1`] = `"<view class="nut-divider nut-divider-center nut-divider-hairline">custom text</view>"`;
4 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/divider/demo/basic.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <nut-divider />
3 | </template>
4 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/divider/demo/custom.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <nut-divider :style="{ color: '#1989fa', borderColor: '#1989fa', padding: '0 16px' }"> text </nut-divider>
3 | </template>
4 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/divider/demo/dashed.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <nut-divider dashed> text </nut-divider>
3 | </template>
4 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/divider/demo/position.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <nut-divider content-position="left"> text </nut-divider>
3 |   <nut-divider> text </nut-divider>
4 |   <nut-divider content-position="right"> text </nut-divider>
5 | </template>
6 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/divider/demo/text.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <nut-divider> text </nut-divider>
3 | </template>
4 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/divider/demo/vertical.vue:
--------------------------------------------------------------------------------
 1 | <template>
 2 |   <div :style="{ fontSize: '14px', marginLeft: '27px', color: '#909ca4' }">
 3 |     text1
 4 |     <nut-divider direction="vertical" />
 5 |     <a href="#" style="color: #1989fa"> link </a>
 6 |     <nut-divider direction="vertical" />
 7 |     text2
 8 |   </div>
 9 | </template>
10 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/divider/types.ts:
--------------------------------------------------------------------------------
1 | export type DividerPosition = 'center' | 'left' | 'right'
2 | export type DividerDirection = 'horizontal' | 'vertical'
3 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/drag/__tests__/__snapshots__/index.spec.ts.snap:
--------------------------------------------------------------------------------
1 | // Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html
2 | 
3 | exports[`should render default slot correctly 1`] = `"<view class="nut-drag">Custom Message</view>"`;
4 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/drag/demo/attract.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <nut-drag direction="x" attract>
3 |     <nut-button type="primary">Button</nut-button>
4 |   </nut-drag>
5 | </template>
6 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/drag/demo/basic.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <nut-drag>
3 |     <nut-button type="primary">move</nut-button>
4 |   </nut-drag>
5 | </template>
6 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/drag/demo/direction.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <nut-drag direction="x" :style="{ top: '200px', left: '16px' }">
3 |     <nut-button type="primary">DirectionX</nut-button>
4 |   </nut-drag>
5 |   <nut-drag direction="y" :style="{ top: '200px', right: '50px' }">
6 |     <nut-button type="primary">DirectionY</nut-button>
7 |   </nut-drag>
8 | </template>
9 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/drag/types.ts:
--------------------------------------------------------------------------------
1 | export type DragDirection = 'all' | 'x' | 'y'
2 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/elevator/type.ts:
--------------------------------------------------------------------------------
1 | export interface ElevatorData {
2 |   name: string
3 |   id: number | string
4 |   [key: string]: string | number
5 | }
6 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/ellipsis/index.scss:
--------------------------------------------------------------------------------
 1 | .nut-ellipsis {
 2 |   display: flex;
 3 |   .nut-ellipsis__text {
 4 |     cursor: hand;
 5 |     color: $ellipsis-expand-collapse-color;
 6 |     display: inline;
 7 |   }
 8 | 
 9 |   .nut-ellipsis__wordbreak {
10 |     word-break: break-all;
11 |   }
12 | }
13 | 
14 | .nut-ellipsis__copy {
15 |   position: absolute;
16 |   top: -999999px;
17 | }
18 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/ellipsis/types.ts:
--------------------------------------------------------------------------------
1 | export type EllipsisDirection = 'start' | 'end' | 'middle'
2 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/empty/demo/basic.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <nut-empty description="404"></nut-empty>
3 | </template>
4 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/empty/demo/bottom.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <nut-empty image="error" description="Error">
3 |     <div style="margin-top: 10px">
4 |       <nut-button type="primary">Refresh</nut-button>
5 |     </div>
6 |   </nut-empty>
7 | </template>
8 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/empty/demo/custom.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <nut-empty
3 |     image="https://static-ftcms.jd.com/p/files/61a9e3313985005b3958672e.png"
4 |     description="Description"
5 |   ></nut-empty>
6 | </template>
7 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/empty/types.ts:
--------------------------------------------------------------------------------
1 | export type EmptyImage = 'empty' | 'error' | 'network' | string
2 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/form/index.scss:
--------------------------------------------------------------------------------
1 | @import '../cellgroup/index.scss';
2 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/grid/demo/column.vue:
--------------------------------------------------------------------------------
 1 | <template>
 2 |   <nut-grid :column-num="3">
 3 |     <nut-grid-item text="text"><Dongdong /></nut-grid-item>
 4 |     <nut-grid-item text="text"><Dongdong /></nut-grid-item>
 5 |     <nut-grid-item text="text"><Dongdong /></nut-grid-item>
 6 |   </nut-grid>
 7 | </template>
 8 | <script setup lang="ts">
 9 | import { Dongdong } from '@nutui/icons-vue'
10 | </script>
11 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/grid/demo/content.vue:
--------------------------------------------------------------------------------
 1 | <template>
 2 |   <nut-grid :border="false">
 3 |     <nut-grid-item v-for="i in 4" :key="i">
 4 |       <nut-avatar size="large">
 5 |         <img
 6 |           src="https://img12.360buyimg.com/imagetools/jfs/t1/143702/31/16654/116794/5fc6f541Edebf8a57/4138097748889987.png"
 7 |         />
 8 |       </nut-avatar>
 9 |     </nut-grid-item>
10 |   </nut-grid>
11 | </template>
12 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/grid/demo/square.vue:
--------------------------------------------------------------------------------
 1 | <template>
 2 |   <nut-grid :column-num="3" square>
 3 |     <nut-grid-item text="text"><Dongdong /></nut-grid-item>
 4 |     <nut-grid-item text="text"><Dongdong /></nut-grid-item>
 5 |     <nut-grid-item text="text"><Dongdong /></nut-grid-item>
 6 |   </nut-grid>
 7 | </template>
 8 | <script setup lang="ts">
 9 | import { Dongdong } from '@nutui/icons-vue'
10 | </script>
11 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/grid/index.scss:
--------------------------------------------------------------------------------
 1 | .nut-grid {
 2 |   display: flex;
 3 |   flex-wrap: wrap;
 4 |   border: 0 solid $grid-border-color;
 5 | 
 6 |   &--border {
 7 |     border-top-width: 1px;
 8 |     border-left-width: 1px;
 9 |   }
10 | }
11 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/grid/types.ts:
--------------------------------------------------------------------------------
1 | export const GRID_KEY = Symbol('grid')
2 | export type GridDirection = 'horizontal' | 'vertical'
3 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/icon/index.scss:
--------------------------------------------------------------------------------
1 | @import '@nutui/icons-vue/dist/style_iconfont.css';
2 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/icon/index.taro.vue:
--------------------------------------------------------------------------------
1 | <script lang="ts">
2 | import { createComponent } from '@/packages/utils/create'
3 | const { create } = createComponent('icon')
4 | export default create({})
5 | </script>
6 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/icon/index.vue:
--------------------------------------------------------------------------------
1 | <script lang="ts">
2 | import '@nutui/icons-vue/dist/style_iconfont.css'
3 | import { createComponent } from '@/packages/utils/create'
4 | const { create } = createComponent('icon')
5 | export default create({})
6 | </script>
7 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/image/demo/basic.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <nut-image :src="url" width="100" height="100" />
3 | </template>
4 | <script setup lang="ts">
5 | const url = 'https://img10.360buyimg.com/ling/jfs/t1/181258/24/10385/53029/60d04978Ef21f2d42/92baeb21f907cd24.jpg'
6 | </script>
7 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/image/doc.taro.md:
--------------------------------------------------------------------------------
1 | # Image 图片
2 | 
3 | ### 介绍
4 | 
5 | 增强版的 img 标签,提供多种图片填充模式,支持图片加载中提示、加载失败提示。
6 | 
7 | #### 直接使用 Taro 现有 Image 组件开发 [参考文档](https://taro-docs.jd.com/docs/components/media/image)
8 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/image/image.taro.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <view> Please use Image in @tarojs/components. </view>
3 | </template>
4 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/image/index.taro.ts:
--------------------------------------------------------------------------------
 1 | import Image from './image.taro.vue'
 2 | import type { ComponentPublicInstance } from 'vue'
 3 | import { withInstall } from '@/packages/utils'
 4 | 
 5 | withInstall(Image)
 6 | 
 7 | export type ImageInstance = ComponentPublicInstance & InstanceType<typeof Image>
 8 | 
 9 | export { Image, Image as default }
10 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/image/types.ts:
--------------------------------------------------------------------------------
1 | export type ImageFit = 'contain' | 'cover' | 'fill' | 'none' | 'scale-down'
2 | export type ImagePosition = 'center' | 'top' | 'right' | 'bottom' | 'left' | string
3 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/indicator/demo/basic.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <nut-space :gutter="30">
3 |     <nut-indicator :size="5" :current="1" />
4 |     <nut-indicator :size="5" :current="3" />
5 |     <nut-indicator :size="5" :current="5" />
6 |   </nut-space>
7 | </template>
8 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/indicator/demo/block.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <nut-indicator block align="left" :size="6" :current="5" />
3 |   <nut-indicator block algin="center" :size="6" :current="5" />
4 |   <nut-indicator block align="right" :size="6" :current="5" />
5 | </template>
6 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/indicator/demo/zero.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <nut-indicator :fill-zero="false" :size="6" :current="5" />
3 | </template>
4 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/indicator/types.ts:
--------------------------------------------------------------------------------
1 | export type IndicatorAlign = 'left' | 'center' | 'right'
2 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/infiniteloading/doc.taro.md:
--------------------------------------------------------------------------------
1 | # InfiniteLoading 滚动加载
2 | 
3 | ### 介绍
4 | 
5 | 列表滚动到底部自动加载更多数据。
6 | 
7 | #### 直接使用 Taro 现有 ScrollView 组件开发 [参考文档](https://docs.taro.zone/docs/components/viewContainer/scroll-view)
8 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/input/demo/align.vue:
--------------------------------------------------------------------------------
 1 | <template>
 2 |   <nut-input v-model="val1" input-align="left" />
 3 |   <nut-input v-model="val2" input-align="center" />
 4 |   <nut-input v-model="val3" input-align="right" />
 5 | </template>
 6 | <script setup>
 7 | import { ref } from 'vue'
 8 | const val1 = ref('Left')
 9 | const val2 = ref('Center')
10 | const val3 = ref('Right')
11 | </script>
12 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/input/demo/basic.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <nut-input v-model="val" placeholder="Placeholder" />
3 | </template>
4 | <script setup>
5 | import { ref } from 'vue'
6 | const val = ref('')
7 | </script>
8 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/input/demo/border.vue:
--------------------------------------------------------------------------------
 1 | <template>
 2 |   <nut-input v-model="val1" :border="false" />
 3 |   <nut-input v-model="val2" :border="false" />
 4 | </template>
 5 | <script setup>
 6 | import { ref } from 'vue'
 7 | const val1 = ref('12345')
 8 | const val2 = ref('12345')
 9 | </script>
10 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/input/demo/count.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <nut-input v-model="val" show-word-limit :max-length="50" />
3 | </template>
4 | <script setup>
5 | import { ref } from 'vue'
6 | const val = ref('12345')
7 | </script>
8 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/input/demo/event.vue:
--------------------------------------------------------------------------------
 1 | <template>
 2 |   <nut-input v-model="val" clearable placeholder="Event" @clear="clear" @click-input="click" />
 3 | </template>
 4 | <script setup>
 5 | import { ref } from 'vue'
 6 | const val = ref('')
 7 | const clear = () => {
 8 |   console.log('clear')
 9 | }
10 | const click = () => {
11 |   console.log('click-input')
12 | }
13 | </script>
14 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/input/demo/form.vue:
--------------------------------------------------------------------------------
 1 | <template>
 2 |   <nut-form>
 3 |     <nut-form-item label="Label" label-align="center">
 4 |       <nut-input v-model="val" />
 5 |     </nut-form-item>
 6 |   </nut-form>
 7 | </template>
 8 | <script setup>
 9 | import { ref } from 'vue'
10 | const val = ref('')
11 | </script>
12 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/input/demo/status.vue:
--------------------------------------------------------------------------------
 1 | <template>
 2 |   <nut-input v-model="val1" disabled />
 3 |   <nut-input v-model="val2" readonly />
 4 | </template>
 5 | <script setup>
 6 | import { ref } from 'vue'
 7 | const val1 = ref('Disabled')
 8 | const val2 = ref('Readonly')
 9 | </script>
10 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/inputnumber/demo/basic.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <nut-input-number v-model="val" />
3 | </template>
4 | <script setup lang="ts">
5 | import { ref } from 'vue'
6 | const val = ref(1)
7 | </script>
8 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/inputnumber/demo/decimal.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <nut-input-number v-model="val" step="0.1" decimal-places="1" />
3 | </template>
4 | <script setup lang="ts">
5 | import { ref } from 'vue'
6 | const val = ref(1)
7 | </script>
8 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/inputnumber/demo/disabled.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <nut-input-number v-model="val" disabled />
3 | </template>
4 | <script setup lang="ts">
5 | import { ref } from 'vue'
6 | const val = ref(1)
7 | </script>
8 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/inputnumber/demo/limit.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <nut-input-number v-model="val" :min="10" :max="20" />
3 | </template>
4 | <script setup lang="ts">
5 | import { ref } from 'vue'
6 | const val = ref(10)
7 | </script>
8 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/inputnumber/demo/readonly.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <nut-input-number v-model="val" readonly />
3 | </template>
4 | <script setup lang="ts">
5 | import { ref } from 'vue'
6 | const val = ref(1)
7 | </script>
8 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/inputnumber/demo/size.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <nut-input-number v-model="val" :button-size="30" :input-width="50" />
3 | </template>
4 | <script setup lang="ts">
5 | import { ref } from 'vue'
6 | const val = ref(1)
7 | </script>
8 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/inputnumber/demo/step.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <nut-input-number v-model="val" :step="5" />
3 | </template>
4 | <script setup lang="ts">
5 | import { ref } from 'vue'
6 | const val = ref(1)
7 | </script>
8 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/invoice/types.ts:
--------------------------------------------------------------------------------
 1 | import type { FormItemRule } from '../form/types'
 2 | 
 3 | export interface InvoiceDataItem {
 4 |   type?: 'radio'
 5 |   label?: string
 6 |   placeholder?: string
 7 |   radioLabel?: {
 8 |     label: string
 9 |   }[]
10 |   formItemProp: string
11 |   rules?: FormItemRule[]
12 |   required?: boolean
13 | }
14 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/layout/index.scss:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jd-opensource/nutui/fe5c0128e415492fc7d24f8887b721fea5c61b48/src/packages/__VUE/layout/index.scss


--------------------------------------------------------------------------------
/src/packages/__VUE/layout/index.taro.ts:
--------------------------------------------------------------------------------
 1 | import Layout from './layout.taro.vue'
 2 | import type { ComponentPublicInstance } from 'vue'
 3 | import { withInstall } from '@/packages/utils'
 4 | 
 5 | withInstall(Layout)
 6 | 
 7 | export type LayoutInstance = ComponentPublicInstance & InstanceType<typeof Layout>
 8 | 
 9 | export { Layout, Layout as default }
10 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/layout/index.ts:
--------------------------------------------------------------------------------
 1 | import Layout from './layout.vue'
 2 | import type { ComponentPublicInstance } from 'vue'
 3 | import { withInstall } from '@/packages/utils'
 4 | 
 5 | withInstall(Layout)
 6 | 
 7 | export type LayoutInstance = ComponentPublicInstance & InstanceType<typeof Layout>
 8 | 
 9 | export { Layout, Layout as default }
10 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/layout/layout.taro.vue:
--------------------------------------------------------------------------------
1 | <script lang="ts">
2 | import { createComponent } from '@/packages/utils/create'
3 | const { create } = createComponent('layout')
4 | export default create({})
5 | </script>
6 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/layout/layout.vue:
--------------------------------------------------------------------------------
1 | <script lang="ts">
2 | import { createComponent } from '@/packages/utils/create'
3 | const { create } = createComponent('layout')
4 | export default create({})
5 | </script>
6 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/layout/types.ts:
--------------------------------------------------------------------------------
1 | export const LAYOUT_KEY = Symbol('nut-layout')
2 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/menu/types.ts:
--------------------------------------------------------------------------------
1 | export const MENU_KEY = Symbol('nut-menu')
2 | export type MenuDirection = 'down' | 'up'
3 | export type MenuItemOption = {
4 |   text: string
5 |   value: number | string
6 | }
7 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/navbar/demo/basic.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <nut-navbar title="Title" @click-title="onClick"></nut-navbar>
3 | </template>
4 | <script setup lang="ts">
5 | const onClick = () => {
6 |   console.log('[Navbar]: on click title')
7 | }
8 | </script>
9 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/navbar/demo/title.vue:
--------------------------------------------------------------------------------
 1 | <template>
 2 |   <nut-navbar left-show>
 3 |     <template #content> Content </template>
 4 |   </nut-navbar>
 5 |   <nut-navbar left-show title="Title" title-icon>
 6 |     <template #title-icon>
 7 |       <Cart2 />
 8 |     </template>
 9 |   </nut-navbar>
10 | </template>
11 | <script setup lang="ts">
12 | import { Cart2 } from '@nutui/icons-vue'
13 | </script>
14 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/navbar/index.taro.ts:
--------------------------------------------------------------------------------
 1 | import Navbar from './navbar.taro.vue'
 2 | import type { ComponentPublicInstance } from 'vue'
 3 | import { withInstall } from '@/packages/utils'
 4 | 
 5 | withInstall(Navbar)
 6 | 
 7 | export type { NavbarProps } from './navbar.taro.vue'
 8 | 
 9 | export type NavbarInstance = ComponentPublicInstance & InstanceType<typeof Navbar>
10 | 
11 | export { Navbar, Navbar as default }
12 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/navbar/index.ts:
--------------------------------------------------------------------------------
 1 | import Navbar from './navbar.vue'
 2 | import type { ComponentPublicInstance } from 'vue'
 3 | import { withInstall } from '@/packages/utils'
 4 | 
 5 | withInstall(Navbar)
 6 | 
 7 | export type { NavbarProps } from './navbar.vue'
 8 | 
 9 | export type NavbarInstance = ComponentPublicInstance & InstanceType<typeof Navbar>
10 | 
11 | export { Navbar, Navbar as default }
12 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/noticebar/demo/basic.vue:
--------------------------------------------------------------------------------
 1 | <template>
 2 |   <nut-noticebar :text="text" />
 3 | </template>
 4 | <script setup>
 5 | import { ref } from 'vue'
 6 | const text = ref(
 7 |   'NutUI 是京东风格的移动端组件库,使用 Vue 语言来编写可以在 H5,小程序平台上的应用,帮助研发人员提升开发效率,改善开发体验。'
 8 | )
 9 | </script>
10 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/noticebar/demo/close.vue:
--------------------------------------------------------------------------------
 1 | <template>
 2 |   <nut-noticebar :text="text" close-mode />
 3 | </template>
 4 | <script setup>
 5 | import { ref } from 'vue'
 6 | const text = ref(
 7 |   'NutUI 是京东风格的移动端组件库,使用 Vue 语言来编写可以在 H5,小程序平台上的应用,帮助研发人员提升开发效率,改善开发体验。'
 8 | )
 9 | </script>
10 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/noticebar/demo/custom.vue:
--------------------------------------------------------------------------------
 1 | <template>
 2 |   <nut-noticebar :text="text" background="skyblue" color="rgba(0,0,0,0.8)" :left-icon="false" />
 3 | </template>
 4 | <script setup>
 5 | import { ref } from 'vue'
 6 | const text = ref(
 7 |   'NutUI 是京东风格的移动端组件库,使用 Vue 语言来编写可以在 H5,小程序平台上的应用,帮助研发人员提升开发效率,改善开发体验。'
 8 | )
 9 | </script>
10 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/noticebar/demo/vertical.vue:
--------------------------------------------------------------------------------
 1 | <template>
 2 |   <nut-noticebar direction="vertical" :list="list" :speed="10" :stand-time="2000" @click="handleClick" />
 3 | </template>
 4 | 
 5 | <script setup>
 6 | import { ref } from 'vue'
 7 | const list = ref(['Radio 单选框', 'Checkbox 复选框', 'DatePicker 日期选择器', 'CalendarCard 日历卡片'])
 8 | const handleClick = (item) => {
 9 |   console.log(item)
10 | }
11 | </script>
12 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/noticebar/demo/wrap.vue:
--------------------------------------------------------------------------------
 1 | <template>
 2 |   <nut-noticebar :text="text" wrapable />
 3 | </template>
 4 | <script setup>
 5 | import { ref } from 'vue'
 6 | const text = ref(
 7 |   'NutUI 是京东风格的移动端组件库,使用 Vue 语言来编写可以在 H5,小程序平台上的应用,帮助研发人员提升开发效率,改善开发体验。'
 8 | )
 9 | </script>
10 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/noticebar/types.ts:
--------------------------------------------------------------------------------
1 | export type NoticebarDirection = 'across' | 'vertical'
2 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/notify/types.ts:
--------------------------------------------------------------------------------
1 | import type { PopupPosition } from '../popup/types'
2 | 
3 | export type NotifyPosition = PopupPosition
4 | export type NotifyType = 'base' | 'danger' | 'primary' | 'success' | 'warning'
5 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/numberkeyboard/types.ts:
--------------------------------------------------------------------------------
1 | export type NumberKeyboardType = 'default' | 'rightColumn'
2 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/overlay/__tests__/__snapshots__/overlay.spec.ts.snap:
--------------------------------------------------------------------------------
1 | // Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html
2 | 
3 | exports[`slots test 1`] = `
4 | "<transition-stub name="overlay-fade" appear="false" persisted="true" css="true">
5 |   <view class="nut-overlay" style="transition-duration: 0.3s; z-index: 2000;">这里是正文</view>
6 | </transition-stub>"
7 | `;
8 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/overlay/demo/basic.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <nut-button type="primary" @click="show = true">open</nut-button>
3 |   <nut-overlay v-model:visible="show"></nut-overlay>
4 | </template>
5 | <script setup lang="ts">
6 | import { ref } from 'vue'
7 | const show = ref(false)
8 | </script>
9 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/overlay/demo/duration.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <nut-button type="primary" @click="show = true">duration</nut-button>
3 |   <nut-overlay v-model:visible="show" :duration="2.5"></nut-overlay>
4 | </template>
5 | <script setup lang="ts">
6 | import { ref } from 'vue'
7 | const show = ref(false)
8 | </script>
9 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/overlay/demo/lock.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <nut-button type="primary" @click="show = true">lock-scroll</nut-button>
3 |   <nut-overlay v-model:visible="show" :lock-scroll="true"></nut-overlay>
4 | </template>
5 | <script setup lang="ts">
6 | import { ref } from 'vue'
7 | const show = ref(false)
8 | </script>
9 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/overlay/demo/mask.vue:
--------------------------------------------------------------------------------
 1 | <template>
 2 |   <nut-button type="primary" @click="show = true">style</nut-button>
 3 |   <nut-overlay
 4 |     v-model:visible="show"
 5 |     :overlay-style="{
 6 |       backgroundColor: 'rgba(0, 0, 0, .2)'
 7 |     }"
 8 |   ></nut-overlay>
 9 | </template>
10 | <script setup lang="ts">
11 | import { ref } from 'vue'
12 | const show = ref(false)
13 | </script>
14 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/overlay/index.ts:
--------------------------------------------------------------------------------
 1 | import Overlay from './overlay.vue'
 2 | import type { ComponentPublicInstance } from 'vue'
 3 | import { withInstall } from '@/packages/utils'
 4 | 
 5 | withInstall(Overlay)
 6 | 
 7 | export type { OverlayProps } from './overlay.vue'
 8 | 
 9 | export type OverlayInstance = ComponentPublicInstance & InstanceType<typeof Overlay>
10 | 
11 | export { Overlay, Overlay as default }
12 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/pagination/demo/basic.vue:
--------------------------------------------------------------------------------
 1 | <template>
 2 |   <nut-pagination v-model="page" :total-items="25" :items-per-page="5" @change="change" />
 3 | </template>
 4 | <script setup lang="ts">
 5 | import { ref } from 'vue'
 6 | const page = ref(1)
 7 | const change = (value: number) => {
 8 |   console.log(value)
 9 | }
10 | </script>
11 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/pagination/demo/ellipse.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <nut-pagination v-model="page" :total-items="125" :show-page-size="3" force-ellipses />
3 | </template>
4 | <script setup lang="ts">
5 | import { ref } from 'vue'
6 | const page = ref(1)
7 | </script>
8 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/pagination/demo/simple.vue:
--------------------------------------------------------------------------------
 1 | <template>
 2 |   <nut-pagination v-model="page" :page-count="12" mode="simple" @change="change" />
 3 | </template>
 4 | <script setup lang="ts">
 5 | import { ref } from 'vue'
 6 | const page = ref(1)
 7 | const change = (value: number) => {
 8 |   console.log(value)
 9 | }
10 | </script>
11 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/pagination/types.ts:
--------------------------------------------------------------------------------
1 | export type PaginationMode = 'multi' | 'simple'
2 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/popup/demo/basic.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <nut-cell title="Center" is-link @click="show = true"></nut-cell>
3 |   <nut-popup v-model:visible="show" :style="{ padding: '30px 50px' }"> 正文 </nut-popup>
4 | </template>
5 | <script setup>
6 | import { ref } from 'vue'
7 | const show = ref(false)
8 | </script>
9 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/popup/demo/port.vue:
--------------------------------------------------------------------------------
 1 | <template>
 2 |   <nut-cell title="Teleport" is-link @click="show = true"></nut-cell>
 3 |   <Teleport to="#app">
 4 |     <nut-popup v-model:visible="show" :style="{ padding: '30px 50px' }"> app </nut-popup>
 5 |   </Teleport>
 6 | </template>
 7 | <script setup>
 8 | import { ref } from 'vue'
 9 | const show = ref(false)
10 | </script>
11 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/popup/demo/round.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <nut-cell title="Round" is-link @click="show = true"></nut-cell>
3 |   <nut-popup v-model:visible="show" position="bottom" closeable round :style="{ height: '30%' }"></nut-popup>
4 | </template>
5 | <script setup>
6 | import { ref } from 'vue'
7 | const show = ref(false)
8 | </script>
9 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/popup/types.ts:
--------------------------------------------------------------------------------
1 | export type PopupPosition = 'center' | 'left' | 'right' | 'top' | 'bottom' | ''
2 | export type PopupCloseIconPosition = 'top-right' | 'top-left' | 'bottom-left' | 'bottom-right'
3 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/price/demo/decimal.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <nut-price :price="8888" :decimal-digits="0" />
3 | </template>
4 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/price/demo/position.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <nut-price :price="8888.01" position="after" symbol="RMB" />
3 | </template>
4 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/price/demo/size.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <nut-price :price="0" size="large" />
3 |   <nut-price :price="0" size="normal" />
4 |   <nut-price :price="0" size="small" />
5 | </template>
6 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/price/demo/symbol.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <nut-price :price="10010.01" symbol="
quot; />
3 | </template>
4 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/price/demo/thousands.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <nut-price :price="15213.1221" :decimal-digits="3" thousands />
3 | </template>
4 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/price/demo/through.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <nut-price :price="8888" :decimal-digits="0" strike-through />
3 | </template>
4 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/price/types.ts:
--------------------------------------------------------------------------------
1 | export type PriceSize = 'small' | 'normal' | 'large'
2 | export type PricePosition = 'before' | 'after'
3 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/progress/demo/basic.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <nut-progress :percentage="30" />
3 | </template>
4 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/progress/demo/color.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <nut-progress :percentage="30" stroke-color="skyblue" stroke-width="15" text-color="green" />
3 | </template>
4 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/progress/demo/content.vue:
--------------------------------------------------------------------------------
 1 | <template>
 2 |   <nut-progress :percentage="60" text-inside>
 3 |     <img
 4 |       src="https://img11.360buyimg.com/imagetools/jfs/t1/137646/13/7132/1648/5f4c748bE43da8ddd/a3f06d51dcae7b60.png"
 5 |       width="30"
 6 |       height="30"
 7 |     />
 8 |   </nut-progress>
 9 | </template>
10 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/progress/demo/inside.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <nut-progress :percentage="60" text-inside />
3 | </template>
4 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/progress/demo/size.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <nut-progress :percentage="30" text-inside size="small"> </nut-progress>
3 |   <nut-progress :percentage="50" text-inside size="base"> </nut-progress>
4 |   <nut-progress :percentage="70" text-inside size="large"> </nut-progress>
5 | </template>
6 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/progress/demo/text.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <nut-progress :percentage="50" :show-text="false" />
3 | </template>
4 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/progress/types.ts:
--------------------------------------------------------------------------------
1 | export type ProgressSize = 'small' | 'base' | 'large'
2 | export type ProgressStatus = 'text' | 'active' | 'icon'
3 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/pullrefresh/doc.taro.md:
--------------------------------------------------------------------------------
1 | # PullRefresh 下拉刷新
2 | 
3 | ### 介绍
4 | 
5 | 用于提供下拉刷新的交互操作。
6 | 
7 | #### 直接使用 Taro 现有 ScrollView 组件开发 [参考文档](https://docs.taro.zone/docs/components/viewContainer/scroll-view)
8 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/radio/demo/basic.vue:
--------------------------------------------------------------------------------
 1 | <template>
 2 |   <nut-radio-group v-model="val">
 3 |     <nut-radio label="1">Option 1</nut-radio>
 4 |     <nut-radio label="2">Option 2</nut-radio>
 5 |     <nut-radio label="3">Option 3</nut-radio>
 6 |   </nut-radio-group>
 7 | </template>
 8 | <script setup lang="ts">
 9 | import { ref } from 'vue'
10 | const val = ref('1')
11 | </script>
12 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/radio/demo/disabled.vue:
--------------------------------------------------------------------------------
 1 | <template>
 2 |   <nut-radio-group v-model="val">
 3 |     <nut-radio disabled label="1">Option 1</nut-radio>
 4 |     <nut-radio disabled label="2">Option 2</nut-radio>
 5 |     <nut-radio disabled label="3">Option 3</nut-radio>
 6 |   </nut-radio-group>
 7 | </template>
 8 | <script setup lang="ts">
 9 | import { ref } from 'vue'
10 | const val = ref('1')
11 | </script>
12 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/radio/demo/event.vue:
--------------------------------------------------------------------------------
 1 | <template>
 2 |   <nut-radio-group v-model="val" @change="onChange">
 3 |     <nut-radio label="1">Option 1</nut-radio>
 4 |     <nut-radio label="2">Option 2</nut-radio>
 5 |   </nut-radio-group>
 6 | </template>
 7 | <script setup lang="ts">
 8 | import { ref } from 'vue'
 9 | const val = ref('1')
10 | const onChange = (v: string) => {
11 |   console.log(v)
12 | }
13 | </script>
14 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/radio/demo/horizontal.vue:
--------------------------------------------------------------------------------
 1 | <template>
 2 |   <nut-radio-group v-model="val" direction="horizontal">
 3 |     <nut-radio label="1">Option 1</nut-radio>
 4 |     <nut-radio label="2">Option 2</nut-radio>
 5 |     <nut-radio label="3">Option 3</nut-radio>
 6 |   </nut-radio-group>
 7 | </template>
 8 | <script setup lang="ts">
 9 | import { ref } from 'vue'
10 | const val = ref('1')
11 | </script>
12 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/radio/demo/position.vue:
--------------------------------------------------------------------------------
 1 | <template>
 2 |   <nut-radio-group v-model="val" text-position="left">
 3 |     <nut-radio label="1">Option 1</nut-radio>
 4 |     <nut-radio label="2">Option 2</nut-radio>
 5 |     <nut-radio label="3">Option 3</nut-radio>
 6 |   </nut-radio-group>
 7 | </template>
 8 | <script setup lang="ts">
 9 | import { ref } from 'vue'
10 | const val = ref('1')
11 | </script>
12 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/radio/types.ts:
--------------------------------------------------------------------------------
 1 | export const RADIO_KEY = Symbol('nut-radio')
 2 | 
 3 | // Radio
 4 | export type RadioShape = 'round' | 'button'
 5 | export type RadioButtonSize = 'normal' | 'small' | 'mini'
 6 | 
 7 | // RadioGroup
 8 | export type RadioGroupTextPosition = 'right' | 'left'
 9 | export type RadioGroupDirection = 'vertical' | 'horizontal'
10 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/radiogroup/index.scss:
--------------------------------------------------------------------------------
 1 | .nut-radio-group {
 2 |   display: inline-block;
 3 |   .nut-radio {
 4 |     margin-bottom: 5px;
 5 |   }
 6 |   &--horizontal {
 7 |     .nut-radio {
 8 |       display: inline-flex;
 9 |       margin-right: 10px;
10 |       &--round {
11 |         .nut-radio__label {
12 |           margin: 0 6px;
13 |         }
14 |       }
15 |     }
16 |   }
17 | }
18 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/range/demo/basic.vue:
--------------------------------------------------------------------------------
 1 | <template>
 2 |   <nut-range v-model="val" @change="change"></nut-range>
 3 | </template>
 4 | <script setup lang="ts">
 5 | import { ref } from 'vue'
 6 | const val = ref(40)
 7 | const change = (value: number) => {
 8 |   console.log(value)
 9 | }
10 | </script>
11 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/range/demo/color.vue:
--------------------------------------------------------------------------------
 1 | <template>
 2 |   <nut-range v-model="val" inactive-color="red" button-color="blue" active-color="skyblue" @change="change"></nut-range>
 3 | </template>
 4 | <script setup lang="ts">
 5 | import { ref } from 'vue'
 6 | const val = ref(40)
 7 | const change = (value: number) => {
 8 |   console.log(value)
 9 | }
10 | </script>
11 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/range/demo/disabled.vue:
--------------------------------------------------------------------------------
 1 | <template>
 2 |   <nut-range v-model="val" disabled @change="change"></nut-range>
 3 | </template>
 4 | <script setup lang="ts">
 5 | import { ref } from 'vue'
 6 | const val = ref(40)
 7 | const change = (value: number) => {
 8 |   console.log(value)
 9 | }
10 | </script>
11 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/range/demo/hidden-range.vue:
--------------------------------------------------------------------------------
 1 | <template>
 2 |   <nut-range v-model="val" hidden-range @change="change"></nut-range>
 3 | </template>
 4 | <script setup lang="ts">
 5 | import { ref } from 'vue'
 6 | const val = ref(40)
 7 | const change = (value: number) => {
 8 |   console.log(value)
 9 | }
10 | </script>
11 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/range/demo/hidden-tag.vue:
--------------------------------------------------------------------------------
 1 | <template>
 2 |   <nut-range v-model="val" hidden-tag @change="change"></nut-range>
 3 | </template>
 4 | <script setup lang="ts">
 5 | import { ref } from 'vue'
 6 | const val = ref(40)
 7 | const change = (value: number) => {
 8 |   console.log(value)
 9 | }
10 | </script>
11 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/range/demo/limit.vue:
--------------------------------------------------------------------------------
 1 | <template>
 2 |   <nut-range v-model="val" :max="10" :min="-10" @change="change" />
 3 | </template>
 4 | <script setup lang="ts">
 5 | import { ref } from 'vue'
 6 | const val = ref(0)
 7 | const change = (value: number) => {
 8 |   console.log(value)
 9 | }
10 | </script>
11 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/range/demo/range.vue:
--------------------------------------------------------------------------------
 1 | <template>
 2 |   <nut-range v-model="val" range @change="change"></nut-range>
 3 | </template>
 4 | <script setup lang="ts">
 5 | import { ref } from 'vue'
 6 | const val = ref([20, 80])
 7 | const change = (value: number[]) => {
 8 |   console.log(value)
 9 | }
10 | </script>
11 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/range/demo/step.vue:
--------------------------------------------------------------------------------
 1 | <template>
 2 |   <nut-range v-model="val" :step="5" @change="change"></nut-range>
 3 | </template>
 4 | <script setup lang="ts">
 5 | import { ref } from 'vue'
 6 | const val = ref(20)
 7 | const change = (value: number) => {
 8 |   console.log(value)
 9 | }
10 | </script>
11 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/range/type.ts:
--------------------------------------------------------------------------------
1 | export type SliderValue = number | number[]
2 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/rate/demo/basic.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <nut-rate v-model="value" />
3 | </template>
4 | <script setup lang="ts">
5 | import { ref } from 'vue'
6 | const value = ref(3)
7 | </script>
8 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/rate/demo/color.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <nut-rate v-model="value" active-color="skyblue" />
3 | </template>
4 | <script setup lang="ts">
5 | import { ref } from 'vue'
6 | const value = ref(3)
7 | </script>
8 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/rate/demo/count.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <nut-rate v-model="value" :count="10" />
3 | </template>
4 | <script setup lang="ts">
5 | import { ref } from 'vue'
6 | const value = ref(3)
7 | </script>
8 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/rate/demo/disabled.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <nut-rate v-model="value" disabled />
3 | </template>
4 | <script setup lang="ts">
5 | import { ref } from 'vue'
6 | const value = ref(3)
7 | </script>
8 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/rate/demo/event.vue:
--------------------------------------------------------------------------------
 1 | <template>
 2 |   <nut-rate v-model="value" @change="onChange" />
 3 | </template>
 4 | <script setup lang="ts">
 5 | import { ref } from 'vue'
 6 | const value = ref(3)
 7 | const onChange = (val: number) => {
 8 |   console.log(val)
 9 | }
10 | </script>
11 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/rate/demo/half.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <nut-rate v-model="value" allow-half />
3 | </template>
4 | <script setup lang="ts">
5 | import { ref } from 'vue'
6 | const value = ref(3.5)
7 | </script>
8 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/rate/demo/icon.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <nut-rate v-model="value" :custom-icon="HeartFill" />
3 | </template>
4 | <script setup lang="ts">
5 | import { ref } from 'vue'
6 | import { HeartFill } from '@nutui/icons-vue'
7 | const value = ref(3)
8 | </script>
9 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/rate/demo/read.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <nut-rate v-model="value" readonly />
3 | </template>
4 | <script setup lang="ts">
5 | import { ref } from 'vue'
6 | const value = ref(3)
7 | </script>
8 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/rate/demo/size.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <nut-rate v-model="value" size="35" />
3 | </template>
4 | <script setup lang="ts">
5 | import { ref } from 'vue'
6 | const value = ref(3)
7 | </script>
8 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/rate/index.taro.ts:
--------------------------------------------------------------------------------
 1 | import Rate from './rate.taro.vue'
 2 | import type { ComponentPublicInstance } from 'vue'
 3 | import { withInstall } from '@/packages/utils'
 4 | 
 5 | withInstall(Rate)
 6 | 
 7 | export type { RateProps } from './rate.taro.vue'
 8 | 
 9 | export type RateInstance = ComponentPublicInstance & InstanceType<typeof Rate>
10 | 
11 | export { Rate, Rate as default }
12 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/rate/index.ts:
--------------------------------------------------------------------------------
 1 | import Rate from './rate.vue'
 2 | import type { ComponentPublicInstance } from 'vue'
 3 | import { withInstall } from '@/packages/utils'
 4 | 
 5 | withInstall(Rate)
 6 | 
 7 | export type { RateProps } from './rate.vue'
 8 | 
 9 | export type RateInstance = ComponentPublicInstance & InstanceType<typeof Rate>
10 | 
11 | export { Rate, Rate as default }
12 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/row/__tests__/index.spec.ts:
--------------------------------------------------------------------------------
 1 | import { Row } from '@nutui/nutui'
 2 | import { mount } from '@vue/test-utils'
 3 | 
 4 | test('should add "nut-row-flex-nowrap" class when wrap prop is false', () => {
 5 |   const wrapper = mount(Row, {
 6 |     props: {
 7 |       wrap: 'nowrap'
 8 |     }
 9 |   })
10 |   expect(wrapper.classes()).toContain('nut-row-flex-nowrap')
11 | })
12 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/row/index.taro.ts:
--------------------------------------------------------------------------------
 1 | import Row from './row.taro.vue'
 2 | import type { ComponentPublicInstance } from 'vue'
 3 | import { withInstall } from '@/packages/utils'
 4 | 
 5 | withInstall(Row)
 6 | 
 7 | export type { RowProps } from './row.taro.vue'
 8 | 
 9 | export type RowInstance = ComponentPublicInstance & InstanceType<typeof Row>
10 | 
11 | export { Row, Row as default }
12 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/row/index.ts:
--------------------------------------------------------------------------------
 1 | import Row from './row.vue'
 2 | import type { ComponentPublicInstance } from 'vue'
 3 | import { withInstall } from '@/packages/utils'
 4 | 
 5 | withInstall(Row)
 6 | 
 7 | export type { RowProps } from './row.vue'
 8 | 
 9 | export type RowInstance = ComponentPublicInstance & InstanceType<typeof Row>
10 | 
11 | export { Row, Row as default }
12 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/searchbar/demo/background.vue:
--------------------------------------------------------------------------------
 1 | <template>
 2 |   <nut-searchbar
 3 |     v-model="val"
 4 |     background="linear-gradient(to right, #9866F0, #EB4D50)"
 5 |     input-background="#fff"
 6 |   ></nut-searchbar>
 7 | </template>
 8 | <script setup lang="ts">
 9 | import { ref } from 'vue'
10 | const val = ref('')
11 | </script>
12 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/searchbar/demo/basic.vue:
--------------------------------------------------------------------------------
 1 | <template>
 2 |   <nut-searchbar v-model="val" @search="search"></nut-searchbar>
 3 | </template>
 4 | <script setup lang="ts">
 5 | import { ref } from 'vue'
 6 | const val = ref('')
 7 | const search = (text: string) => {
 8 |   console.log('search', text)
 9 | }
10 | </script>
11 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/searchbar/demo/focus.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <nut-searchbar v-model="val" :focus-style="{ outline: '1px solid red' }"></nut-searchbar>
3 | </template>
4 | <script setup lang="ts">
5 | import { ref } from 'vue'
6 | const val = ref('')
7 | </script>
8 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/searchbar/demo/left.vue:
--------------------------------------------------------------------------------
 1 | <template>
 2 |   <nut-searchbar v-model="val">
 3 |     <template #leftout> label </template>
 4 |     <template #leftin>
 5 |       <Search2 />
 6 |     </template>
 7 |   </nut-searchbar>
 8 | </template>
 9 | <script setup lang="ts">
10 | import { ref } from 'vue'
11 | import { Search2 } from '@nutui/icons-vue'
12 | const val = ref('')
13 | </script>
14 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/searchbar/demo/right.vue:
--------------------------------------------------------------------------------
 1 | <template>
 2 |   <nut-searchbar v-model="val">
 3 |     <template #rightout> Search </template>
 4 |     <template #rightin>
 5 |       <Search2 />
 6 |     </template>
 7 |   </nut-searchbar>
 8 | </template>
 9 | <script setup lang="ts">
10 | import { ref } from 'vue'
11 | import { Search2 } from '@nutui/icons-vue'
12 | const val = ref('')
13 | </script>
14 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/searchbar/demo/shape.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <nut-searchbar v-model="val" shape="square"></nut-searchbar>
3 | </template>
4 | <script setup lang="ts">
5 | import { ref } from 'vue'
6 | const val = ref('')
7 | </script>
8 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/searchbar/types.ts:
--------------------------------------------------------------------------------
1 | export type SearchbarInputAlign = 'start' | 'end' | 'left' | 'right' | 'center' | 'justify' | 'match-parent'
2 | export type SearchbarConfirmType = 'send' | 'search' | 'next' | 'go' | 'done'
3 | export type SearchbarShape = 'round' | 'square'
4 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/sidenavbar/index.scss:
--------------------------------------------------------------------------------
 1 | .nut-side-navbar {
 2 |   overflow: auto;
 3 |   display: block;
 4 |   &__content {
 5 |     position: relative;
 6 |     background-color: $sidenavbar-content-bg-color;
 7 |     display: block;
 8 |     &__list {
 9 |       width: 100%;
10 |       display: block;
11 |     }
12 |   }
13 | }
14 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/signature/__tests__/__snapshots__/signature.spec.tsx.snap:
--------------------------------------------------------------------------------
1 | // Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html
2 | 
3 | exports[`props custom-class 1`] = `"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNkYPhfDwAChwGA60e6kgAAAABJRU5ErkJggg=="`;
4 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/skeleton/__tests__/__snapshots__/skeleton.spec.tsx.snap:
--------------------------------------------------------------------------------
1 | // Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html
2 | 
3 | exports[`Skeleton: should change avatar shape when using avatarShape prop 1`] = `"<view style="width: 50px; height: 50px; background-color: #eee; color: #666;" class="nut-avatar nut-avatar-normal nut-avatar-square avatarClass avatarClass--square"></view>"`;
4 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/skeleton/demo/avatar.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <nut-skeleton width="250px" height="15px" animated avatar avatar-size="60px" row="3"> </nut-skeleton>
3 | </template>
4 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/skeleton/demo/basic.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <nut-skeleton width="200px" height="15px" animated></nut-skeleton>
3 | </template>
4 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/skeleton/demo/round.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <nut-skeleton width="250px" height="15px" animated round></nut-skeleton>
3 | </template>
4 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/skeleton/demo/row.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <nut-skeleton width="250px" height="15px" animated row="3"> </nut-skeleton>
3 | </template>
4 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/sku/type.ts:
--------------------------------------------------------------------------------
1 | export interface SkuInfo {
2 |   name: string
3 |   id: number
4 |   active: boolean
5 |   disable: boolean
6 |   [props: string]: any
7 | }
8 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/space/demo/basic.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <nut-space>
3 |     <nut-button>Button</nut-button>
4 |     <nut-button>Button</nut-button>
5 |     <nut-button>Button</nut-button>
6 |     <nut-button>Button</nut-button>
7 |   </nut-space>
8 | </template>
9 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/space/demo/direction.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <nut-space direction="vertical" fill>
3 |     <nut-button block>Button</nut-button>
4 |     <nut-button block>Button</nut-button>
5 |     <nut-button block>Button</nut-button>
6 |     <nut-button block>Button</nut-button>
7 |   </nut-space>
8 | </template>
9 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/space/types.ts:
--------------------------------------------------------------------------------
1 | export type SpaceGutter = number | string
2 | export type SpaceAlign = 'start' | 'end' | 'center' | 'baseline'
3 | export type SpaceJustify = 'start' | 'end' | 'center' | 'between' | 'around' | 'evenly' | 'stretch'
4 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/step/index.taro.ts:
--------------------------------------------------------------------------------
 1 | import Step from './step.taro.vue'
 2 | import type { ComponentPublicInstance } from 'vue'
 3 | import { withInstall } from '@/packages/utils'
 4 | 
 5 | withInstall(Step)
 6 | 
 7 | export type { StepProps } from './step.taro.vue'
 8 | 
 9 | export type StepInstance = ComponentPublicInstance & InstanceType<typeof Step>
10 | 
11 | export { Step, Step as default }
12 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/step/index.ts:
--------------------------------------------------------------------------------
 1 | import Step from './step.vue'
 2 | import type { ComponentPublicInstance } from 'vue'
 3 | import { withInstall } from '@/packages/utils'
 4 | 
 5 | withInstall(Step)
 6 | 
 7 | export type { StepProps } from './step.vue'
 8 | 
 9 | export type StepInstance = ComponentPublicInstance & InstanceType<typeof Step>
10 | 
11 | export { Step, Step as default }
12 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/steps/__tests__/__snapshots__/index.spec.tsx.snap:
--------------------------------------------------------------------------------
1 | // Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html
2 | 
3 | exports[`step props and icon slots 1`] = `"svg"`;
4 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/steps/demo/desc.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <nut-steps :current="2">
3 |     <nut-step title="未开始" content="描述信息">1</nut-step>
4 |     <nut-step title="进行中" content="描述信息">2</nut-step>
5 |     <nut-step title="已完成" content="描述信息">3</nut-step>
6 |   </nut-steps>
7 | </template>
8 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/steps/demo/dot.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <nut-steps :current="2" progress-dot>
3 |     <nut-step title="未开始">1</nut-step>
4 |     <nut-step title="进行中">2</nut-step>
5 |     <nut-step title="已完成">3</nut-step>
6 |   </nut-steps>
7 | </template>
8 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/steps/index.scss:
--------------------------------------------------------------------------------
1 | .nut-steps {
2 |   display: flex;
3 | }
4 | .nut-steps-vertical {
5 |   height: 100%;
6 |   flex-flow: column;
7 | }
8 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/steps/types.ts:
--------------------------------------------------------------------------------
1 | export const STEPS_KEY = Symbol('nut-steps')
2 | export type StepsDirection = 'horizontal' | 'vertical'
3 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/sticky/demo/basic.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <nut-sticky top="57">
3 |     <nut-button type="primary">Top 57px</nut-button>
4 |   </nut-sticky>
5 | </template>
6 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/sticky/demo/bottom.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <div style="height: 100vh"></div>
3 |   <nut-sticky bottom="50" position="bottom">
4 |     <nut-button type="primary">Bottom 50px</nut-button>
5 |   </nut-sticky>
6 |   <div style="height: 100vh"></div>
7 | </template>
8 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/sticky/demo/top.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <nut-sticky top="120">
3 |     <nut-button type="primary">Top 120px</nut-button>
4 |   </nut-sticky>
5 | </template>
6 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/sticky/index.scss:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jd-opensource/nutui/fe5c0128e415492fc7d24f8887b721fea5c61b48/src/packages/__VUE/sticky/index.scss


--------------------------------------------------------------------------------
/src/packages/__VUE/swipe/demo/basic.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <nut-swipe>
3 |     <nut-cell round-radius="0" title="Swipe Left" />
4 |     <template #right>
5 |       <nut-button shape="square" style="height: 100%" type="danger">Button</nut-button>
6 |     </template>
7 |   </nut-swipe>
8 | </template>
9 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/swipe/demo/disabled.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <nut-swipe disabled>
3 |     <nut-cell round-radius="0" title="Disabled" />
4 |     <template #right>
5 |       <nut-button shape="square" style="height: 100%" type="danger">Button</nut-button>
6 |     </template>
7 |   </nut-swipe>
8 | </template>
9 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/swipe/types.ts:
--------------------------------------------------------------------------------
1 | export const SWIPE_KEY = Symbol('nut-swipe')
2 | export type SwipePosition = 'left' | 'right' | ''
3 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/swipegroup/index.scss:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jd-opensource/nutui/fe5c0128e415492fc7d24f8887b721fea5c61b48/src/packages/__VUE/swipegroup/index.scss


--------------------------------------------------------------------------------
/src/packages/__VUE/swiper/types.ts:
--------------------------------------------------------------------------------
1 | export const SWIPER_KEY = Symbol('nut-swiper')
2 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/swiperitem/index.scss:
--------------------------------------------------------------------------------
1 | .nut-swiper-item {
2 |   height: 100%;
3 |   img {
4 |     // pointer-events: none;
5 |   }
6 | }
7 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/swiperitem/type.ts:
--------------------------------------------------------------------------------
1 | export interface IStyle {
2 |   width?: string
3 |   height?: string
4 |   transform?: string
5 | }
6 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/switch/__tests__/__snapshots__/switch.spec.ts.snap:
--------------------------------------------------------------------------------
 1 | // Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html
 2 | 
 3 | exports[`render ok 1`] = `
 4 | "<view class="nut-switch nut-switch-close nut-switch-base">
 5 |   <view class="nut-switch-button">
 6 |     <!--v-if-->
 7 |     <!--v-if-->
 8 |   </view>
 9 | </view>"
10 | `;
11 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/switch/demo/async.vue:
--------------------------------------------------------------------------------
 1 | <template>
 2 |   <nut-switch :model-value="val" @change="change" />
 3 | </template>
 4 | <script setup>
 5 | import { ref } from 'vue'
 6 | const val = ref(true)
 7 | const change = (value) => {
 8 |   setTimeout(() => {
 9 |     val.value = value
10 |   }, 2000)
11 | }
12 | </script>
13 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/switch/demo/basic.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <nut-switch v-model="val" />
3 | </template>
4 | <script setup>
5 | import { ref } from 'vue'
6 | const val = ref(true)
7 | </script>
8 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/switch/demo/color.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <nut-switch v-model="val" active-color="skyblue" />
3 | </template>
4 | <script setup>
5 | import { ref } from 'vue'
6 | const val = ref(true)
7 | </script>
8 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/switch/demo/disabled.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <nut-switch v-model="val" disabled />
3 | </template>
4 | <script setup>
5 | import { ref } from 'vue'
6 | const val = ref(true)
7 | </script>
8 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/switch/demo/event.vue:
--------------------------------------------------------------------------------
 1 | <template>
 2 |   <nut-switch v-model="val" @change="change" />
 3 | </template>
 4 | <script setup>
 5 | import { ref } from 'vue'
 6 | const val = ref(true)
 7 | const change = (value) => {
 8 |   console.log(value)
 9 | }
10 | </script>
11 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/switch/demo/icon.vue:
--------------------------------------------------------------------------------
 1 | <template>
 2 |   <nut-switch v-model="val" loading>
 3 |     <template #icon>
 4 |       <Loading name="loading" />
 5 |     </template>
 6 |   </nut-switch>
 7 | </template>
 8 | <script setup>
 9 | import { ref } from 'vue'
10 | import { Loading } from '@nutui/icons-vue'
11 | const val = ref(true)
12 | </script>
13 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/switch/demo/loading.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <nut-switch v-model="val" loading active-color="red" />
3 | </template>
4 | <script setup>
5 | import { ref } from 'vue'
6 | const val = ref(true)
7 | </script>
8 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/switch/demo/text.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <nut-switch v-model="val" active-text="开" inactive-text="关" />
3 | </template>
4 | <script setup>
5 | import { ref } from 'vue'
6 | const val = ref(true)
7 | </script>
8 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/switch/index.taro.ts:
--------------------------------------------------------------------------------
 1 | import Switch from './switch.taro.vue'
 2 | import type { ComponentPublicInstance } from 'vue'
 3 | import { withInstall } from '@/packages/utils'
 4 | 
 5 | withInstall(Switch)
 6 | 
 7 | export type { SwitchProps } from './switch.taro.vue'
 8 | 
 9 | export type SwitchInstance = ComponentPublicInstance & InstanceType<typeof Switch>
10 | 
11 | export { Switch, Switch as default }
12 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/switch/index.ts:
--------------------------------------------------------------------------------
 1 | import Switch from './switch.vue'
 2 | import type { ComponentPublicInstance } from 'vue'
 3 | import { withInstall } from '@/packages/utils'
 4 | 
 5 | withInstall(Switch)
 6 | 
 7 | export type { SwitchProps } from './switch.vue'
 8 | 
 9 | export type SwitchInstance = ComponentPublicInstance & InstanceType<typeof Switch>
10 | 
11 | export { Switch, Switch as default }
12 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/tabbar/index.taro.ts:
--------------------------------------------------------------------------------
 1 | import Tabbar from './tabbar.taro.vue'
 2 | import type { ComponentPublicInstance } from 'vue'
 3 | import { withInstall } from '@/packages/utils'
 4 | 
 5 | withInstall(Tabbar)
 6 | 
 7 | export type { TabbarProps } from './tabbar.taro.vue'
 8 | 
 9 | export type TabbarInstance = ComponentPublicInstance & InstanceType<typeof Tabbar>
10 | 
11 | export { Tabbar, Tabbar as default }
12 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/tabbar/index.ts:
--------------------------------------------------------------------------------
 1 | import Tabbar from './tabbar.vue'
 2 | import type { ComponentPublicInstance } from 'vue'
 3 | import { withInstall } from '@/packages/utils'
 4 | 
 5 | withInstall(Tabbar)
 6 | 
 7 | export type { TabbarProps } from './tabbar.vue'
 8 | 
 9 | export type TabbarInstance = ComponentPublicInstance & InstanceType<typeof Tabbar>
10 | 
11 | export { Tabbar, Tabbar as default }
12 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/tabbar/types.ts:
--------------------------------------------------------------------------------
1 | export const TABBAR_KEY = Symbol('nut-tabbar')
2 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/tag/demo/basic.vue:
--------------------------------------------------------------------------------
 1 | <template>
 2 |   <nut-space>
 3 |     <nut-tag> default </nut-tag>
 4 |     <nut-tag type="primary"> primary </nut-tag>
 5 |     <nut-tag type="success"> success </nut-tag>
 6 |     <nut-tag type="danger"> danger </nut-tag>
 7 |     <nut-tag type="warning"> warning </nut-tag>
 8 |   </nut-space>
 9 | </template>
10 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/tag/demo/color.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <nut-space>
3 |     <nut-tag color="#FA685D"> background </nut-tag>
4 |     <nut-tag color="#E9E9E9" text-color="#999999"> text </nut-tag>
5 |     <nut-tag color="#FA2400" plain> plain </nut-tag>
6 |   </nut-space>
7 | </template>
8 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/tag/types.ts:
--------------------------------------------------------------------------------
1 | export type TagType = 'primary' | 'success' | 'danger' | 'warning' | 'default'
2 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/textarea/demo/basic.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <nut-textarea v-model="val" />
3 | </template>
4 | <script setup>
5 | import { ref } from 'vue'
6 | const val = ref('')
7 | </script>
8 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/textarea/demo/focus.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <nut-textarea v-model="val" autofocus />
3 | </template>
4 | <script setup>
5 | import { ref } from 'vue'
6 | const val = ref('')
7 | </script>
8 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/textarea/demo/limit.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <nut-textarea v-model="val" limit-show :max-length="20" />
3 | </template>
4 | <script setup>
5 | import { ref } from 'vue'
6 | const val = ref('')
7 | </script>
8 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/textarea/demo/row.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <nut-textarea v-model="val" :rows="3" autosize />
3 | </template>
4 | <script setup>
5 | import { ref } from 'vue'
6 | const val = ref('')
7 | </script>
8 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/textarea/demo/status.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <nut-textarea readonly model-value="Textarea Readonly" />
3 |   <nut-textarea disabled model-value="Textarea Disabled" />
4 | </template>
5 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/tour/type.ts:
--------------------------------------------------------------------------------
 1 | export type PopoverTheme = 'light' | 'dark'
 2 | 
 3 | export type PopoverLocation =
 4 |   | 'bottom'
 5 |   | 'top'
 6 |   | 'left'
 7 |   | 'right'
 8 |   | 'top-start'
 9 |   | 'top-end'
10 |   | 'bottom-start'
11 |   | 'bottom-end'
12 |   | 'left-start'
13 |   | 'left-end'
14 |   | 'right-start'
15 |   | 'right-end'
16 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/trendarrow/demo/basic.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <nut-cell>
3 |     <nut-trend-arrow :rate="1" />
4 |     <nut-trend-arrow :rate="-0.2535" />
5 |   </nut-cell>
6 | </template>
7 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/trendarrow/demo/digits.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <nut-cell>
3 |     <nut-trend-arrow :digits="1" :rate="10.2365" />
4 |     <nut-trend-arrow :digits="3" :rate="-0.2535" />
5 |   </nut-cell>
6 | </template>
7 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/trendarrow/demo/left.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <nut-cell>
3 |     <nut-trend-arrow arrow-left :rate="0.2535" />
4 |     <nut-trend-arrow arrow-left :rate="-0.2535" />
5 |   </nut-cell>
6 | </template>
7 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/trendarrow/demo/sign.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <nut-cell>
3 |     <nut-trend-arrow show-sign :rate="1" />
4 |     <nut-trend-arrow show-sign :rate="-0.2535" />
5 |   </nut-cell>
6 | </template>
7 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/trendarrow/demo/zero.vue:
--------------------------------------------------------------------------------
1 | <template>
2 |   <nut-cell>
3 |     <nut-trend-arrow show-sign :rate="0" />
4 |     <nut-trend-arrow show-sign show-zero :rate="0" />
5 |   </nut-cell>
6 | </template>
7 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/video/doc.taro.md:
--------------------------------------------------------------------------------
1 | # Video 视频播放器
2 | 
3 | ### 介绍
4 | 
5 | 原生 video 实现的视频播放器
6 | 
7 | #### 直接使用 Taro 现有 video 组件开发 [参考文档](https://docs.taro.zone/docs/components/media/video)
8 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/watermark/demo/multi.vue:
--------------------------------------------------------------------------------
 1 | <template>
 2 |   <nut-cell style="height: 240px">
 3 |     <nut-watermark
 4 |       :full-page="false"
 5 |       :gap-y="24"
 6 |       font-color="#fa2c19"
 7 |       :content="['nutui', 'watermark']"
 8 |     ></nut-watermark>
 9 |   </nut-cell>
10 | </template>
11 | 


--------------------------------------------------------------------------------
/src/packages/__VUE/watermark/index.scss:
--------------------------------------------------------------------------------
 1 | .nut-watermark {
 2 |   position: absolute;
 3 |   z-index: $watermark-z-index;
 4 |   left: 0;
 5 |   right: 0;
 6 |   top: 0;
 7 |   bottom: 0;
 8 |   pointer-events: none;
 9 |   background-repeat: repeat;
10 |   &-full-page {
11 |     position: fixed;
12 |   }
13 | }
14 | 


--------------------------------------------------------------------------------
/src/packages/styles/animation/fade.scss:
--------------------------------------------------------------------------------
 1 | @keyframes nutFadeIn {
 2 |   from {
 3 |     opacity: 0;
 4 |   }
 5 | 
 6 |   to {
 7 |     opacity: 1;
 8 |   }
 9 | }
10 | 
11 | @keyframes nutFadeOut {
12 |   from {
13 |     opacity: 1;
14 |   }
15 | 
16 |   to {
17 |     opacity: 0;
18 |   }
19 | }
20 | @include make-animation(nutFade);
21 | 


--------------------------------------------------------------------------------
/src/packages/styles/animation/index.scss:
--------------------------------------------------------------------------------
1 | // Animation
2 | @import 'fade.scss';
3 | @import 'zoom.scss';
4 | @import 'ease.scss';
5 | @import 'drop.scss';
6 | @import 'rotate.scss';
7 | 


--------------------------------------------------------------------------------
/src/packages/styles/animation/rotate.scss:
--------------------------------------------------------------------------------
 1 | @keyframes rotation {
 2 |   0% {
 3 |     -webkit-transform: rotate(0deg);
 4 |   }
 5 |   100% {
 6 |     -webkit-transform: rotate(360deg);
 7 |   }
 8 | }
 9 | 
10 | @include make-animation(nutRotate);
11 | 


--------------------------------------------------------------------------------
/src/packages/styles/mixins/index.scss:
--------------------------------------------------------------------------------
1 | @import 'make-animation.scss';
2 | @import 'text-ellipsis.scss';
3 | 


--------------------------------------------------------------------------------
/src/packages/styles/reset.css:
--------------------------------------------------------------------------------
1 | html {
2 |   -webkit-tap-highlight-color: transparent;
3 | }
4 | 


--------------------------------------------------------------------------------
/src/packages/utils/create/index.ts:
--------------------------------------------------------------------------------
1 | import { createComponent } from './component'
2 | import { renderIcon } from './renderIcon'
3 | 
4 | export * from './mountComponent'
5 | export { createComponent, renderIcon }
6 | 


--------------------------------------------------------------------------------
/src/packages/utils/create/renderIcon.ts:
--------------------------------------------------------------------------------
1 | import { h, Component } from 'vue'
2 | 
3 | export const renderIcon = (icon: Component, props?: any) => {
4 |   if (icon) return h(icon, props)
5 |   return ''
6 | }
7 | 


--------------------------------------------------------------------------------
/src/packages/utils/index.ts:
--------------------------------------------------------------------------------
1 | export * from './useRelation'
2 | export * from './with-install'
3 | export * from './util'
4 | export * from './pxCheck'
5 | export * from './useRoute'
6 | export * from './useLockScroll'
7 | 


--------------------------------------------------------------------------------
/src/packages/utils/pxCheck.ts:
--------------------------------------------------------------------------------
1 | export const pxCheck = (value?: string | number): string | undefined => {
2 |   if (value !== undefined) {
3 |     return isNaN(Number(value)) ? String(value) : `${value}px`
4 |   }
5 | }
6 | 


--------------------------------------------------------------------------------
/src/packages/utils/useExpose/index.ts:
--------------------------------------------------------------------------------
1 | import { getCurrentInstance, ComponentPublicInstance } from 'vue'
2 | 
3 | export function useExpose(apis: Record<string, any>) {
4 |   const instance = getCurrentInstance()
5 |   if (instance) {
6 |     Object.assign(instance.proxy as ComponentPublicInstance, apis)
7 |   }
8 | }
9 | 


--------------------------------------------------------------------------------
/src/packages/utils/useRelation/index.ts:
--------------------------------------------------------------------------------
1 | export * from './useChildren'
2 | export * from './useParent'
3 | 


--------------------------------------------------------------------------------
/src/packages/utils/useRelation/useRelation.ts:
--------------------------------------------------------------------------------
1 | import { getCurrentInstance, ComponentPublicInstance } from 'vue'
2 | export function useExtend<T>(apis: T) {
3 |   const instance = getCurrentInstance()
4 |   if (instance) {
5 |     Object.assign(instance.proxy as ComponentPublicInstance, apis)
6 |   }
7 | }
8 | 


--------------------------------------------------------------------------------
/src/packages/utils/useRoute/index.ts:
--------------------------------------------------------------------------------
1 | import { getCurrentInstance } from 'vue'
2 | 
3 | export function useRouter() {
4 |   const proxy = getCurrentInstance()!.proxy as any
5 |   return proxy.$router || null
6 | }
7 | 


--------------------------------------------------------------------------------
/src/shims-vue.d.ts:
--------------------------------------------------------------------------------
 1 | /// <reference types="vite/client" />
 2 | declare module '*.vue' {
 3 |   import { defineComponent } from 'vue'
 4 |   const component: ReturnType<typeof defineComponent>
 5 |   export default component
 6 | }
 7 | 
 8 | declare module '*.md' {
 9 |   import type { ComponentOptions } from 'vue'
10 |   const Component: ComponentOptions
11 |   export default Component
12 | }
13 | 


--------------------------------------------------------------------------------
/src/sites/assets/images/bg-article.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jd-opensource/nutui/fe5c0128e415492fc7d24f8887b721fea5c61b48/src/sites/assets/images/bg-article.png


--------------------------------------------------------------------------------
/src/sites/assets/images/cat-back.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jd-opensource/nutui/fe5c0128e415492fc7d24f8887b721fea5c61b48/src/sites/assets/images/cat-back.png


--------------------------------------------------------------------------------
/src/sites/assets/images/cat-title.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jd-opensource/nutui/fe5c0128e415492fc7d24f8887b721fea5c61b48/src/sites/assets/images/cat-title.png


--------------------------------------------------------------------------------
/src/sites/assets/images/header-bg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jd-opensource/nutui/fe5c0128e415492fc7d24f8887b721fea5c61b48/src/sites/assets/images/header-bg.png


--------------------------------------------------------------------------------
/src/sites/assets/images/icon-color.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jd-opensource/nutui/fe5c0128e415492fc7d24f8887b721fea5c61b48/src/sites/assets/images/icon-color.png


--------------------------------------------------------------------------------
/src/sites/assets/images/icon-footer-vx.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jd-opensource/nutui/fe5c0128e415492fc7d24f8887b721fea5c61b48/src/sites/assets/images/icon-footer-vx.png


--------------------------------------------------------------------------------
/src/sites/assets/images/icon-gitee.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jd-opensource/nutui/fe5c0128e415492fc7d24f8887b721fea5c61b48/src/sites/assets/images/icon-gitee.png


--------------------------------------------------------------------------------
/src/sites/assets/images/icon-select-gray-down.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jd-opensource/nutui/fe5c0128e415492fc7d24f8887b721fea5c61b48/src/sites/assets/images/icon-select-gray-down.png


--------------------------------------------------------------------------------
/src/sites/assets/images/icon-select-gray-up.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jd-opensource/nutui/fe5c0128e415492fc7d24f8887b721fea5c61b48/src/sites/assets/images/icon-select-gray-up.png


--------------------------------------------------------------------------------
/src/sites/assets/images/icon-select-white-down.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jd-opensource/nutui/fe5c0128e415492fc7d24f8887b721fea5c61b48/src/sites/assets/images/icon-select-white-down.png


--------------------------------------------------------------------------------
/src/sites/assets/images/icon-select-white-up.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jd-opensource/nutui/fe5c0128e415492fc7d24f8887b721fea5c61b48/src/sites/assets/images/icon-select-white-up.png


--------------------------------------------------------------------------------
/src/sites/assets/images/icon-title.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jd-opensource/nutui/fe5c0128e415492fc7d24f8887b721fea5c61b48/src/sites/assets/images/icon-title.png


--------------------------------------------------------------------------------
/src/sites/assets/images/icon-user.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jd-opensource/nutui/fe5c0128e415492fc7d24f8887b721fea5c61b48/src/sites/assets/images/icon-user.png


--------------------------------------------------------------------------------
/src/sites/assets/images/img-article.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jd-opensource/nutui/fe5c0128e415492fc7d24f8887b721fea5c61b48/src/sites/assets/images/img-article.jpg


--------------------------------------------------------------------------------
/src/sites/assets/images/img-home-features1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jd-opensource/nutui/fe5c0128e415492fc7d24f8887b721fea5c61b48/src/sites/assets/images/img-home-features1.png


--------------------------------------------------------------------------------
/src/sites/assets/images/img-home-features2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jd-opensource/nutui/fe5c0128e415492fc7d24f8887b721fea5c61b48/src/sites/assets/images/img-home-features2.png


--------------------------------------------------------------------------------
/src/sites/assets/images/img-home-features3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jd-opensource/nutui/fe5c0128e415492fc7d24f8887b721fea5c61b48/src/sites/assets/images/img-home-features3.png


--------------------------------------------------------------------------------
/src/sites/assets/images/img-home-features4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jd-opensource/nutui/fe5c0128e415492fc7d24f8887b721fea5c61b48/src/sites/assets/images/img-home-features4.png


--------------------------------------------------------------------------------
/src/sites/assets/images/img-home-features5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jd-opensource/nutui/fe5c0128e415492fc7d24f8887b721fea5c61b48/src/sites/assets/images/img-home-features5.png


--------------------------------------------------------------------------------
/src/sites/assets/images/img-joy.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jd-opensource/nutui/fe5c0128e415492fc7d24f8887b721fea5c61b48/src/sites/assets/images/img-joy.png


--------------------------------------------------------------------------------
/src/sites/assets/images/img-taro-left-white.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jd-opensource/nutui/fe5c0128e415492fc7d24f8887b721fea5c61b48/src/sites/assets/images/img-taro-left-white.png


--------------------------------------------------------------------------------
/src/sites/assets/images/img-taro-left.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jd-opensource/nutui/fe5c0128e415492fc7d24f8887b721fea5c61b48/src/sites/assets/images/img-taro-left.png


--------------------------------------------------------------------------------
/src/sites/assets/images/img-taro-right-white.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jd-opensource/nutui/fe5c0128e415492fc7d24f8887b721fea5c61b48/src/sites/assets/images/img-taro-right-white.png


--------------------------------------------------------------------------------
/src/sites/assets/images/img-taro-right.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jd-opensource/nutui/fe5c0128e415492fc7d24f8887b721fea5c61b48/src/sites/assets/images/img-taro-right.png


--------------------------------------------------------------------------------
/src/sites/assets/images/input-search.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jd-opensource/nutui/fe5c0128e415492fc7d24f8887b721fea5c61b48/src/sites/assets/images/input-search.png


--------------------------------------------------------------------------------
/src/sites/assets/images/iphone-cases.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jd-opensource/nutui/fe5c0128e415492fc7d24f8887b721fea5c61b48/src/sites/assets/images/iphone-cases.png


--------------------------------------------------------------------------------
/src/sites/assets/images/item-active.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jd-opensource/nutui/fe5c0128e415492fc7d24f8887b721fea5c61b48/src/sites/assets/images/item-active.png


--------------------------------------------------------------------------------
/src/sites/assets/images/item-rotate-active.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jd-opensource/nutui/fe5c0128e415492fc7d24f8887b721fea5c61b48/src/sites/assets/images/item-rotate-active.png


--------------------------------------------------------------------------------
/src/sites/assets/images/left-arrow.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jd-opensource/nutui/fe5c0128e415492fc7d24f8887b721fea5c61b48/src/sites/assets/images/left-arrow.png


--------------------------------------------------------------------------------
/src/sites/assets/images/logo-blue.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jd-opensource/nutui/fe5c0128e415492fc7d24f8887b721fea5c61b48/src/sites/assets/images/logo-blue.png


--------------------------------------------------------------------------------
/src/sites/assets/images/logo-header-red.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jd-opensource/nutui/fe5c0128e415492fc7d24f8887b721fea5c61b48/src/sites/assets/images/logo-header-red.png


--------------------------------------------------------------------------------
/src/sites/assets/images/logo-header-white.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jd-opensource/nutui/fe5c0128e415492fc7d24f8887b721fea5c61b48/src/sites/assets/images/logo-header-white.png


--------------------------------------------------------------------------------
/src/sites/assets/images/logo-red.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jd-opensource/nutui/fe5c0128e415492fc7d24f8887b721fea5c61b48/src/sites/assets/images/logo-red.png


--------------------------------------------------------------------------------
/src/sites/assets/images/marketing-back.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jd-opensource/nutui/fe5c0128e415492fc7d24f8887b721fea5c61b48/src/sites/assets/images/marketing-back.png


--------------------------------------------------------------------------------
/src/sites/assets/images/marketing-title.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jd-opensource/nutui/fe5c0128e415492fc7d24f8887b721fea5c61b48/src/sites/assets/images/marketing-title.png


--------------------------------------------------------------------------------
/src/sites/assets/images/order.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jd-opensource/nutui/fe5c0128e415492fc7d24f8887b721fea5c61b48/src/sites/assets/images/order.png


--------------------------------------------------------------------------------
/src/sites/assets/images/right-arrow.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jd-opensource/nutui/fe5c0128e415492fc7d24f8887b721fea5c61b48/src/sites/assets/images/right-arrow.png


--------------------------------------------------------------------------------
/src/sites/assets/images/vx-code.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jd-opensource/nutui/fe5c0128e415492fc7d24f8887b721fea5c61b48/src/sites/assets/images/vx-code.png


--------------------------------------------------------------------------------
/src/sites/assets/images/vx-code1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jd-opensource/nutui/fe5c0128e415492fc7d24f8887b721fea5c61b48/src/sites/assets/images/vx-code1.png


--------------------------------------------------------------------------------
/src/sites/doc/App.vue:
--------------------------------------------------------------------------------
 1 | <template>
 2 |   <router-view />
 3 | </template>
 4 | 
 5 | <style lang="scss">
 6 | ::selection {
 7 |   background: $doc-default-color;
 8 |   color: #fff;
 9 | }
10 | #doc {
11 |   background: #fff;
12 |   height: 100%;
13 |   width: 100%;
14 |   display: flex;
15 |   flex-direction: column;
16 | }
17 | </style>
18 | 


--------------------------------------------------------------------------------
/src/sites/doc/components/demo-block/index.ts:
--------------------------------------------------------------------------------
1 | import DemoBlock from './demoBlock.vue'
2 | import './demoBlock.scss'
3 | export default DemoBlock
4 | 


--------------------------------------------------------------------------------
/src/sites/doc/directive/hover/hover.ts:
--------------------------------------------------------------------------------
 1 | export const Hover = {
 2 |   mounted(el: HTMLElement) {
 3 |     // 绑定事件
 4 |     el.addEventListener('mouseover', () => {
 5 |       el.style.color = '#fa2c19'
 6 |     })
 7 |     el.addEventListener('mouseleave', () => {
 8 |       el.style.color = ''
 9 |     })
10 |   }
11 | }
12 | 


--------------------------------------------------------------------------------
/src/sites/doc/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jd-opensource/nutui/fe5c0128e415492fc7d24f8887b721fea5c61b48/src/sites/doc/favicon.ico


--------------------------------------------------------------------------------
/src/sites/mobile/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jd-opensource/nutui/fe5c0128e415492fc7d24f8887b721fea5c61b48/src/sites/mobile/favicon.ico


--------------------------------------------------------------------------------
/src/sites/mobile/main.ts:
--------------------------------------------------------------------------------
 1 | import { createApp } from 'vue'
 2 | import App from './App.vue'
 3 | import router from './router'
 4 | import NutUI from '@nutui/nutui'
 5 | import Demo from './components/demo.vue'
 6 | import '@nutui/touch-emulator'
 7 | 
 8 | const app = createApp(App)
 9 | app.use(router)
10 | app.use(NutUI)
11 | app.component('Demo', Demo)
12 | 
13 | app.mount('#app')
14 | 


--------------------------------------------------------------------------------
/src/sites/utils/index.ts:
--------------------------------------------------------------------------------
1 | export * from './useTranslate'
2 | 


--------------------------------------------------------------------------------
/tsconfig.h5.json:
--------------------------------------------------------------------------------
 1 | {
 2 |   "extends": "./tsconfig.json",
 3 |   "compilerOptions": {
 4 |     "declaration": true,
 5 |     "declarationDir": "./tsc/type",
 6 |     "emitDeclarationOnly": true
 7 |   },
 8 |   "include": ["src/packages/index.build.ts", "src/packages/locale", "src/packages/utils", "src/packages/resolver"],
 9 |   "exclude": ["node_modules"]
10 | }
11 | 


--------------------------------------------------------------------------------
/tsconfig.taro.json:
--------------------------------------------------------------------------------
 1 | {
 2 |   "extends": "./tsconfig.json",
 3 |   "compilerOptions": {
 4 |     "declaration": true,
 5 |     "declarationDir": "./tsc/type",
 6 |     "emitDeclarationOnly": true
 7 |   },
 8 |   "include": ["src/packages/taro.build.ts", "src/packages/locale", "src/packages/utils", "src/packages/resolver"],
 9 |   "exclude": ["node_modules"]
10 | }
11 | 


--------------------------------------------------------------------------------