Full Code of tusen-ai/naive-ui for AI

main dbb66f5ca4cc cached
3559 files
7.2 MB
2.1M tokens
2402 symbols
1 requests
Download .txt
Showing preview only (8,182K chars total). Download the full file or copy to clipboard to get everything.
Repository: tusen-ai/naive-ui
Branch: main
Commit: dbb66f5ca4cc
Files: 3559
Total size: 7.2 MB

Directory structure:
gitextract_o125x3e3/

├── .github/
│   ├── FUNDING.yml
│   ├── ISSUE_TEMPLATE/
│   │   ├── bug_report.yml
│   │   ├── bug_report.zh-CN.yml
│   │   ├── config.yml
│   │   ├── feature_request.yml
│   │   └── feature_request.zh-CN.yml
│   ├── dependabot.yml
│   ├── pull_request_template.md
│   └── workflows/
│       ├── node.js.yml
│       └── publish-to-pkg.pr.new.yml
├── .gitignore
├── .husky/
│   └── pre-commit
├── .npmrc
├── .nvmrc
├── .pnpmfile.cjs
├── .prettierignore
├── .prettierrc
├── CHANGELOG.en-US.md
├── CHANGELOG.zh-CN.md
├── CONTRIBUTING.md
├── CONTRIBUTING.zh-CN.md
├── LICENSE
├── README.md
├── README.zh-CN.md
├── babel.config.js
├── build/
│   ├── loaders/
│   │   ├── ComponentDemoTemplate.vue
│   │   ├── convert-md-to-doc.ts
│   │   ├── convert-vue-to-demo.ts
│   │   ├── md-renderer.ts
│   │   ├── naive-ui-demo-loader.ts
│   │   ├── naive-ui-doc-loader.ts
│   │   ├── project-path.ts
│   │   └── test/
│   │       ├── basic.test.md
│   │       ├── component.test.md
│   │       ├── test.md
│   │       ├── testDemoLoader.js
│   │       └── testMdLoader.js
│   ├── utils/
│   │   ├── get-demo-by-path.ts
│   │   ├── handle-merge-code.ts
│   │   ├── terse-cssr.ts
│   │   └── tsToJs.ts
│   ├── vite-plugin-css-render.ts
│   ├── vite-plugin-demo.ts
│   └── vite-plugin-index-tranform.ts
├── demo/
│   ├── Caveat.md
│   ├── Site.vue
│   ├── SiteHeader.vue
│   ├── SiteRoot.vue
│   ├── index.dev.js
│   ├── index.prod.js
│   ├── pages/
│   │   ├── Layout.vue
│   │   ├── docs/
│   │   │   ├── changelog/
│   │   │   │   ├── enUS/
│   │   │   │   │   └── index.vue
│   │   │   │   └── zhCN/
│   │   │   │       └── index.vue
│   │   │   ├── common-issues/
│   │   │   │   ├── enUS/
│   │   │   │   │   └── index.md
│   │   │   │   └── zhCN/
│   │   │   │       └── index.md
│   │   │   ├── community/
│   │   │   │   ├── enUS/
│   │   │   │   │   └── index.md
│   │   │   │   └── zhCN/
│   │   │   │       └── index.md
│   │   │   ├── controlled-uncontrolled/
│   │   │   │   ├── enUS/
│   │   │   │   │   └── index.md
│   │   │   │   └── zhCN/
│   │   │   │       └── index.md
│   │   │   ├── customize-theme/
│   │   │   │   ├── enUS/
│   │   │   │   │   └── index.md
│   │   │   │   └── zhCN/
│   │   │   │       └── index.md
│   │   │   ├── experimental-features/
│   │   │   │   ├── enUS/
│   │   │   │   │   └── index.md
│   │   │   │   └── zhCN/
│   │   │   │       └── index.md
│   │   │   ├── fonts/
│   │   │   │   ├── enUS/
│   │   │   │   │   └── index.md
│   │   │   │   └── zhCN/
│   │   │   │       └── index.md
│   │   │   ├── i18n/
│   │   │   │   ├── enUS/
│   │   │   │   │   └── index.md
│   │   │   │   └── zhCN/
│   │   │   │       └── index.md
│   │   │   ├── import-on-demand/
│   │   │   │   ├── enUS/
│   │   │   │   │   └── index.md
│   │   │   │   └── zhCN/
│   │   │   │       └── index.md
│   │   │   ├── installation/
│   │   │   │   ├── enUS/
│   │   │   │   │   └── index.md
│   │   │   │   └── zhCN/
│   │   │   │       └── index.md
│   │   │   ├── introduction/
│   │   │   │   ├── enUS/
│   │   │   │   │   └── index.md
│   │   │   │   └── zhCN/
│   │   │   │       └── index.md
│   │   │   ├── jsx/
│   │   │   │   ├── enUS/
│   │   │   │   │   └── index.md
│   │   │   │   └── zhCN/
│   │   │   │       └── index.md
│   │   │   ├── nuxtjs/
│   │   │   │   ├── enUS/
│   │   │   │   │   └── index.md
│   │   │   │   └── zhCN/
│   │   │   │       └── index.md
│   │   │   ├── ssr/
│   │   │   │   ├── enUS/
│   │   │   │   │   └── index.md
│   │   │   │   └── zhCN/
│   │   │   │       └── index.md
│   │   │   ├── style-conflict/
│   │   │   │   ├── enUS/
│   │   │   │   │   └── index.md
│   │   │   │   └── zhCN/
│   │   │   │       └── index.md
│   │   │   ├── supported-platforms/
│   │   │   │   ├── enUS/
│   │   │   │   │   └── index.md
│   │   │   │   └── zhCN/
│   │   │   │       └── index.md
│   │   │   ├── theme/
│   │   │   │   ├── enUS/
│   │   │   │   │   ├── element.demo.vue
│   │   │   │   │   ├── index.demo-entry.md
│   │   │   │   │   ├── provide-theme.demo.vue
│   │   │   │   │   └── use-theme-vars.demo.vue
│   │   │   │   └── zhCN/
│   │   │   │       ├── element.demo.vue
│   │   │   │       ├── index.demo-entry.md
│   │   │   │       ├── provide-theme.demo.vue
│   │   │   │       └── use-theme-vars.demo.vue
│   │   │   ├── umd/
│   │   │   │   ├── enUS/
│   │   │   │   │   └── index.md
│   │   │   │   └── zhCN/
│   │   │   │       └── index.md
│   │   │   ├── usage-sfc/
│   │   │   │   ├── enUS/
│   │   │   │   │   └── index.md
│   │   │   │   └── zhCN/
│   │   │   │       └── index.md
│   │   │   ├── vite-ssge/
│   │   │   │   ├── enUS/
│   │   │   │   │   └── index.md
│   │   │   │   └── zhCN/
│   │   │   │       └── index.md
│   │   │   ├── vitepress/
│   │   │   │   ├── enUS/
│   │   │   │   │   └── index.md
│   │   │   │   └── zhCN/
│   │   │   │       └── index.md
│   │   │   └── vue3/
│   │   │       ├── enUS/
│   │   │       │   └── index.vue
│   │   │       └── zhCN/
│   │   │           └── index.vue
│   │   └── home/
│   │       ├── Footer.vue
│   │       ├── Left.vue
│   │       ├── Right.vue
│   │       └── index.vue
│   ├── routes/
│   │   ├── router.js
│   │   └── routes.js
│   ├── setup.js
│   ├── store/
│   │   ├── hljs.js
│   │   ├── index.js
│   │   └── menu-options.js
│   ├── styles/
│   │   ├── Metropolis.css
│   │   └── demo.css
│   └── utils/
│       ├── ComponentDemo.vue
│       ├── ComponentDemos.tsx
│       ├── CopyCodeButton.vue
│       ├── EditInCodeSandboxButton.vue
│       ├── EditInPlaygroundButton.vue
│       ├── EditOnGithubButton.vue
│       ├── EditOnGithubHeader.vue
│       ├── codesandbox.js
│       ├── composables.js
│       ├── composables.ts
│       ├── github-url.js
│       ├── playground.js
│       └── route.js
├── design-notes/
│   ├── design-token-status.md
│   ├── how-to-name-a-style-var.md
│   ├── maintaining.md
│   ├── think.md
│   └── todo.md
├── eslint.config.mjs
├── esm-test/
│   └── index.spec.js
├── generic/
│   ├── AvatarGroup.vue
│   └── index.ts
├── index.html
├── package.json
├── playground/
│   ├── collect-vars.js
│   ├── ssr/
│   │   ├── app.js
│   │   ├── build.sh
│   │   ├── client.js
│   │   ├── pre-build.sh
│   │   ├── readme.md
│   │   ├── server.js
│   │   └── webpack.config.server.js
│   ├── testAsyncValidator.js
│   ├── testColor.js
│   └── uploadServer.js
├── postcss.config.js
├── rollup.config.mjs
├── scripts/
│   ├── gen-component-declaration.ts
│   ├── gen-css-vars-dts.ts
│   ├── gen-version.ts
│   ├── md-to-vue.ts
│   ├── post-build/
│   │   ├── complete-path.ts
│   │   ├── gen-web-types.ts
│   │   ├── index.ts
│   │   └── terse-cssr.ts
│   ├── post-build-site/
│   │   └── post-build-site.sh
│   ├── pre-build/
│   │   └── pre-cjs-build.ts
│   ├── pre-build-site/
│   │   └── pre-build-site.sh
│   ├── release-changelog.ts
│   └── utils/
│       ├── collect-vars.ts
│       ├── index.ts
│       ├── loader.ts
│       └── replace-define.ts
├── src/
│   ├── _internal/
│   │   ├── README.md
│   │   ├── clear/
│   │   │   ├── index.ts
│   │   │   └── src/
│   │   │       ├── Clear.tsx
│   │   │       └── styles/
│   │   │           └── index.cssr.ts
│   │   ├── close/
│   │   │   ├── index.ts
│   │   │   └── src/
│   │   │       ├── Close.tsx
│   │   │       └── styles/
│   │   │           └── index.cssr.ts
│   │   ├── fade-in-expand-transition/
│   │   │   ├── index.ts
│   │   │   └── src/
│   │   │       └── FadeInExpandTransition.ts
│   │   ├── focus-detector/
│   │   │   ├── index.tsx
│   │   │   └── src/
│   │   │       └── FocusDetector.tsx
│   │   ├── icon/
│   │   │   ├── index.ts
│   │   │   └── src/
│   │   │       ├── Icon.tsx
│   │   │       └── styles/
│   │   │           └── index.cssr.ts
│   │   ├── icon-switch-transition/
│   │   │   ├── index.ts
│   │   │   └── src/
│   │   │       └── IconSwitchTransition.tsx
│   │   ├── icons/
│   │   │   ├── Add.tsx
│   │   │   ├── ArrowBack.tsx
│   │   │   ├── ArrowDown.tsx
│   │   │   ├── ArrowUp.tsx
│   │   │   ├── Attach.tsx
│   │   │   ├── Backward.tsx
│   │   │   ├── Cancel.tsx
│   │   │   ├── Checkmark.tsx
│   │   │   ├── ChevronDown.tsx
│   │   │   ├── ChevronDownFilled.tsx
│   │   │   ├── ChevronLeft.tsx
│   │   │   ├── ChevronRight.tsx
│   │   │   ├── Clear.tsx
│   │   │   ├── Close.tsx
│   │   │   ├── Date.tsx
│   │   │   ├── Download.tsx
│   │   │   ├── Empty.tsx
│   │   │   ├── Error.tsx
│   │   │   ├── Eye.tsx
│   │   │   ├── EyeOff.tsx
│   │   │   ├── FastBackward.tsx
│   │   │   ├── FastForward.tsx
│   │   │   ├── File.tsx
│   │   │   ├── Filter.tsx
│   │   │   ├── Forward.tsx
│   │   │   ├── Info.tsx
│   │   │   ├── More.tsx
│   │   │   ├── Photo.tsx
│   │   │   ├── Remove.tsx
│   │   │   ├── ResizeSmall.tsx
│   │   │   ├── Retry.tsx
│   │   │   ├── RotateClockwise.tsx
│   │   │   ├── RotateCounterclockwise.tsx
│   │   │   ├── Search.tsx
│   │   │   ├── Success.tsx
│   │   │   ├── Switcher.tsx
│   │   │   ├── Time.tsx
│   │   │   ├── To.tsx
│   │   │   ├── Trash.tsx
│   │   │   ├── Warning.tsx
│   │   │   ├── ZoomIn.tsx
│   │   │   ├── ZoomOut.tsx
│   │   │   ├── index.ts
│   │   │   └── replaceable.tsx
│   │   ├── index.ts
│   │   ├── loading/
│   │   │   ├── index.ts
│   │   │   └── src/
│   │   │       ├── Loading.tsx
│   │   │       └── styles/
│   │   │           └── index.cssr.ts
│   │   ├── menu-mask/
│   │   │   ├── index.ts
│   │   │   └── src/
│   │   │       ├── MenuMask.tsx
│   │   │       ├── interface.ts
│   │   │       └── styles/
│   │   │           └── index.cssr.ts
│   │   ├── scrollbar/
│   │   │   ├── index.ts
│   │   │   ├── src/
│   │   │   │   ├── Scrollbar.tsx
│   │   │   │   └── styles/
│   │   │   │       ├── index.cssr.ts
│   │   │   │       └── rtl.cssr.ts
│   │   │   ├── styles/
│   │   │   │   ├── common.ts
│   │   │   │   ├── dark.ts
│   │   │   │   ├── index.ts
│   │   │   │   ├── light.ts
│   │   │   │   └── rtl.ts
│   │   │   └── tests/
│   │   │       ├── Scrollbar.spec.ts
│   │   │       └── server.spec.tsx
│   │   ├── select-menu/
│   │   │   ├── index.ts
│   │   │   ├── src/
│   │   │   │   ├── SelectGroupHeader.tsx
│   │   │   │   ├── SelectMenu.tsx
│   │   │   │   ├── SelectOption.tsx
│   │   │   │   ├── interface.ts
│   │   │   │   └── styles/
│   │   │   │       ├── index.cssr.ts
│   │   │   │       └── rtl.cssr.ts
│   │   │   └── styles/
│   │   │       ├── _common.ts
│   │   │       ├── dark.ts
│   │   │       ├── index.ts
│   │   │       ├── light.ts
│   │   │       └── rtl.ts
│   │   ├── selection/
│   │   │   ├── index.ts
│   │   │   ├── src/
│   │   │   │   ├── Selection.tsx
│   │   │   │   ├── interface.ts
│   │   │   │   └── styles/
│   │   │   │       ├── index.cssr.ts
│   │   │   │       └── rtl.cssr.ts
│   │   │   └── styles/
│   │   │       ├── _common.ts
│   │   │       ├── dark.ts
│   │   │       ├── index.ts
│   │   │       ├── light.ts
│   │   │       └── rtl.ts
│   │   ├── slot-machine/
│   │   │   ├── index.ts
│   │   │   └── src/
│   │   │       ├── SlotMachine.tsx
│   │   │       ├── SlotMachineNumber.tsx
│   │   │       └── styles/
│   │   │           └── index.cssr.ts
│   │   ├── suffix/
│   │   │   ├── index.ts
│   │   │   └── src/
│   │   │       └── Suffix.tsx
│   │   └── wave/
│   │       ├── index.ts
│   │       └── src/
│   │           ├── Wave.tsx
│   │           └── styles/
│   │               └── index.cssr.ts
│   ├── _mixins/
│   │   ├── common.ts
│   │   ├── index.ts
│   │   ├── use-config.ts
│   │   ├── use-css-vars-class.ts
│   │   ├── use-form-item.ts
│   │   ├── use-hljs.ts
│   │   ├── use-locale.ts
│   │   ├── use-rtl.ts
│   │   ├── use-style.ts
│   │   └── use-theme.ts
│   ├── _styles/
│   │   ├── common/
│   │   │   ├── _common.ts
│   │   │   ├── dark.ts
│   │   │   ├── index.ts
│   │   │   └── light.ts
│   │   ├── global/
│   │   │   └── index.cssr.ts
│   │   └── transitions/
│   │       ├── fade-down.cssr.ts
│   │       ├── fade-in-height-expand.cssr.ts
│   │       ├── fade-in-scale-up.cssr.ts
│   │       ├── fade-in-width-expand.cssr.ts
│   │       ├── fade-in.cssr.ts
│   │       ├── fade-up-width-expand.cssr.ts
│   │       ├── icon-switch.cssr.ts
│   │       ├── slide-in-from-bottom.ts
│   │       ├── slide-in-from-left.ts
│   │       ├── slide-in-from-right.ts
│   │       └── slide-in-from-top.ts
│   ├── _utils/
│   │   ├── color/
│   │   │   └── index.ts
│   │   ├── composable/
│   │   │   ├── index.ts
│   │   │   ├── use-adjusted-to.ts
│   │   │   ├── use-browser-location.ts
│   │   │   ├── use-collection.ts
│   │   │   ├── use-deferred-true.ts
│   │   │   ├── use-houdini.ts
│   │   │   ├── use-is-composing.ts
│   │   │   ├── use-lock-html-scroll.ts
│   │   │   ├── use-reactivated.ts
│   │   │   └── use-resize.ts
│   │   ├── css/
│   │   │   ├── color-to-class.ts
│   │   │   ├── format-length.ts
│   │   │   ├── index.ts
│   │   │   └── rtl-inset.ts
│   │   ├── cssr/
│   │   │   └── index.ts
│   │   ├── dom/
│   │   │   ├── download.ts
│   │   │   ├── index.ts
│   │   │   └── is-document.ts
│   │   ├── env/
│   │   │   ├── browser.ts
│   │   │   ├── is-browser.ts
│   │   │   ├── is-jsdom.ts
│   │   │   └── is-native-lazy-load.ts
│   │   ├── event/
│   │   │   └── index.ts
│   │   ├── index.ts
│   │   ├── naive/
│   │   │   ├── attribute.ts
│   │   │   ├── extract-public-props.ts
│   │   │   ├── index.ts
│   │   │   ├── mutable.ts
│   │   │   ├── prop.ts
│   │   │   ├── value.ts
│   │   │   └── warn.ts
│   │   ├── tests/
│   │   │   └── index.spec.ts
│   │   ├── ts/
│   │   │   └── ts.ts
│   │   └── vue/
│   │       ├── call.ts
│   │       ├── create-data-key.ts
│   │       ├── create-injection-key.ts
│   │       ├── create-ref-setter.ts
│   │       ├── flatten.ts
│   │       ├── get-first-slot-vnode.ts
│   │       ├── get-slot.ts
│   │       ├── get-v-node-children.ts
│   │       ├── index.ts
│   │       ├── is-node-v-show-false.ts
│   │       ├── keep.ts
│   │       ├── keysOf.ts
│   │       ├── merge-handlers.ts
│   │       ├── omit.ts
│   │       ├── render.ts
│   │       ├── resolve-slot.ts
│   │       └── wrapper.tsx
│   ├── affix/
│   │   ├── demos/
│   │   │   ├── enUS/
│   │   │   │   ├── basic.demo.vue
│   │   │   │   ├── index.demo-entry.md
│   │   │   │   └── position.demo.vue
│   │   │   └── zhCN/
│   │   │       ├── basic.demo.vue
│   │   │       ├── index.demo-entry.md
│   │   │       └── position.demo.vue
│   │   ├── index.ts
│   │   ├── src/
│   │   │   ├── Affix.tsx
│   │   │   ├── styles/
│   │   │   │   └── index.cssr.ts
│   │   │   └── utils.ts
│   │   └── tests/
│   │       ├── Affix.spec.ts
│   │       └── server.spec.tsx
│   ├── alert/
│   │   ├── demos/
│   │   │   ├── enUS/
│   │   │   │   ├── basic.demo.vue
│   │   │   │   ├── bordered.demo.vue
│   │   │   │   ├── closable.demo.vue
│   │   │   │   ├── icon.demo.vue
│   │   │   │   ├── index.demo-entry.md
│   │   │   │   ├── marquee.demo.vue
│   │   │   │   └── no-icon.demo.vue
│   │   │   └── zhCN/
│   │   │       ├── basic.demo.vue
│   │   │       ├── bordered.demo.vue
│   │   │       ├── closable.demo.vue
│   │   │       ├── empty-debug.demo.vue
│   │   │       ├── icon.demo.vue
│   │   │       ├── index.demo-entry.md
│   │   │       ├── marquee.demo.vue
│   │   │       ├── no-icon.demo.vue
│   │   │       └── rtl-debug.demo.vue
│   │   ├── index.ts
│   │   ├── src/
│   │   │   ├── Alert.tsx
│   │   │   └── styles/
│   │   │       ├── index.cssr.ts
│   │   │       └── rtl.cssr.ts
│   │   ├── styles/
│   │   │   ├── _common.ts
│   │   │   ├── dark.ts
│   │   │   ├── index.ts
│   │   │   ├── light.ts
│   │   │   └── rtl.ts
│   │   └── tests/
│   │       ├── Alert.spec.ts
│   │       ├── __snapshots__/
│   │       │   └── Alert.spec.ts.snap
│   │       └── server.spec.tsx
│   ├── anchor/
│   │   ├── demos/
│   │   │   ├── enUS/
│   │   │   │   ├── affix.demo.vue
│   │   │   │   ├── basic.demo.vue
│   │   │   │   ├── ignore-gap.demo.vue
│   │   │   │   ├── index.demo-entry.md
│   │   │   │   └── scrollto.demo.vue
│   │   │   └── zhCN/
│   │   │       ├── affix.demo.vue
│   │   │       ├── basic.demo.vue
│   │   │       ├── ignore-gap.demo.vue
│   │   │       ├── index.demo-entry.md
│   │   │       ├── max-height-debug.demo.vue
│   │   │       └── scrollto.demo.vue
│   │   ├── index.ts
│   │   ├── src/
│   │   │   ├── AnchorAdapter.tsx
│   │   │   ├── BaseAnchor.tsx
│   │   │   ├── Link.tsx
│   │   │   ├── public-types.tsx
│   │   │   ├── styles/
│   │   │   │   └── index.cssr.ts
│   │   │   └── utils.ts
│   │   ├── styles/
│   │   │   ├── _common.ts
│   │   │   ├── dark.ts
│   │   │   ├── index.ts
│   │   │   └── light.ts
│   │   └── tests/
│   │       ├── Anchor.spec.ts
│   │       └── server.spec.tsx
│   ├── auto-complete/
│   │   ├── demos/
│   │   │   ├── enUS/
│   │   │   │   ├── after-select.demo.vue
│   │   │   │   ├── append.demo.vue
│   │   │   │   ├── basic.demo.vue
│   │   │   │   ├── custom-input.demo.vue
│   │   │   │   ├── customized-rendering.demo.vue
│   │   │   │   ├── group.demo.vue
│   │   │   │   ├── index.demo-entry.md
│   │   │   │   ├── show-options-by-value.demo.vue
│   │   │   │   ├── size.demo.vue
│   │   │   │   └── status.demo.vue
│   │   │   └── zhCN/
│   │   │       ├── after-select.demo.vue
│   │   │       ├── append.demo.vue
│   │   │       ├── basic.demo.vue
│   │   │       ├── custom-input.demo.vue
│   │   │       ├── customized-rendering.demo.vue
│   │   │       ├── group.demo.vue
│   │   │       ├── index.demo-entry.md
│   │   │       ├── show-options-by-value.demo.vue
│   │   │       ├── size.demo.vue
│   │   │       └── status.demo.vue
│   │   ├── index.ts
│   │   ├── src/
│   │   │   ├── AutoComplete.tsx
│   │   │   ├── interface.ts
│   │   │   ├── public-types.ts
│   │   │   ├── styles/
│   │   │   │   └── index.cssr.ts
│   │   │   └── utils.ts
│   │   ├── styles/
│   │   │   ├── dark.ts
│   │   │   ├── index.ts
│   │   │   └── light.ts
│   │   └── tests/
│   │       ├── AutoComplete.spec.ts
│   │       ├── __snapshots__/
│   │       │   └── AutoComplete.spec.ts.snap
│   │       └── server.spec.tsx
│   ├── avatar/
│   │   ├── demos/
│   │   │   ├── enUS/
│   │   │   │   ├── badge.demo.vue
│   │   │   │   ├── color.demo.vue
│   │   │   │   ├── fallback.demo.vue
│   │   │   │   ├── group.demo.vue
│   │   │   │   ├── icon.demo.vue
│   │   │   │   ├── index.demo-entry.md
│   │   │   │   ├── lazy.demo.vue
│   │   │   │   ├── name-size.demo.vue
│   │   │   │   ├── shape.demo.vue
│   │   │   │   ├── size.demo.vue
│   │   │   │   └── v-show-debug.demo.vue
│   │   │   └── zhCN/
│   │   │       ├── badge.demo.vue
│   │   │       ├── color.demo.vue
│   │   │       ├── error-placeholder-debug.demo.vue
│   │   │       ├── fallback.demo.vue
│   │   │       ├── group.demo.vue
│   │   │       ├── icon.demo.vue
│   │   │       ├── index.demo-entry.md
│   │   │       ├── lazy.demo.vue
│   │   │       ├── name-size.demo.vue
│   │   │       ├── rtl-debug.demo.vue
│   │   │       ├── shape.demo.vue
│   │   │       ├── size.demo.vue
│   │   │       └── v-show-debug.demo.vue
│   │   ├── index.ts
│   │   ├── src/
│   │   │   ├── Avatar.tsx
│   │   │   ├── context.ts
│   │   │   ├── interface.ts
│   │   │   └── styles/
│   │   │       └── index.cssr.ts
│   │   ├── styles/
│   │   │   ├── dark.ts
│   │   │   ├── index.ts
│   │   │   └── light.ts
│   │   └── tests/
│   │       ├── Avatar.spec.tsx
│   │       ├── __snapshots__/
│   │       │   └── Avatar.spec.tsx.snap
│   │       └── server.spec.tsx
│   ├── avatar-group/
│   │   ├── index.ts
│   │   ├── src/
│   │   │   ├── AvatarGroup.tsx
│   │   │   ├── generic-public-types.ts
│   │   │   ├── public-types.ts
│   │   │   └── styles/
│   │   │       ├── avatar-group-rtl.cssr.ts
│   │   │       └── avatar-group.cssr.ts
│   │   ├── styles/
│   │   │   ├── dark.ts
│   │   │   ├── index.ts
│   │   │   ├── light.ts
│   │   │   └── rtl.ts
│   │   └── tests/
│   │       ├── Avatar.spec.tsx
│   │       └── server.spec.tsx
│   ├── back-top/
│   │   ├── demos/
│   │   │   ├── enUS/
│   │   │   │   ├── basic.demo.vue
│   │   │   │   ├── change-position.demo.vue
│   │   │   │   ├── index.demo-entry.md
│   │   │   │   ├── target-container-selector.demo.vue
│   │   │   │   └── visibility-height.demo.vue
│   │   │   └── zhCN/
│   │   │       ├── basic.demo.vue
│   │   │       ├── change-position.demo.vue
│   │   │       ├── index.demo-entry.md
│   │   │       ├── target-container-selector.demo.vue
│   │   │       └── visibility-height.demo.vue
│   │   ├── index.ts
│   │   ├── src/
│   │   │   ├── BackTop.tsx
│   │   │   ├── BackTopIcon.tsx
│   │   │   └── styles/
│   │   │       └── index.cssr.ts
│   │   ├── styles/
│   │   │   ├── _common.ts
│   │   │   ├── dark.ts
│   │   │   ├── index.ts
│   │   │   └── light.ts
│   │   └── tests/
│   │       ├── BackTop.spec.ts
│   │       └── server.spec.tsx
│   ├── badge/
│   │   ├── demos/
│   │   │   ├── enUS/
│   │   │   │   ├── basic.demo.vue
│   │   │   │   ├── color.demo.vue
│   │   │   │   ├── custom-content.demo.vue
│   │   │   │   ├── index.demo-entry.md
│   │   │   │   ├── manual.demo.vue
│   │   │   │   ├── offset.demo.vue
│   │   │   │   ├── overflow.demo.vue
│   │   │   │   ├── processing.demo.vue
│   │   │   │   ├── raw.demo.vue
│   │   │   │   ├── show-zero.demo.vue
│   │   │   │   └── type.demo.vue
│   │   │   └── zhCN/
│   │   │       ├── basic.demo.vue
│   │   │       ├── color.demo.vue
│   │   │       ├── custom-content.demo.vue
│   │   │       ├── index.demo-entry.md
│   │   │       ├── manual.demo.vue
│   │   │       ├── offset.demo.vue
│   │   │       ├── overflow.demo.vue
│   │   │       ├── processing.demo.vue
│   │   │       ├── raw.demo.vue
│   │   │       ├── rtl-debug.demo.vue
│   │   │       ├── show-zero.demo.vue
│   │   │       └── type.demo.vue
│   │   ├── index.ts
│   │   ├── src/
│   │   │   ├── Badge.tsx
│   │   │   └── styles/
│   │   │       ├── index.cssr.ts
│   │   │       └── rtl.cssr.ts
│   │   ├── styles/
│   │   │   ├── dark.ts
│   │   │   ├── index.ts
│   │   │   ├── light.ts
│   │   │   └── rtl.ts
│   │   └── tests/
│   │       ├── Badge.spec.ts
│   │       └── server.spec.tsx
│   ├── breadcrumb/
│   │   ├── demos/
│   │   │   ├── enUS/
│   │   │   │   ├── basic.demo.vue
│   │   │   │   ├── custom.demo.vue
│   │   │   │   ├── index.demo-entry.md
│   │   │   │   ├── separator-per-item.demo.vue
│   │   │   │   └── separator.demo.vue
│   │   │   └── zhCN/
│   │   │       ├── basic.demo.vue
│   │   │       ├── custom.demo.vue
│   │   │       ├── index.demo-entry.md
│   │   │       ├── separator-per-item.demo.vue
│   │   │       └── separator.demo.vue
│   │   ├── index.ts
│   │   ├── src/
│   │   │   ├── Breadcrumb.tsx
│   │   │   ├── BreadcrumbItem.tsx
│   │   │   └── styles/
│   │   │       └── index.cssr.ts
│   │   ├── styles/
│   │   │   ├── _common.ts
│   │   │   ├── dark.ts
│   │   │   ├── index.ts
│   │   │   └── light.ts
│   │   └── tests/
│   │       ├── Breadcrumb.spec.ts
│   │       └── server.spec.tsx
│   ├── button/
│   │   ├── demos/
│   │   │   ├── enUS/
│   │   │   │   ├── basic.demo.vue
│   │   │   │   ├── color.demo.vue
│   │   │   │   ├── dashed.demo.vue
│   │   │   │   ├── disabled.demo.vue
│   │   │   │   ├── events.demo.vue
│   │   │   │   ├── ghost.demo.vue
│   │   │   │   ├── group.demo.vue
│   │   │   │   ├── icon-button.demo.vue
│   │   │   │   ├── icon.demo.vue
│   │   │   │   ├── index.demo-entry.md
│   │   │   │   ├── loading.demo.vue
│   │   │   │   ├── popover.demo.vue
│   │   │   │   ├── quaternary.demo.vue
│   │   │   │   ├── secondary.demo.vue
│   │   │   │   ├── shape.demo.vue
│   │   │   │   ├── size.demo.vue
│   │   │   │   ├── tag.demo.vue
│   │   │   │   ├── tertiary.demo.vue
│   │   │   │   └── text.demo.vue
│   │   │   └── zhCN/
│   │   │       ├── basic.demo.vue
│   │   │       ├── color.demo.vue
│   │   │       ├── dashed.demo.vue
│   │   │       ├── debug.demo.vue
│   │   │       ├── disabled.demo.vue
│   │   │       ├── events.demo.vue
│   │   │       ├── ghost.demo.vue
│   │   │       ├── group.demo.vue
│   │   │       ├── icon-button.demo.vue
│   │   │       ├── icon.demo.vue
│   │   │       ├── index.demo-entry.md
│   │   │       ├── loading.demo.vue
│   │   │       ├── popover.demo.vue
│   │   │       ├── quaternary.demo.vue
│   │   │       ├── rtl-debug.demo.vue
│   │   │       ├── secondary.demo.vue
│   │   │       ├── shape.demo.vue
│   │   │       ├── size.demo.vue
│   │   │       ├── tag.demo.vue
│   │   │       ├── tertiary.demo.vue
│   │   │       └── text.demo.vue
│   │   ├── index.ts
│   │   ├── src/
│   │   │   ├── Button.tsx
│   │   │   ├── public-types.ts
│   │   │   └── styles/
│   │   │       ├── index.cssr.ts
│   │   │       └── rtl.cssr.ts
│   │   ├── styles/
│   │   │   ├── _common.ts
│   │   │   ├── dark.ts
│   │   │   ├── index.ts
│   │   │   ├── light.ts
│   │   │   └── rtl.ts
│   │   └── tests/
│   │       ├── Button.spec.tsx
│   │       ├── __snapshots__/
│   │       │   └── Button.spec.tsx.snap
│   │       └── server.spec.tsx
│   ├── button-group/
│   │   ├── index.ts
│   │   ├── src/
│   │   │   ├── ButtonGroup.tsx
│   │   │   ├── context.ts
│   │   │   └── styles/
│   │   │       ├── index.cssr.ts
│   │   │       └── rtl.cssr.ts
│   │   ├── styles/
│   │   │   ├── dark.ts
│   │   │   ├── index.ts
│   │   │   ├── light.ts
│   │   │   └── rtl.ts
│   │   └── tests/
│   │       ├── ButtonGroup.spec.tsx
│   │       └── server.spec.tsx
│   ├── calendar/
│   │   ├── demos/
│   │   │   ├── enUS/
│   │   │   │   ├── basic.demo.vue
│   │   │   │   └── index.demo-entry.md
│   │   │   └── zhCN/
│   │   │       ├── basic.demo.vue
│   │   │       └── index.demo-entry.md
│   │   ├── index.ts
│   │   ├── src/
│   │   │   ├── Calendar.tsx
│   │   │   ├── interface.ts
│   │   │   └── styles/
│   │   │       └── index.cssr.ts
│   │   ├── styles/
│   │   │   ├── _common.ts
│   │   │   ├── dark.ts
│   │   │   ├── index.ts
│   │   │   └── light.ts
│   │   └── tests/
│   │       ├── Calendar.spec.tsx
│   │       └── server.spec.tsx
│   ├── card/
│   │   ├── demos/
│   │   │   ├── enUS/
│   │   │   │   ├── basic.demo.vue
│   │   │   │   ├── border.demo.vue
│   │   │   │   ├── closable.demo.vue
│   │   │   │   ├── content-scrollable.demo.vue
│   │   │   │   ├── cover.demo.vue
│   │   │   │   ├── custom-style.demo.vue
│   │   │   │   ├── embedded.demo.vue
│   │   │   │   ├── hoverable.demo.vue
│   │   │   │   ├── index.demo-entry.md
│   │   │   │   ├── loading.demo.vue
│   │   │   │   ├── no-title.demo.vue
│   │   │   │   ├── segment.demo.vue
│   │   │   │   ├── size.demo.vue
│   │   │   │   └── slots.demo.vue
│   │   │   └── zhCN/
│   │   │       ├── basic.demo.vue
│   │   │       ├── border.demo.vue
│   │   │       ├── closable.demo.vue
│   │   │       ├── content-scrollable.demo.vue
│   │   │       ├── cover.demo.vue
│   │   │       ├── custom-style.demo.vue
│   │   │       ├── embedded-debug.demo.vue
│   │   │       ├── embedded.demo.vue
│   │   │       ├── hoverable.demo.vue
│   │   │       ├── index.demo-entry.md
│   │   │       ├── loading.demo.vue
│   │   │       ├── no-title.demo.vue
│   │   │       ├── rtl-debug.demo.vue
│   │   │       ├── segment.demo.vue
│   │   │       ├── size.demo.vue
│   │   │       └── slots.demo.vue
│   │   ├── index.ts
│   │   ├── src/
│   │   │   ├── Card.tsx
│   │   │   ├── public-types.ts
│   │   │   └── styles/
│   │   │       ├── index.cssr.ts
│   │   │       └── rtl.cssr.ts
│   │   ├── styles/
│   │   │   ├── _common.ts
│   │   │   ├── dark.ts
│   │   │   ├── index.ts
│   │   │   ├── light.ts
│   │   │   └── rtl.ts
│   │   └── tests/
│   │       ├── Card.spec.ts
│   │       ├── __snapshots__/
│   │       │   └── Card.spec.ts.snap
│   │       └── server.spec.tsx
│   ├── carousel/
│   │   ├── demos/
│   │   │   ├── enUS/
│   │   │   │   ├── arrow.demo.vue
│   │   │   │   ├── autoplay.demo.vue
│   │   │   │   ├── basic.demo.vue
│   │   │   │   ├── centered.demo.vue
│   │   │   │   ├── custom-arrow-and-dots.demo.vue
│   │   │   │   ├── custom-card.demo.vue
│   │   │   │   ├── custom-dots.demo.vue
│   │   │   │   ├── dots.demo.vue
│   │   │   │   ├── effect.demo.vue
│   │   │   │   ├── hover.demo.vue
│   │   │   │   ├── index.demo-entry.md
│   │   │   │   ├── keyboard.demo.vue
│   │   │   │   ├── mousewheel.demo.vue
│   │   │   │   ├── simulate-drag.demo.vue
│   │   │   │   ├── slides-per-view-auto.demo.vue
│   │   │   │   ├── slides-per-view.demo.vue
│   │   │   │   ├── space-between.demo.vue
│   │   │   │   ├── transition-name.demo.vue
│   │   │   │   └── vertical.demo.vue
│   │   │   └── zhCN/
│   │   │       ├── arrow.demo.vue
│   │   │       ├── autoplay.demo.vue
│   │   │       ├── basic.demo.vue
│   │   │       ├── centered.demo.vue
│   │   │       ├── custom-arrow-and-dots.demo.vue
│   │   │       ├── custom-card.demo.vue
│   │   │       ├── custom-dots.demo.vue
│   │   │       ├── dots.demo.vue
│   │   │       ├── effect.demo.vue
│   │   │       ├── hover.demo.vue
│   │   │       ├── index.demo-entry.md
│   │   │       ├── keyboard.demo.vue
│   │   │       ├── mousewheel.demo.vue
│   │   │       ├── simulate-drag.demo.vue
│   │   │       ├── slides-per-view-auto.demo.vue
│   │   │       ├── slides-per-view.demo.vue
│   │   │       ├── space-between.demo.vue
│   │   │       ├── transition-name.demo.vue
│   │   │       └── vertical.demo.vue
│   │   ├── index.ts
│   │   ├── src/
│   │   │   ├── Carousel.tsx
│   │   │   ├── CarouselArrow.tsx
│   │   │   ├── CarouselContext.ts
│   │   │   ├── CarouselDots.tsx
│   │   │   ├── CarouselItem.tsx
│   │   │   ├── interface.ts
│   │   │   ├── styles/
│   │   │   │   └── index.cssr.ts
│   │   │   └── utils/
│   │   │       ├── duplicatedLogic.ts
│   │   │       ├── event.ts
│   │   │       └── index.ts
│   │   ├── styles/
│   │   │   ├── dark.ts
│   │   │   ├── index.ts
│   │   │   └── light.ts
│   │   └── tests/
│   │       ├── Carousel.spec.tsx
│   │       └── server.spec.tsx
│   ├── cascader/
│   │   ├── demos/
│   │   │   ├── enUS/
│   │   │   │   ├── action.demo.vue
│   │   │   │   ├── check-strategy.demo.vue
│   │   │   │   ├── custom-field.demo.vue
│   │   │   │   ├── custom-render.demo.vue
│   │   │   │   ├── focus.demo.vue
│   │   │   │   ├── index.demo-entry.md
│   │   │   │   ├── multiple-lazy.demo.vue
│   │   │   │   ├── multiple.demo.vue
│   │   │   │   ├── single-lazy.demo.vue
│   │   │   │   ├── single.demo.vue
│   │   │   │   ├── size.demo.vue
│   │   │   │   ├── status.demo.vue
│   │   │   │   └── virtual.demo.vue
│   │   │   └── zhCN/
│   │   │       ├── action.demo.vue
│   │   │       ├── check-strategy.demo.vue
│   │   │       ├── custom-field.demo.vue
│   │   │       ├── custom-render.demo.vue
│   │   │       ├── default-value-debug.demo.vue
│   │   │       ├── focus.demo.vue
│   │   │       ├── index.demo-entry.md
│   │   │       ├── multiple-lazy.demo.vue
│   │   │       ├── multiple.demo.vue
│   │   │       ├── single-lazy.demo.vue
│   │   │       ├── single.demo.vue
│   │   │       ├── size.demo.vue
│   │   │       ├── status.demo.vue
│   │   │       └── virtual.demo.vue
│   │   ├── index.ts
│   │   ├── src/
│   │   │   ├── Cascader.tsx
│   │   │   ├── CascaderMenu.tsx
│   │   │   ├── CascaderOption.tsx
│   │   │   ├── CascaderSelectMenu.tsx
│   │   │   ├── CascaderSubmenu.tsx
│   │   │   ├── interface.ts
│   │   │   ├── public-types.ts
│   │   │   ├── styles/
│   │   │   │   └── index.cssr.ts
│   │   │   └── utils.ts
│   │   ├── styles/
│   │   │   ├── dark.ts
│   │   │   ├── index.ts
│   │   │   └── light.ts
│   │   └── tests/
│   │       ├── Cascader.spec.ts
│   │       ├── __snapshots__/
│   │       │   └── Cascader.spec.ts.snap
│   │       └── server.spec.tsx
│   ├── checkbox/
│   │   ├── demos/
│   │   │   ├── enUS/
│   │   │   │   ├── basic.demo.vue
│   │   │   │   ├── controlled.demo.vue
│   │   │   │   ├── customize-value.demo.vue
│   │   │   │   ├── event.demo.vue
│   │   │   │   ├── focus.demo.vue
│   │   │   │   ├── grid.demo.vue
│   │   │   │   ├── group.demo.vue
│   │   │   │   ├── indeterminate.demo.vue
│   │   │   │   ├── index.demo-entry.md
│   │   │   │   └── size.demo.vue
│   │   │   └── zhCN/
│   │   │       ├── basic.demo.vue
│   │   │       ├── controlled.demo.vue
│   │   │       ├── customize-value.demo.vue
│   │   │       ├── event.demo.vue
│   │   │       ├── focus.demo.vue
│   │   │       ├── grid.demo.vue
│   │   │       ├── group.demo.vue
│   │   │       ├── indeterminate.demo.vue
│   │   │       ├── index.demo-entry.md
│   │   │       ├── rtl-debug.demo.vue
│   │   │       └── size.demo.vue
│   │   ├── index.ts
│   │   ├── src/
│   │   │   ├── CheckMark.tsx
│   │   │   ├── Checkbox.tsx
│   │   │   ├── CheckboxGroup.tsx
│   │   │   ├── LineMark.tsx
│   │   │   ├── interface.ts
│   │   │   ├── public-types.ts
│   │   │   └── styles/
│   │   │       ├── index.cssr.ts
│   │   │       └── rtl.cssr.ts
│   │   ├── styles/
│   │   │   ├── _common.ts
│   │   │   ├── dark.ts
│   │   │   ├── index.ts
│   │   │   ├── light.ts
│   │   │   └── rtl.ts
│   │   └── tests/
│   │       ├── Checkbox.spec.tsx
│   │       ├── __snapshots__/
│   │       │   └── Checkbox.spec.tsx.snap
│   │       └── server.spec.tsx
│   ├── code/
│   │   ├── demos/
│   │   │   ├── enUS/
│   │   │   │   ├── basic.demo.vue
│   │   │   │   ├── index.demo-entry.md
│   │   │   │   ├── inline.demo.vue
│   │   │   │   ├── line-numbers.demo.vue
│   │   │   │   └── softwrap.demo.vue
│   │   │   └── zhCN/
│   │   │       ├── basic.demo.vue
│   │   │       ├── index.demo-entry.md
│   │   │       ├── inline.demo.vue
│   │   │       ├── line-numbers.demo.vue
│   │   │       ├── loop-debug.demo.vue
│   │   │       └── softwrap.demo.vue
│   │   ├── index.ts
│   │   ├── src/
│   │   │   ├── Code.tsx
│   │   │   └── styles/
│   │   │       └── index.cssr.ts
│   │   ├── styles/
│   │   │   ├── dark.ts
│   │   │   ├── index.ts
│   │   │   └── light.ts
│   │   └── tests/
│   │       ├── Code.spec.tsx
│   │       └── server.spec.tsx
│   ├── collapse/
│   │   ├── demos/
│   │   │   ├── enUS/
│   │   │   │   ├── accordion.demo.vue
│   │   │   │   ├── arrow-placement.demo.vue
│   │   │   │   ├── basic.demo.vue
│   │   │   │   ├── customize-icon.demo.vue
│   │   │   │   ├── default-expanded.demo.vue
│   │   │   │   ├── disabled.demo.vue
│   │   │   │   ├── display-directive.demo.vue
│   │   │   │   ├── header-extra.demo.vue
│   │   │   │   ├── index.demo-entry.md
│   │   │   │   ├── item-header-click.demo.vue
│   │   │   │   ├── nested.demo.vue
│   │   │   │   └── trigger-areas.demo.vue
│   │   │   └── zhCN/
│   │   │       ├── accordion.demo.vue
│   │   │       ├── arrow-placement.demo.vue
│   │   │       ├── basic.demo.vue
│   │   │       ├── customize-icon.demo.vue
│   │   │       ├── default-expanded.demo.vue
│   │   │       ├── disabled.demo.vue
│   │   │       ├── display-directive.demo.vue
│   │   │       ├── header-extra.demo.vue
│   │   │       ├── index.demo-entry.md
│   │   │       ├── item-header-click.demo.vue
│   │   │       ├── nested.demo.vue
│   │   │       ├── rtl-debug.demo.vue
│   │   │       └── trigger-areas.demo.vue
│   │   ├── index.ts
│   │   ├── src/
│   │   │   ├── Collapse.tsx
│   │   │   ├── CollapseItem.tsx
│   │   │   ├── CollapseItemContent.tsx
│   │   │   ├── interface.ts
│   │   │   └── styles/
│   │   │       ├── index.cssr.ts
│   │   │       └── rtl.cssr.ts
│   │   ├── styles/
│   │   │   ├── dark.ts
│   │   │   ├── index.ts
│   │   │   ├── light.ts
│   │   │   └── rtl.ts
│   │   └── tests/
│   │       ├── Collapse.spec.tsx
│   │       └── server.spec.tsx
│   ├── collapse-transition/
│   │   ├── demos/
│   │   │   ├── enUS/
│   │   │   │   ├── basic.demo.vue
│   │   │   │   └── index.demo-entry.md
│   │   │   └── zhCN/
│   │   │       ├── basic.demo.vue
│   │   │       ├── index.demo-entry.md
│   │   │       └── rtl-debug.demo.vue
│   │   ├── index.ts
│   │   ├── src/
│   │   │   ├── CollapseTransition.tsx
│   │   │   └── styles/
│   │   │       ├── index.cssr.ts
│   │   │       └── rtl.cssr.ts
│   │   ├── styles/
│   │   │   ├── dark.ts
│   │   │   ├── index.ts
│   │   │   ├── light.ts
│   │   │   └── rtl.ts
│   │   └── tests/
│   │       ├── CollapseTransition.spec.tsx
│   │       └── server.spec.tsx
│   ├── color-picker/
│   │   ├── demos/
│   │   │   ├── enUS/
│   │   │   │   ├── actions.demo.vue
│   │   │   │   ├── alpha.demo.vue
│   │   │   │   ├── basic.demo.vue
│   │   │   │   ├── disabled.demo.vue
│   │   │   │   ├── form.demo.vue
│   │   │   │   ├── index.demo-entry.md
│   │   │   │   ├── modes.demo.vue
│   │   │   │   ├── native.demo.vue
│   │   │   │   ├── size.demo.vue
│   │   │   │   ├── swatches.demo.vue
│   │   │   │   └── trigger.demo.vue
│   │   │   └── zhCN/
│   │   │       ├── actions.demo.vue
│   │   │       ├── alpha.demo.vue
│   │   │       ├── basic.demo.vue
│   │   │       ├── close-debug.demo.vue
│   │   │       ├── disabled.demo.vue
│   │   │       ├── form.demo.vue
│   │   │       ├── index.demo-entry.md
│   │   │       ├── modes.demo.vue
│   │   │       ├── native.demo.vue
│   │   │       ├── size.demo.vue
│   │   │       ├── swatches.demo.vue
│   │   │       └── trigger.demo.vue
│   │   ├── index.ts
│   │   ├── src/
│   │   │   ├── AlphaSlider.tsx
│   │   │   ├── ColorInput.tsx
│   │   │   ├── ColorInputUnit.tsx
│   │   │   ├── ColorPicker.tsx
│   │   │   ├── ColorPickerSwatches.tsx
│   │   │   ├── ColorPickerTrigger.tsx
│   │   │   ├── ColorPreview.tsx
│   │   │   ├── HueSlider.tsx
│   │   │   ├── Pallete.tsx
│   │   │   ├── context.ts
│   │   │   ├── interface.ts
│   │   │   ├── public-types.ts
│   │   │   ├── styles/
│   │   │   │   └── index.cssr.ts
│   │   │   └── utils.ts
│   │   ├── styles/
│   │   │   ├── dark.ts
│   │   │   ├── index.ts
│   │   │   └── light.ts
│   │   └── tests/
│   │       ├── ColorPicker.spec.tsx
│   │       └── server.spec.tsx
│   ├── components.ts
│   ├── composables/
│   │   ├── index.ts
│   │   └── use-theme-vars.ts
│   ├── config-consumer/
│   │   └── demos/
│   │       ├── enUS/
│   │       │   └── index.demo-entry.md
│   │       └── zhCN/
│   │           └── index.demo-entry.md
│   ├── config-provider/
│   │   ├── demos/
│   │   │   ├── enUS/
│   │   │   │   ├── index.demo-entry.md
│   │   │   │   ├── inherit-theme.demo.vue
│   │   │   │   ├── inline-theme-disabled.demo.vue
│   │   │   │   ├── language.demo.vue
│   │   │   │   ├── namespace.demo.vue
│   │   │   │   ├── os-theme.demo.vue
│   │   │   │   ├── size.demo.vue
│   │   │   │   ├── theme.demo.vue
│   │   │   │   └── transparent.demo.vue
│   │   │   └── zhCN/
│   │   │       ├── index.demo-entry.md
│   │   │       ├── inherit-theme.demo.vue
│   │   │       ├── inline-theme-disabled.demo.vue
│   │   │       ├── language.demo.vue
│   │   │       ├── namespace.demo.vue
│   │   │       ├── os-theme.demo.vue
│   │   │       ├── overrides-inherit-debug.demo.vue
│   │   │       ├── size.demo.vue
│   │   │       ├── theme.demo.vue
│   │   │       └── transparent.demo.vue
│   │   ├── index.ts
│   │   ├── src/
│   │   │   ├── ConfigProvider.ts
│   │   │   ├── config.ts
│   │   │   ├── context.ts
│   │   │   ├── interface.ts
│   │   │   ├── internal-interface.ts
│   │   │   └── katex.ts
│   │   └── tests/
│   │       ├── ComponentSize.spec.tsx
│   │       ├── ConfigProvider.spec.ts
│   │       └── server.spec.tsx
│   ├── countdown/
│   │   ├── demos/
│   │   │   ├── enUS/
│   │   │   │   ├── basic.demo.vue
│   │   │   │   ├── index.demo-entry.md
│   │   │   │   ├── precision.demo.vue
│   │   │   │   ├── render.demo.vue
│   │   │   │   └── reset.demo.vue
│   │   │   └── zhCN/
│   │   │       ├── basic.demo.vue
│   │   │       ├── finish-debug.demo.vue
│   │   │       ├── index.demo-entry.md
│   │   │       ├── precision.demo.vue
│   │   │       ├── render.demo.vue
│   │   │       └── reset.demo.vue
│   │   ├── index.ts
│   │   ├── src/
│   │   │   └── Countdown.tsx
│   │   └── tests/
│   │       ├── Countdown.spec.ts
│   │       └── server.spec.tsx
│   ├── create.ts
│   ├── data-table/
│   │   ├── demos/
│   │   │   ├── enUS/
│   │   │   │   ├── ajax-usage.demo.vue
│   │   │   │   ├── async-expand.demo.vue
│   │   │   │   ├── basic.demo.vue
│   │   │   │   ├── border.demo.vue
│   │   │   │   ├── column-draggable.demo.vue
│   │   │   │   ├── context-menu.demo.vue
│   │   │   │   ├── controlled-filter.demo.vue
│   │   │   │   ├── controlled-multiple-sorter.demo.vue
│   │   │   │   ├── controlled-page.demo.vue
│   │   │   │   ├── controlled-sorter.demo.vue
│   │   │   │   ├── custom-filter-menu.demo.vue
│   │   │   │   ├── custom-select.demo.vue
│   │   │   │   ├── custom-sorter.demo.vue
│   │   │   │   ├── custom-style.demo.vue
│   │   │   │   ├── ellipsis-tooltip.demo.vue
│   │   │   │   ├── ellipsis.demo.vue
│   │   │   │   ├── empty.demo.vue
│   │   │   │   ├── expand.demo.vue
│   │   │   │   ├── export-csv.demo.vue
│   │   │   │   ├── filter-and-sorter.demo.vue
│   │   │   │   ├── fixed-header-column.demo.vue
│   │   │   │   ├── fixed-header.demo.vue
│   │   │   │   ├── flex-height.demo.vue
│   │   │   │   ├── group-header.demo.vue
│   │   │   │   ├── index.demo-entry.md
│   │   │   │   ├── merge-cell.demo.vue
│   │   │   │   ├── multiple-sorter.demo.vue
│   │   │   │   ├── pagination-behavior-on-filter.demo.vue
│   │   │   │   ├── render-cell.demo.vue
│   │   │   │   ├── render-header.demo.vue
│   │   │   │   ├── row-props.demo.vue
│   │   │   │   ├── select-single.demo.vue
│   │   │   │   ├── select.demo.vue
│   │   │   │   ├── simple-editable.demo.vue
│   │   │   │   ├── size.demo.vue
│   │   │   │   ├── striped.demo.vue
│   │   │   │   ├── summary.demo.vue
│   │   │   │   ├── switchable-editable.demo.vue
│   │   │   │   ├── tree.demo.vue
│   │   │   │   ├── virtual-x.demo.vue
│   │   │   │   └── virtual.demo.vue
│   │   │   └── zhCN/
│   │   │       ├── ajax-usage.demo.vue
│   │   │       ├── async-expand.demo.vue
│   │   │       ├── basic.demo.vue
│   │   │       ├── border.demo.vue
│   │   │       ├── column-draggable.demo.vue
│   │   │       ├── context-menu.demo.vue
│   │   │       ├── controlled-filter.demo.vue
│   │   │       ├── controlled-multiple-sorter.demo.vue
│   │   │       ├── controlled-page.demo.vue
│   │   │       ├── controlled-sorter.demo.vue
│   │   │       ├── custom-expand-icon-debug.demo.vue
│   │   │       ├── custom-filter-menu.demo.vue
│   │   │       ├── custom-select.demo.vue
│   │   │       ├── custom-sorter.demo.vue
│   │   │       ├── custom-style.demo.vue
│   │   │       ├── debug.demo.vue
│   │   │       ├── ellipsis-debug.demo.vue
│   │   │       ├── ellipsis-tooltip.demo.vue
│   │   │       ├── ellipsis.demo.vue
│   │   │       ├── empty-scroll-debug.demo.vue
│   │   │       ├── empty.demo.vue
│   │   │       ├── expand.demo.vue
│   │   │       ├── expandable-debug.demo.vue
│   │   │       ├── export-csv.demo.vue
│   │   │       ├── filter-and-sorter.demo.vue
│   │   │       ├── fixed-column-debug.demo.vue
│   │   │       ├── fixed-column2-debug.demo.vue
│   │   │       ├── fixed-header-column.demo.vue
│   │   │       ├── fixed-header.demo.vue
│   │   │       ├── flex-height.demo.vue
│   │   │       ├── group-header.demo.vue
│   │   │       ├── height-debug.demo.vue
│   │   │       ├── index.demo-entry.md
│   │   │       ├── keep-alive-debug.demo.vue
│   │   │       ├── merge-cell.demo.vue
│   │   │       ├── multiple-sorter.demo.vue
│   │   │       ├── pagination-behavior-on-filter.demo.vue
│   │   │       ├── render-cell.demo.vue
│   │   │       ├── render-header.demo.vue
│   │   │       ├── row-props.demo.vue
│   │   │       ├── rtl-debug.demo.vue
│   │   │       ├── scroll-debug.demo.vue
│   │   │       ├── select-single.demo.vue
│   │   │       ├── select.demo.vue
│   │   │       ├── simple-editable.demo.vue
│   │   │       ├── size.demo.vue
│   │   │       ├── striped.demo.vue
│   │   │       ├── summary-debug.demo.vue
│   │   │       ├── summary.demo.vue
│   │   │       ├── switchable-editable.demo.vue
│   │   │       ├── tree.demo.vue
│   │   │       ├── virtual-x.demo.vue
│   │   │       └── virtual.demo.vue
│   │   ├── index.ts
│   │   ├── src/
│   │   │   ├── DataTable.tsx
│   │   │   ├── HeaderButton/
│   │   │   │   ├── FilterButton.tsx
│   │   │   │   ├── FilterMenu.tsx
│   │   │   │   ├── RenderFilter.ts
│   │   │   │   ├── RenderSorter.ts
│   │   │   │   ├── ResizeButton.tsx
│   │   │   │   └── SortButton.tsx
│   │   │   ├── MainTable.tsx
│   │   │   ├── TableParts/
│   │   │   │   ├── Body.tsx
│   │   │   │   ├── BodyCheckbox.tsx
│   │   │   │   ├── BodyRadio.tsx
│   │   │   │   ├── Cell.tsx
│   │   │   │   ├── ExpandTrigger.tsx
│   │   │   │   ├── Header.tsx
│   │   │   │   └── SelectionMenu.tsx
│   │   │   ├── interface.ts
│   │   │   ├── public-types.ts
│   │   │   ├── styles/
│   │   │   │   ├── index.cssr.ts
│   │   │   │   └── rtl.cssr.ts
│   │   │   ├── use-check.ts
│   │   │   ├── use-expand.ts
│   │   │   ├── use-group-header.ts
│   │   │   ├── use-resizable.ts
│   │   │   ├── use-scroll.ts
│   │   │   ├── use-sorter.ts
│   │   │   ├── use-table-data.ts
│   │   │   └── utils.ts
│   │   ├── styles/
│   │   │   ├── _common.ts
│   │   │   ├── dark.ts
│   │   │   ├── index.ts
│   │   │   ├── light.ts
│   │   │   └── rtl.ts
│   │   └── tests/
│   │       ├── DataTable.spec.tsx
│   │       ├── __snapshots__/
│   │       │   └── DataTable.spec.tsx.snap
│   │       └── server.spec.tsx
│   ├── date-picker/
│   │   ├── demos/
│   │   │   ├── enUS/
│   │   │   │   ├── actions.demo.vue
│   │   │   │   ├── close-panel-on-select.demo.vue
│   │   │   │   ├── date.demo.vue
│   │   │   │   ├── daterange.demo.vue
│   │   │   │   ├── datetime.demo.vue
│   │   │   │   ├── datetimeformat.demo.vue
│   │   │   │   ├── datetimerange.demo.vue
│   │   │   │   ├── default-time.demo.vue
│   │   │   │   ├── disabled-time.demo.vue
│   │   │   │   ├── disabled.demo.vue
│   │   │   │   ├── events.demo.vue
│   │   │   │   ├── focus.demo.vue
│   │   │   │   ├── footerslot.demo.vue
│   │   │   │   ├── format.demo.vue
│   │   │   │   ├── icon.demo.vue
│   │   │   │   ├── index.demo-entry.md
│   │   │   │   ├── month.demo.vue
│   │   │   │   ├── monthrange.demo.vue
│   │   │   │   ├── panel.demo.vue
│   │   │   │   ├── quarter.demo.vue
│   │   │   │   ├── quarterrange.demo.vue
│   │   │   │   ├── shortcuts.demo.vue
│   │   │   │   ├── size.demo.vue
│   │   │   │   ├── status.demo.vue
│   │   │   │   ├── update-on-close.demo.vue
│   │   │   │   ├── week.demo.vue
│   │   │   │   ├── year.demo.vue
│   │   │   │   └── yearrange.demo.vue
│   │   │   └── zhCN/
│   │   │       ├── actions.demo.vue
│   │   │       ├── close-panel-on-select.demo.vue
│   │   │       ├── date.demo.vue
│   │   │       ├── daterange.demo.vue
│   │   │       ├── datetime.demo.vue
│   │   │       ├── datetimeformat.demo.vue
│   │   │       ├── datetimerange.demo.vue
│   │   │       ├── default-time.demo.vue
│   │   │       ├── disabled-time.demo.vue
│   │   │       ├── disabled.demo.vue
│   │   │       ├── events.demo.vue
│   │   │       ├── focus.demo.vue
│   │   │       ├── footerslot.demo.vue
│   │   │       ├── form-debug.demo.vue
│   │   │       ├── format.demo.vue
│   │   │       ├── icon.demo.vue
│   │   │       ├── index.demo-entry.md
│   │   │       ├── month.demo.vue
│   │   │       ├── monthrange.demo.vue
│   │   │       ├── panel-debug.demo.vue
│   │   │       ├── panel.demo.vue
│   │   │       ├── quarter.demo.vue
│   │   │       ├── quarterrange.demo.vue
│   │   │       ├── shortcuts.demo.vue
│   │   │       ├── size.demo.vue
│   │   │       ├── status.demo.vue
│   │   │       ├── update-on-close.demo.vue
│   │   │       ├── week.demo.vue
│   │   │       ├── year.demo.vue
│   │   │       └── yearrange.demo.vue
│   │   ├── index.ts
│   │   ├── src/
│   │   │   ├── DatePicker.tsx
│   │   │   ├── config.ts
│   │   │   ├── interface.ts
│   │   │   ├── panel/
│   │   │   │   ├── date.tsx
│   │   │   │   ├── daterange.tsx
│   │   │   │   ├── datetime.tsx
│   │   │   │   ├── datetimerange.tsx
│   │   │   │   ├── month.tsx
│   │   │   │   ├── monthrange.tsx
│   │   │   │   ├── panelHeader.tsx
│   │   │   │   ├── use-calendar.ts
│   │   │   │   ├── use-dual-calendar.ts
│   │   │   │   └── use-panel-common.ts
│   │   │   ├── props.ts
│   │   │   ├── public-types.ts
│   │   │   ├── styles/
│   │   │   │   └── index.cssr.ts
│   │   │   ├── utils.ts
│   │   │   └── validation-utils.ts
│   │   ├── styles/
│   │   │   ├── _common.ts
│   │   │   ├── dark.ts
│   │   │   ├── index.ts
│   │   │   └── light.ts
│   │   └── tests/
│   │       ├── DatePicker.spec.tsx
│   │       ├── __snapshots__/
│   │       │   └── DatePicker.spec.tsx.snap
│   │       └── server.spec.tsx
│   ├── descriptions/
│   │   ├── demos/
│   │   │   ├── enUS/
│   │   │   │   ├── basic.demo.vue
│   │   │   │   ├── bordered.demo.vue
│   │   │   │   ├── columns.demo.vue
│   │   │   │   ├── index.demo-entry.md
│   │   │   │   ├── placement.demo.vue
│   │   │   │   ├── size.demo.vue
│   │   │   │   └── span.demo.vue
│   │   │   └── zhCN/
│   │   │       ├── basic.demo.vue
│   │   │       ├── bordered.demo.vue
│   │   │       ├── columns.demo.vue
│   │   │       ├── index.demo-entry.md
│   │   │       ├── placement.demo.vue
│   │   │       ├── single-line-debug.demo.vue
│   │   │       ├── size.demo.vue
│   │   │       └── span.demo.vue
│   │   ├── index.ts
│   │   ├── src/
│   │   │   ├── Descriptions.tsx
│   │   │   ├── DescriptionsItem.ts
│   │   │   ├── public-types.ts
│   │   │   ├── styles/
│   │   │   │   └── index.cssr.ts
│   │   │   └── utils.ts
│   │   ├── styles/
│   │   │   ├── _common.ts
│   │   │   ├── dark.ts
│   │   │   ├── index.ts
│   │   │   └── light.ts
│   │   └── tests/
│   │       ├── Descriptions.spec.ts
│   │       └── server.spec.tsx
│   ├── dialog/
│   │   ├── demos/
│   │   │   ├── enUS/
│   │   │   │   ├── action.demo.vue
│   │   │   │   ├── async.demo.vue
│   │   │   │   ├── basic.demo.vue
│   │   │   │   ├── index.demo-entry.md
│   │   │   │   ├── mask.demo.vue
│   │   │   │   ├── use-component.demo.vue
│   │   │   │   └── use-dialog-reactive-list.demo.vue
│   │   │   └── zhCN/
│   │   │       ├── action.demo.vue
│   │   │       ├── async.demo.vue
│   │   │       ├── basic.demo.vue
│   │   │       ├── focus-debug.demo.vue
│   │   │       ├── index.demo-entry.md
│   │   │       ├── mask.demo.vue
│   │   │       ├── rtl-debug.demo.vue
│   │   │       ├── use-component.demo.vue
│   │   │       └── use-dialog-reactive-list.demo.vue
│   │   ├── index.ts
│   │   ├── src/
│   │   │   ├── Dialog.tsx
│   │   │   ├── DialogEnvironment.tsx
│   │   │   ├── DialogProvider.ts
│   │   │   ├── composables.ts
│   │   │   ├── context.ts
│   │   │   ├── dialogProps.ts
│   │   │   ├── interface.ts
│   │   │   └── styles/
│   │   │       ├── index.cssr.ts
│   │   │       └── rtl.cssr.ts
│   │   ├── styles/
│   │   │   ├── _common.ts
│   │   │   ├── dark.ts
│   │   │   ├── index.ts
│   │   │   ├── light.ts
│   │   │   └── rtl.ts
│   │   └── tests/
│   │       ├── Dialog.spec.tsx
│   │       └── server.spec.tsx
│   ├── discrete/
│   │   ├── demos/
│   │   │   ├── enUS/
│   │   │   │   ├── basic.demo.vue
│   │   │   │   └── index.demo-entry.md
│   │   │   └── zhCN/
│   │   │       ├── basic.demo.vue
│   │   │       └── index.demo-entry.md
│   │   ├── index.ts
│   │   └── src/
│   │       ├── InjectionExtractor.tsx
│   │       ├── discrete.ts
│   │       ├── discreteApp.ts
│   │       └── interface.ts
│   ├── divider/
│   │   ├── demos/
│   │   │   ├── enUS/
│   │   │   │   ├── basic.demo.vue
│   │   │   │   ├── content.demo.vue
│   │   │   │   ├── index.demo-entry.md
│   │   │   │   └── vertical.demo.vue
│   │   │   └── zhCN/
│   │   │       ├── basic.demo.vue
│   │   │       ├── content.demo.vue
│   │   │       ├── index.demo-entry.md
│   │   │       └── vertical.demo.vue
│   │   ├── index.ts
│   │   ├── src/
│   │   │   ├── Divider.tsx
│   │   │   └── styles/
│   │   │       └── index.cssr.ts
│   │   ├── styles/
│   │   │   ├── dark.ts
│   │   │   ├── index.ts
│   │   │   └── light.ts
│   │   └── tests/
│   │       ├── Divider.spec.ts
│   │       └── server.spec.tsx
│   ├── drawer/
│   │   ├── demos/
│   │   │   ├── enUS/
│   │   │   │   ├── basic.demo.vue
│   │   │   │   ├── closable.demo.vue
│   │   │   │   ├── index.demo-entry.md
│   │   │   │   ├── multiple.demo.vue
│   │   │   │   ├── resizable.demo.vue
│   │   │   │   ├── scroll.demo.vue
│   │   │   │   ├── slot.demo.vue
│   │   │   │   └── target.demo.vue
│   │   │   └── zhCN/
│   │   │       ├── a11y-debug.demo.vue
│   │   │       ├── basic.demo.vue
│   │   │       ├── closable.demo.vue
│   │   │       ├── custom-style-debug.demo.vue
│   │   │       ├── dark-1-debug.demo.vue
│   │   │       ├── dark-2-debug.demo.vue
│   │   │       ├── dark-3-debug.demo.vue
│   │   │       ├── dark-4-debug.demo.vue
│   │   │       ├── index.demo-entry.md
│   │   │       ├── multiple.demo.vue
│   │   │       ├── resizable.demo.vue
│   │   │       ├── rtl-debug.demo.vue
│   │   │       ├── scroll.demo.vue
│   │   │       ├── slot.demo.vue
│   │   │       └── target.demo.vue
│   │   ├── index.ts
│   │   ├── src/
│   │   │   ├── Drawer.tsx
│   │   │   ├── DrawerBodyWrapper.tsx
│   │   │   ├── DrawerContent.tsx
│   │   │   ├── interface.ts
│   │   │   └── styles/
│   │   │       ├── index.cssr.ts
│   │   │       └── rtl.cssr.ts
│   │   ├── styles/
│   │   │   ├── dark.ts
│   │   │   ├── index.ts
│   │   │   ├── light.ts
│   │   │   └── rtl.ts
│   │   └── tests/
│   │       ├── Drawer.spec.tsx
│   │       └── server.spec.tsx
│   ├── dropdown/
│   │   ├── demos/
│   │   │   ├── enUS/
│   │   │   │   ├── arrow.demo.vue
│   │   │   │   ├── basic.demo.vue
│   │   │   │   ├── batch-render.demo.vue
│   │   │   │   ├── cascade.demo.vue
│   │   │   │   ├── icon.demo.vue
│   │   │   │   ├── index.demo-entry.md
│   │   │   │   ├── manual-position.demo.vue
│   │   │   │   ├── option-props.demo.vue
│   │   │   │   ├── placement.demo.vue
│   │   │   │   ├── render-option.demo.vue
│   │   │   │   ├── render.demo.vue
│   │   │   │   ├── size.demo.vue
│   │   │   │   └── trigger.demo.vue
│   │   │   └── zhCN/
│   │   │       ├── arrow.demo.vue
│   │   │       ├── basic.demo.vue
│   │   │       ├── batch-render.demo.vue
│   │   │       ├── cascade.demo.vue
│   │   │       ├── group-debug.demo.vue
│   │   │       ├── icon.demo.vue
│   │   │       ├── index.demo-entry.md
│   │   │       ├── manual-position.demo.vue
│   │   │       ├── option-props.demo.vue
│   │   │       ├── placement.demo.vue
│   │   │       ├── render-option.demo.vue
│   │   │       ├── render.demo.vue
│   │   │       ├── scrollable-debug.demo.vue
│   │   │       ├── size.demo.vue
│   │   │       └── trigger.demo.vue
│   │   ├── index.ts
│   │   ├── src/
│   │   │   ├── Dropdown.tsx
│   │   │   ├── DropdownDivider.tsx
│   │   │   ├── DropdownGroup.tsx
│   │   │   ├── DropdownGroupHeader.tsx
│   │   │   ├── DropdownMenu.tsx
│   │   │   ├── DropdownOption.tsx
│   │   │   ├── DropdownRenderOption.tsx
│   │   │   ├── context.ts
│   │   │   ├── interface.ts
│   │   │   ├── public-types.ts
│   │   │   ├── styles/
│   │   │   │   └── index.cssr.ts
│   │   │   └── utils.ts
│   │   ├── styles/
│   │   │   ├── _common.ts
│   │   │   ├── dark.ts
│   │   │   ├── index.ts
│   │   │   └── light.ts
│   │   └── tests/
│   │       ├── Dropdown.spec.tsx
│   │       ├── __snapshots__/
│   │       │   └── Dropdown.spec.tsx.snap
│   │       └── server.spec.tsx
│   ├── dynamic-input/
│   │   ├── demos/
│   │   │   ├── enUS/
│   │   │   │   ├── basic.demo.vue
│   │   │   │   ├── custom-action.demo.vue
│   │   │   │   ├── custom.demo.vue
│   │   │   │   ├── form.demo.vue
│   │   │   │   ├── index.demo-entry.md
│   │   │   │   ├── move.demo.vue
│   │   │   │   └── pair.demo.vue
│   │   │   └── zhCN/
│   │   │       ├── basic.demo.vue
│   │   │       ├── create-debug.demo.vue
│   │   │       ├── custom-action.demo.vue
│   │   │       ├── custom.demo.vue
│   │   │       ├── form.demo.vue
│   │   │       ├── index.demo-entry.md
│   │   │       ├── move.demo.vue
│   │   │       ├── pair.demo.vue
│   │   │       └── rtl-debug.demo.vue
│   │   ├── index.ts
│   │   ├── src/
│   │   │   ├── DynamicInput.tsx
│   │   │   ├── InputPreset.tsx
│   │   │   ├── PairPreset.tsx
│   │   │   ├── interface.ts
│   │   │   └── styles/
│   │   │       ├── index.cssr.ts
│   │   │       └── rtl.cssr.ts
│   │   ├── styles/
│   │   │   ├── _common.ts
│   │   │   ├── dark.ts
│   │   │   ├── index.ts
│   │   │   ├── light.ts
│   │   │   └── rtl.ts
│   │   └── tests/
│   │       ├── DynamicInput.spec.ts
│   │       └── server.spec.tsx
│   ├── dynamic-tags/
│   │   ├── demos/
│   │   │   ├── enUS/
│   │   │   │   ├── basic.demo.vue
│   │   │   │   ├── form.demo.vue
│   │   │   │   ├── index.demo-entry.md
│   │   │   │   ├── max.demo.vue
│   │   │   │   ├── on-create.demo.vue
│   │   │   │   ├── option-format.demo.vue
│   │   │   │   ├── render-tag.demo.vue
│   │   │   │   └── slot.demo.vue
│   │   │   └── zhCN/
│   │   │       ├── basic.demo.vue
│   │   │       ├── form.demo.vue
│   │   │       ├── index.demo-entry.md
│   │   │       ├── max.demo.vue
│   │   │       ├── on-create.demo.vue
│   │   │       ├── option-format.demo.vue
│   │   │       ├── render-tag.demo.vue
│   │   │       └── slot.demo.vue
│   │   ├── index.ts
│   │   ├── src/
│   │   │   ├── DynamicTags.tsx
│   │   │   ├── interface.ts
│   │   │   ├── public-types.ts
│   │   │   └── styles/
│   │   │       └── index.cssr.ts
│   │   ├── styles/
│   │   │   ├── dark.ts
│   │   │   ├── index.ts
│   │   │   └── light.ts
│   │   └── tests/
│   │       ├── DynamicTags.spec.ts
│   │       ├── __snapshots__/
│   │       │   └── DynamicTags.spec.ts.snap
│   │       └── server.spec.tsx
│   ├── element/
│   │   ├── demos/
│   │   │   ├── enUS/
│   │   │   │   ├── basic.demo.vue
│   │   │   │   └── index.demo-entry.md
│   │   │   └── zhCN/
│   │   │       ├── basic.demo.vue
│   │   │       └── index.demo-entry.md
│   │   ├── index.ts
│   │   ├── src/
│   │   │   └── Element.ts
│   │   ├── styles/
│   │   │   ├── dark.ts
│   │   │   ├── index.ts
│   │   │   └── light.ts
│   │   └── tests/
│   │       ├── Element.spec.ts
│   │       └── server.spec.tsx
│   ├── ellipsis/
│   │   ├── demos/
│   │   │   ├── enUS/
│   │   │   │   ├── basic.demo.vue
│   │   │   │   ├── custom-tooltip.demo.vue
│   │   │   │   ├── expand-trigger.demo.vue
│   │   │   │   ├── index.demo-entry.md
│   │   │   │   ├── line-clamp.demo.vue
│   │   │   │   └── performant-ellipsis.demo.vue
│   │   │   └── zhCN/
│   │   │       ├── basic.demo.vue
│   │   │       ├── custom-tooltip.demo.vue
│   │   │       ├── dynamic-debug.demo.vue
│   │   │       ├── expand-trigger.demo.vue
│   │   │       ├── index.demo-entry.md
│   │   │       ├── line-clamp.demo.vue
│   │   │       ├── performant-ellipsis.demo.vue
│   │   │       └── width-debug.demo.vue
│   │   ├── index.ts
│   │   ├── src/
│   │   │   ├── Ellipsis.tsx
│   │   │   ├── PerformantEllipsis.tsx
│   │   │   └── styles/
│   │   │       └── index.cssr.ts
│   │   ├── styles/
│   │   │   ├── dark.ts
│   │   │   ├── index.ts
│   │   │   └── light.ts
│   │   └── tests/
│   │       ├── Ellipsis.spec.tsx
│   │       └── server.spec.tsx
│   ├── empty/
│   │   ├── demos/
│   │   │   ├── enUS/
│   │   │   │   ├── basic.demo.vue
│   │   │   │   ├── icon.demo.vue
│   │   │   │   ├── index.demo-entry.md
│   │   │   │   ├── locale-debug.demo.vue
│   │   │   │   └── size.demo.vue
│   │   │   └── zhCN/
│   │   │       ├── basic.demo.vue
│   │   │       ├── icon.demo.vue
│   │   │       ├── index.demo-entry.md
│   │   │       ├── locale-debug.demo.vue
│   │   │       └── size.demo.vue
│   │   ├── index.ts
│   │   ├── src/
│   │   │   ├── Empty.tsx
│   │   │   └── styles/
│   │   │       └── index.cssr.ts
│   │   ├── styles/
│   │   │   ├── _common.ts
│   │   │   ├── dark.ts
│   │   │   ├── index.ts
│   │   │   └── light.ts
│   │   └── tests/
│   │       ├── Empty.spec.ts
│   │       ├── __snapshots__/
│   │       │   └── Empty.spec.ts.snap
│   │       └── server.spec.tsx
│   ├── equation/
│   │   ├── demos/
│   │   │   ├── enUS/
│   │   │   │   ├── basic.demo.vue
│   │   │   │   ├── index.demo-entry.md
│   │   │   │   └── katex-options.demo.vue
│   │   │   └── zhCN/
│   │   │       ├── basic.demo.vue
│   │   │       ├── index.demo-entry.md
│   │   │       └── katex-options.demo.vue
│   │   ├── index.ts
│   │   ├── src/
│   │   │   └── Equation.tsx
│   │   └── styles/
│   │       ├── dark.ts
│   │       ├── index.ts
│   │       └── light.ts
│   ├── flex/
│   │   ├── demos/
│   │   │   ├── enUS/
│   │   │   │   ├── basic.demo.vue
│   │   │   │   ├── center.demo.vue
│   │   │   │   ├── from-end.demo.vue
│   │   │   │   ├── index.demo-entry.md
│   │   │   │   ├── space-around.demo.vue
│   │   │   │   ├── space-between.demo.vue
│   │   │   │   └── vertical.demo.vue
│   │   │   └── zhCN/
│   │   │       ├── basic.demo.vue
│   │   │       ├── center.demo.vue
│   │   │       ├── from-end.demo.vue
│   │   │       ├── grid-debug.demo.vue
│   │   │       ├── index.demo-entry.md
│   │   │       ├── rtl-debug.demo.vue
│   │   │       ├── space-around.demo.vue
│   │   │       ├── space-between.demo.vue
│   │   │       └── vertical.demo.vue
│   │   ├── index.ts
│   │   ├── src/
│   │   │   ├── Flex.tsx
│   │   │   ├── styles/
│   │   │   │   └── rtl.cssr.ts
│   │   │   └── type.ts
│   │   ├── styles/
│   │   │   ├── _common.ts
│   │   │   ├── dark.ts
│   │   │   ├── index.ts
│   │   │   ├── light.ts
│   │   │   └── rtl.ts
│   │   └── tests/
│   │       ├── Flex.spec.tsx
│   │       ├── __snapshots__/
│   │       │   └── Flex.spec.tsx.snap
│   │       └── server.spec.tsx
│   ├── float-button/
│   │   ├── demos/
│   │   │   ├── enUS/
│   │   │   │   ├── badge.demo.vue
│   │   │   │   ├── basic.demo.vue
│   │   │   │   ├── custom.demo.vue
│   │   │   │   ├── group.demo.vue
│   │   │   │   ├── index.demo-entry.md
│   │   │   │   ├── menu.demo.vue
│   │   │   │   └── tooltip.demo.vue
│   │   │   └── zhCN/
│   │   │       ├── badge.demo.vue
│   │   │       ├── basic.demo.vue
│   │   │       ├── custom.demo.vue
│   │   │       ├── group.demo.vue
│   │   │       ├── index.demo-entry.md
│   │   │       ├── menu.demo.vue
│   │   │       └── tooltip.demo.vue
│   │   ├── index.ts
│   │   ├── src/
│   │   │   ├── FloatButton.tsx
│   │   │   └── styles/
│   │   │       └── index.cssr.ts
│   │   ├── styles/
│   │   │   ├── dark.ts
│   │   │   ├── index.ts
│   │   │   └── light.ts
│   │   └── tests/
│   │       ├── FloatButton.spec.tsx
│   │       ├── __snapshots__/
│   │       │   └── FloatButton.spec.tsx.snap
│   │       └── server.spec.tsx
│   ├── float-button-group/
│   │   ├── index.ts
│   │   ├── src/
│   │   │   ├── FloatButtonGroup.tsx
│   │   │   └── styles/
│   │   │       └── index.cssr.ts
│   │   ├── styles/
│   │   │   ├── dark.ts
│   │   │   ├── index.ts
│   │   │   └── light.ts
│   │   └── tests/
│   │       ├── NFloatButtonGroup.spec.tsx
│   │       ├── __snapshots__/
│   │       │   └── NFloatButtonGroup.spec.tsx.snap
│   │       └── server.spec.tsx
│   ├── form/
│   │   ├── demos/
│   │   │   ├── enUS/
│   │   │   │   ├── abnormal-warning.demo.vue
│   │   │   │   ├── async.demo.vue
│   │   │   │   ├── custom-messages.demo.vue
│   │   │   │   ├── custom-rule.demo.vue
│   │   │   │   ├── custom-validation.demo.vue
│   │   │   │   ├── disabled.demo.vue
│   │   │   │   ├── dynamic.demo.vue
│   │   │   │   ├── feedback-style.demo.vue
│   │   │   │   ├── i18n.demo.vue
│   │   │   │   ├── index.demo-entry.md
│   │   │   │   ├── inline.demo.vue
│   │   │   │   ├── item-only.demo.vue
│   │   │   │   ├── left.demo.vue
│   │   │   │   ├── partially-apply-rules.demo.vue
│   │   │   │   ├── show-label.demo.vue
│   │   │   │   └── top.demo.vue
│   │   │   └── zhCN/
│   │   │       ├── abnormal-warning.demo.vue
│   │   │       ├── async.demo.vue
│   │   │       ├── custom-messages.demo.vue
│   │   │       ├── custom-rule.demo.vue
│   │   │       ├── custom-validation.demo.vue
│   │   │       ├── disabled.demo.vue
│   │   │       ├── dynamic.demo.vue
│   │   │       ├── feedback-style.demo.vue
│   │   │       ├── i18n.demo.vue
│   │   │       ├── index.demo-entry.md
│   │   │       ├── inline.demo.vue
│   │   │       ├── item-only.demo.vue
│   │   │       ├── left.demo.vue
│   │   │       ├── partially-apply-rules.demo.vue
│   │   │       ├── render-feedback.demo.vue
│   │   │       ├── show-label.demo.vue
│   │   │       └── top.demo.vue
│   │   ├── index.ts
│   │   ├── src/
│   │   │   ├── Form.tsx
│   │   │   ├── FormItem.tsx
│   │   │   ├── FormItemCol.ts
│   │   │   ├── FormItemGridItem.ts
│   │   │   ├── FormItemRow.ts
│   │   │   ├── context.ts
│   │   │   ├── interface.ts
│   │   │   ├── public-types.ts
│   │   │   ├── styles/
│   │   │   │   ├── form-item.cssr.ts
│   │   │   │   └── form.cssr.ts
│   │   │   └── utils.ts
│   │   ├── styles/
│   │   │   ├── _common.ts
│   │   │   ├── dark.ts
│   │   │   ├── index.ts
│   │   │   └── light.ts
│   │   └── tests/
│   │       ├── Form.spec.tsx
│   │       └── server.spec.tsx
│   ├── global-style/
│   │   ├── demos/
│   │   │   ├── enUS/
│   │   │   │   └── index.demo-entry.md
│   │   │   └── zhCN/
│   │   │       └── index.demo-entry.md
│   │   ├── index.ts
│   │   ├── src/
│   │   │   └── GlobalStyle.ts
│   │   └── tests/
│   │       └── server.spec.tsx
│   ├── global.d.ts
│   ├── gradient-text/
│   │   ├── demos/
│   │   │   ├── enUS/
│   │   │   │   ├── basic.demo.vue
│   │   │   │   ├── custom.demo.vue
│   │   │   │   ├── index.demo-entry.md
│   │   │   │   └── size.demo.vue
│   │   │   └── zhCN/
│   │   │       ├── basic.demo.vue
│   │   │       ├── custom.demo.vue
│   │   │       ├── index.demo-entry.md
│   │   │       └── size.demo.vue
│   │   ├── index.ts
│   │   ├── src/
│   │   │   ├── GradientText.tsx
│   │   │   └── styles/
│   │   │       └── index.cssr.ts
│   │   ├── styles/
│   │   │   ├── dark.ts
│   │   │   ├── index.ts
│   │   │   └── light.ts
│   │   └── tests/
│   │       ├── GradientText.spec.ts
│   │       ├── __snapshots__/
│   │       │   └── GradientText.spec.ts.snap
│   │       └── server.spec.tsx
│   ├── grid/
│   │   ├── demos/
│   │   │   ├── enUS/
│   │   │   │   ├── basic.demo.vue
│   │   │   │   ├── collapse.demo.vue
│   │   │   │   ├── gap.demo.vue
│   │   │   │   ├── index.demo-entry.md
│   │   │   │   ├── layout-shift-disabled.demo.vue
│   │   │   │   ├── offset.demo.vue
│   │   │   │   ├── responsive-item.demo.vue
│   │   │   │   └── responsive.demo.vue
│   │   │   └── zhCN/
│   │   │       ├── basic.demo.vue
│   │   │       ├── collapse.demo.vue
│   │   │       ├── gap.demo.vue
│   │   │       ├── grid-basic-debug.demo.vue
│   │   │       ├── index.demo-entry.md
│   │   │       ├── layout-shift-disabled.demo.vue
│   │   │       ├── offset.demo.vue
│   │   │       ├── responsive-item.demo.vue
│   │   │       ├── responsive.demo.vue
│   │   │       └── vshow-debug.demo.vue
│   │   ├── index.ts
│   │   ├── src/
│   │   │   ├── Grid.tsx
│   │   │   ├── GridItem.tsx
│   │   │   └── config.ts
│   │   └── tests/
│   │       ├── Grid.spec.tsx
│   │       └── server.spec.tsx
│   ├── heatmap/
│   │   ├── demos/
│   │   │   ├── enUS/
│   │   │   │   ├── basic.demo.vue
│   │   │   │   ├── colors.demo.vue
│   │   │   │   ├── index.demo-entry.md
│   │   │   │   ├── slots.demo.vue
│   │   │   │   └── themes.demo.vue
│   │   │   └── zhCN/
│   │   │       ├── basic.demo.vue
│   │   │       ├── colors.demo.vue
│   │   │       ├── index.demo-entry.md
│   │   │       ├── slots.demo.vue
│   │   │       └── themes.demo.vue
│   │   ├── index.ts
│   │   ├── src/
│   │   │   ├── ColorIndicator.tsx
│   │   │   ├── Heatmap.tsx
│   │   │   ├── Rect.tsx
│   │   │   ├── animationStyle.ts
│   │   │   ├── interface.ts
│   │   │   ├── public-types.ts
│   │   │   ├── styles/
│   │   │   │   ├── index.cssr.ts
│   │   │   │   └── rtl.cssr.ts
│   │   │   ├── theme.ts
│   │   │   └── utils/
│   │   │       └── index.ts
│   │   ├── styles/
│   │   │   ├── dark.ts
│   │   │   ├── index.ts
│   │   │   ├── light.ts
│   │   │   └── rtl.ts
│   │   └── tests/
│   │       ├── Heatmap.spec.tsx
│   │       └── server.spec.tsx
│   ├── highlight/
│   │   ├── demos/
│   │   │   ├── enUS/
│   │   │   │   ├── basic.demo.vue
│   │   │   │   ├── case-sensitive.demo.vue
│   │   │   │   ├── component.demo.vue
│   │   │   │   ├── index.demo-entry.md
│   │   │   │   └── style.demo.vue
│   │   │   └── zhCN/
│   │   │       ├── basic.demo.vue
│   │   │       ├── case-sensitive.demo.vue
│   │   │       ├── component.demo.vue
│   │   │       ├── index.demo-entry.md
│   │   │       └── style.demo.vue
│   │   ├── index.ts
│   │   ├── src/
│   │   │   ├── Highlight.tsx
│   │   │   ├── public-types.ts
│   │   │   └── utils.ts
│   │   └── tests/
│   │       └── utils.spec.ts
│   ├── icon/
│   │   ├── demos/
│   │   │   ├── enUS/
│   │   │   │   ├── basic.demo.vue
│   │   │   │   ├── custom-icon.demo.vue
│   │   │   │   ├── depth.demo.vue
│   │   │   │   ├── icon-wrapper.demo.vue
│   │   │   │   └── index.demo-entry.md
│   │   │   └── zhCN/
│   │   │       ├── basic.demo.vue
│   │   │       ├── custom-icon.demo.vue
│   │   │       ├── depth.demo.vue
│   │   │       ├── icon-wrapper.demo.vue
│   │   │       └── index.demo-entry.md
│   │   ├── index.ts
│   │   ├── src/
│   │   │   ├── Icon.ts
│   │   │   └── styles/
│   │   │       └── index.cssr.ts
│   │   ├── styles/
│   │   │   ├── dark.ts
│   │   │   ├── index.ts
│   │   │   └── light.ts
│   │   └── tests/
│   │       ├── Icon.spec.ts
│   │       ├── __snapshots__/
│   │       │   └── Icon.spec.ts.snap
│   │       └── server.spec.tsx
│   ├── icon-wrapper/
│   │   ├── index.ts
│   │   ├── src/
│   │   │   ├── IconWrapper.tsx
│   │   │   └── styles/
│   │   │       └── index.cssr.ts
│   │   ├── styles/
│   │   │   ├── dark.ts
│   │   │   ├── index.ts
│   │   │   └── light.ts
│   │   └── tests/
│   │       ├── IconWrapper.spec.ts
│   │       └── server.spec.tsx
│   ├── image/
│   │   ├── demos/
│   │   │   ├── enUS/
│   │   │   │   ├── basic.demo.vue
│   │   │   │   ├── component-preview-group.demo.vue
│   │   │   │   ├── component-preview.demo.vue
│   │   │   │   ├── custom-error.demo.vue
│   │   │   │   ├── custom-toolbar.demo.vue
│   │   │   │   ├── custom.demo.vue
│   │   │   │   ├── error.demo.vue
│   │   │   │   ├── group.demo.vue
│   │   │   │   ├── index.demo-entry.md
│   │   │   │   ├── lazy.demo.vue
│   │   │   │   ├── manually-open-preview.demo.vue
│   │   │   │   ├── preview-disabled.demo.vue
│   │   │   │   ├── previewed-img-props.demo.vue
│   │   │   │   └── tooltip.demo.vue
│   │   │   └── zhCN/
│   │   │       ├── basic.demo.vue
│   │   │       ├── component-preview-group-debug.demo.vue
│   │   │       ├── component-preview-group.demo.vue
│   │   │       ├── component-preview.demo.vue
│   │   │       ├── custom-error.demo.vue
│   │   │       ├── custom-toolbar.demo.vue
│   │   │       ├── custom.demo.vue
│   │   │       ├── error.demo.vue
│   │   │       ├── full-debug.demo.vue
│   │   │       ├── group.demo.vue
│   │   │       ├── index.demo-entry.md
│   │   │       ├── lazy.demo.vue
│   │   │       ├── manually-open-preview.demo.vue
│   │   │       ├── preview-disabled.demo.vue
│   │   │       ├── previewed-img-props.demo.vue
│   │   │       └── tooltip.demo.vue
│   │   ├── index.ts
│   │   ├── src/
│   │   │   ├── Image.tsx
│   │   │   ├── ImageGroup.tsx
│   │   │   ├── ImagePreview.tsx
│   │   │   ├── icons.tsx
│   │   │   ├── interface.ts
│   │   │   ├── public-types.ts
│   │   │   ├── styles/
│   │   │   │   └── index.cssr.ts
│   │   │   └── utils.ts
│   │   ├── styles/
│   │   │   ├── dark.ts
│   │   │   ├── index.ts
│   │   │   └── light.ts
│   │   └── tests/
│   │       ├── Image.spec.tsx
│   │       └── server.spec.tsx
│   ├── index.ts
│   ├── infinite-scroll/
│   │   ├── demos/
│   │   │   ├── enUS/
│   │   │   │   ├── basic.demo.vue
│   │   │   │   ├── chat.demo.vue
│   │   │   │   └── index.demo-entry.md
│   │   │   └── zhCN/
│   │   │       ├── basic.demo.vue
│   │   │       ├── chat.demo.vue
│   │   │       └── index.demo-entry.md
│   │   ├── index.ts
│   │   └── src/
│   │       └── InfiniteScroll.tsx
│   ├── input/
│   │   ├── demos/
│   │   │   ├── enUS/
│   │   │   │   ├── autosize.demo.vue
│   │   │   │   ├── basic.demo.vue
│   │   │   │   ├── clearable.demo.vue
│   │   │   │   ├── count.demo.vue
│   │   │   │   ├── disabled.demo.vue
│   │   │   │   ├── event.demo.vue
│   │   │   │   ├── focus.demo.vue
│   │   │   │   ├── graphemes.demo.vue
│   │   │   │   ├── icon.demo.vue
│   │   │   │   ├── index.demo-entry.md
│   │   │   │   ├── input-group.demo.vue
│   │   │   │   ├── input-props.demo.vue
│   │   │   │   ├── loading.demo.vue
│   │   │   │   ├── pair.demo.vue
│   │   │   │   ├── passively-activated.demo.vue
│   │   │   │   ├── password.demo.vue
│   │   │   │   ├── pattern.demo.vue
│   │   │   │   ├── round.demo.vue
│   │   │   │   ├── size.demo.vue
│   │   │   │   ├── status.demo.vue
│   │   │   │   └── trim.demo.vue
│   │   │   └── zhCN/
│   │   │       ├── autosize.demo.vue
│   │   │       ├── basic.demo.vue
│   │   │       ├── clearable.demo.vue
│   │   │       ├── count.demo.vue
│   │   │       ├── disabled.demo.vue
│   │   │       ├── event.demo.vue
│   │   │       ├── focus.demo.vue
│   │   │       ├── graphemes.demo.vue
│   │   │       ├── icon-debug.demo.vue
│   │   │       ├── icon.demo.vue
│   │   │       ├── index.demo-entry.md
│   │   │       ├── input-group.demo.vue
│   │   │       ├── input-props.demo.vue
│   │   │       ├── loading.demo.vue
│   │   │       ├── modal-debug.demo.vue
│   │   │       ├── pair.demo.vue
│   │   │       ├── passively-activated.demo.vue
│   │   │       ├── password.demo.vue
│   │   │       ├── pattern.demo.vue
│   │   │       ├── prefix-debug.demo.vue
│   │   │       ├── round.demo.vue
│   │   │       ├── rtl-debug.demo.vue
│   │   │       ├── size.demo.vue
│   │   │       ├── status.demo.vue
│   │   │       └── textarea-resize-debug.demo.vue
│   │   ├── index.ts
│   │   ├── src/
│   │   │   ├── Input.tsx
│   │   │   ├── InputGroup.tsx
│   │   │   ├── InputGroupLabel.tsx
│   │   │   ├── WordCount.tsx
│   │   │   ├── interface.ts
│   │   │   ├── public-types.ts
│   │   │   ├── styles/
│   │   │   │   ├── input-group-label.cssr.ts
│   │   │   │   ├── input-group.cssr.ts
│   │   │   │   ├── input.cssr.ts
│   │   │   │   └── rtl.cssr.ts
│   │   │   └── utils.ts
│   │   ├── styles/
│   │   │   ├── _common.ts
│   │   │   ├── dark.ts
│   │   │   ├── index.ts
│   │   │   ├── light.ts
│   │   │   └── rtl.ts
│   │   └── tests/
│   │       ├── Input.spec.tsx
│   │       ├── __snapshots__/
│   │       │   └── Input.spec.tsx.snap
│   │       └── server.spec.tsx
│   ├── input-number/
│   │   ├── demos/
│   │   │   ├── enUS/
│   │   │   │   ├── basic.demo.vue
│   │   │   │   ├── button-placement.demo.vue
│   │   │   │   ├── change-timing.demo.vue
│   │   │   │   ├── custom-icon.demo.vue
│   │   │   │   ├── disable-keyboard.demo.vue
│   │   │   │   ├── disabled.demo.vue
│   │   │   │   ├── event.demo.vue
│   │   │   │   ├── icon.demo.vue
│   │   │   │   ├── index.demo-entry.md
│   │   │   │   ├── loading.demo.vue
│   │   │   │   ├── min-max.demo.vue
│   │   │   │   ├── parse.demo.vue
│   │   │   │   ├── precision.demo.vue
│   │   │   │   ├── show-button.demo.vue
│   │   │   │   ├── size.demo.vue
│   │   │   │   ├── status.demo.vue
│   │   │   │   ├── step.demo.vue
│   │   │   │   └── validator.demo.vue
│   │   │   └── zhCN/
│   │   │       ├── basic.demo.vue
│   │   │       ├── button-placement.demo.vue
│   │   │       ├── change-timing.demo.vue
│   │   │       ├── custom-icon.demo.vue
│   │   │       ├── debug.demo.vue
│   │   │       ├── disable-keyboard.demo.vue
│   │   │       ├── disabled.demo.vue
│   │   │       ├── event.demo.vue
│   │   │       ├── icon.demo.vue
│   │   │       ├── index.demo-entry.md
│   │   │       ├── loading.demo.vue
│   │   │       ├── min-max.demo.vue
│   │   │       ├── parse.demo.vue
│   │   │       ├── precision-debug.demo.vue
│   │   │       ├── precision.demo.vue
│   │   │       ├── rtl-debug.demo.vue
│   │   │       ├── show-button.demo.vue
│   │   │       ├── size.demo.vue
│   │   │       ├── status.demo.vue
│   │   │       ├── step.demo.vue
│   │   │       ├── theme-debug.demo.vue
│   │   │       └── validator.demo.vue
│   │   ├── index.ts
│   │   ├── src/
│   │   │   ├── InputNumber.tsx
│   │   │   ├── interface.ts
│   │   │   ├── public-types.ts
│   │   │   ├── styles/
│   │   │   │   ├── input-number.cssr.ts
│   │   │   │   └── rtl.cssr.ts
│   │   │   └── utils.ts
│   │   ├── styles/
│   │   │   ├── dark.ts
│   │   │   ├── index.ts
│   │   │   ├── light.ts
│   │   │   └── rtl.ts
│   │   └── tests/
│   │       ├── InputNumber.spec.tsx
│   │       └── server.spec.tsx
│   ├── input-otp/
│   │   ├── demos/
│   │   │   ├── enUS/
│   │   │   │   ├── basic.demo.vue
│   │   │   │   ├── block.demo.vue
│   │   │   │   ├── form.demo.vue
│   │   │   │   ├── index.demo-entry.md
│   │   │   │   ├── mask.demo.vue
│   │   │   │   ├── pattern.demo.vue
│   │   │   │   ├── size.demo.vue
│   │   │   │   ├── status.demo.vue
│   │   │   │   └── template.demo.vue
│   │   │   └── zhCN/
│   │   │       ├── basic.demo.vue
│   │   │       ├── block.demo.vue
│   │   │       ├── form.demo.vue
│   │   │       ├── index.demo-entry.md
│   │   │       ├── mask.demo.vue
│   │   │       ├── pattern.demo.vue
│   │   │       ├── rtl-debug.demo.vue
│   │   │       ├── size.demo.vue
│   │   │       ├── status.demo.vue
│   │   │       └── template.demo.vue
│   │   ├── index.ts
│   │   ├── src/
│   │   │   ├── InputOtp.tsx
│   │   │   ├── public-types.ts
│   │   │   └── styles/
│   │   │       ├── index.cssr.ts
│   │   │       └── input-otp-rtl.cssr.ts
│   │   ├── styles/
│   │   │   ├── dark.ts
│   │   │   ├── index.ts
│   │   │   ├── light.ts
│   │   │   └── rtl.ts
│   │   └── tests/
│   │       ├── InputOtp.spec.tsx
│   │       └── server.spec.tsx
│   ├── layout/
│   │   ├── demos/
│   │   │   ├── enUS/
│   │   │   │   ├── absolute.demo.vue
│   │   │   │   ├── basic.demo.vue
│   │   │   │   ├── border.demo.vue
│   │   │   │   ├── collapse-right.demo.vue
│   │   │   │   ├── collapse.demo.vue
│   │   │   │   ├── embedded.demo.vue
│   │   │   │   ├── index.demo-entry.md
│   │   │   │   ├── inverted.demo.vue
│   │   │   │   ├── scroll-to.demo.vue
│   │   │   │   ├── scrollbar.demo.vue
│   │   │   │   ├── set-padding.demo.vue
│   │   │   │   └── show-sider-content.demo.vue
│   │   │   └── zhCN/
│   │   │       ├── absolute.demo.vue
│   │   │       ├── basic.demo.vue
│   │   │       ├── border.demo.vue
│   │   │       ├── collapse-right.demo.vue
│   │   │       ├── collapse.demo.vue
│   │   │       ├── embedded.demo.vue
│   │   │       ├── index.demo-entry.md
│   │   │       ├── inverted.demo.vue
│   │   │       ├── keep-alive-debug.demo.vue
│   │   │       ├── scroll-to.demo.vue
│   │   │       ├── scrollbar.demo.vue
│   │   │       ├── set-padding.demo.vue
│   │   │       └── show-sider-content.demo.vue
│   │   ├── index.ts
│   │   ├── src/
│   │   │   ├── Layout.tsx
│   │   │   ├── LayoutContent.tsx
│   │   │   ├── LayoutFooter.tsx
│   │   │   ├── LayoutHeader.tsx
│   │   │   ├── LayoutSider.tsx
│   │   │   ├── ToggleBar.tsx
│   │   │   ├── ToggleButton.tsx
│   │   │   ├── interface.ts
│   │   │   └── styles/
│   │   │       ├── layout-footer.cssr.ts
│   │   │       ├── layout-header.cssr.ts
│   │   │       ├── layout-sider.cssr.ts
│   │   │       └── layout.cssr.ts
│   │   ├── styles/
│   │   │   ├── dark.ts
│   │   │   ├── index.ts
│   │   │   └── light.ts
│   │   └── tests/
│   │       ├── Layout.spec.ts
│   │       ├── __snapshots__/
│   │       │   └── Layout.spec.ts.snap
│   │       └── server.spec.tsx
│   ├── legacy-grid/
│   │   ├── demos/
│   │   │   ├── enUS/
│   │   │   │   ├── basic.demo.vue
│   │   │   │   ├── gutter.demo.vue
│   │   │   │   ├── index.demo-entry.md
│   │   │   │   ├── offset.demo.vue
│   │   │   │   └── push-pull.demo.vue
│   │   │   └── zhCN/
│   │   │       ├── basic.demo.vue
│   │   │       ├── gutter.demo.vue
│   │   │       ├── index.demo-entry.md
│   │   │       ├── offset.demo.vue
│   │   │       ├── push-pull.demo.vue
│   │   │       ├── rtl-debug.demo.vue
│   │   │       └── wrap-debug.demo.vue
│   │   ├── index.ts
│   │   ├── src/
│   │   │   ├── Col.tsx
│   │   │   ├── Row.tsx
│   │   │   ├── interface.ts
│   │   │   └── styles/
│   │   │       ├── index.cssr.ts
│   │   │       └── rtl.cssr.ts
│   │   ├── styles/
│   │   │   ├── dark.ts
│   │   │   ├── index.ts
│   │   │   ├── light.ts
│   │   │   └── rtl.ts
│   │   └── tests/
│   │       ├── Grid.spec.tsx
│   │       └── server.spec.tsx
│   ├── legacy-transfer/
│   │   ├── demos/
│   │   │   ├── enUS/
│   │   │   │   ├── basic.demo.vue
│   │   │   │   ├── filterable.demo.vue
│   │   │   │   ├── index.demo-entry.md
│   │   │   │   ├── large-data.demo.vue
│   │   │   │   └── size.demo.vue
│   │   │   └── zhCN/
│   │   │       ├── basic.demo.vue
│   │   │       ├── filterable.demo.vue
│   │   │       ├── index.demo-entry.md
│   │   │       ├── large-data.demo.vue
│   │   │       └── size.demo.vue
│   │   ├── index.ts
│   │   ├── src/
│   │   │   ├── Transfer.tsx
│   │   │   ├── TransferFilter.tsx
│   │   │   ├── TransferHeader.tsx
│   │   │   ├── TransferList.tsx
│   │   │   ├── TransferListItem.tsx
│   │   │   ├── interface.ts
│   │   │   ├── styles/
│   │   │   │   └── index.cssr.ts
│   │   │   └── use-transfer-data.ts
│   │   ├── styles/
│   │   │   ├── _common.ts
│   │   │   ├── dark.ts
│   │   │   ├── index.ts
│   │   │   └── light.ts
│   │   └── tests/
│   │       ├── Transfer.spec.ts
│   │       ├── __snapshots__/
│   │       │   └── Transfer.spec.ts.snap
│   │       └── server.spec.tsx
│   ├── list/
│   │   ├── demos/
│   │   │   ├── enUS/
│   │   │   │   ├── basic.demo.vue
│   │   │   │   ├── border.demo.vue
│   │   │   │   ├── hoverable.demo.vue
│   │   │   │   └── index.demo-entry.md
│   │   │   └── zhCN/
│   │   │       ├── basic.demo.vue
│   │   │       ├── border.demo.vue
│   │   │       ├── hoverable.demo.vue
│   │   │       ├── index.demo-entry.md
│   │   │       └── rtl-debug.demo.vue
│   │   ├── index.ts
│   │   ├── src/
│   │   │   ├── List.tsx
│   │   │   ├── ListItem.tsx
│   │   │   └── styles/
│   │   │       ├── index.cssr.ts
│   │   │       └── rtl.cssr.ts
│   │   ├── styles/
│   │   │   ├── dark.ts
│   │   │   ├── index.ts
│   │   │   ├── light.ts
│   │   │   └── rtl.ts
│   │   └── tests/
│   │       ├── List.spec.ts
│   │       └── server.spec.tsx
│   ├── loading-bar/
│   │   ├── demos/
│   │   │   ├── enUS/
│   │   │   │   ├── basic.demo.vue
│   │   │   │   ├── container.demo.vue
│   │   │   │   └── index.demo-entry.md
│   │   │   └── zhCN/
│   │   │       ├── basic.demo.vue
│   │   │       ├── container.demo.vue
│   │   │       └── index.demo-entry.md
│   │   ├── index.ts
│   │   ├── src/
│   │   │   ├── LoadingBar.tsx
│   │   │   ├── LoadingBarProvider.tsx
│   │   │   ├── context.ts
│   │   │   ├── styles/
│   │   │   │   └── index.cssr.ts
│   │   │   └── use-loading-bar.ts
│   │   ├── styles/
│   │   │   ├── dark.ts
│   │   │   ├── index.ts
│   │   │   └── light.ts
│   │   └── tests/
│   │       └── LoadingBar.spec.tsx
│   ├── locales/
│   │   ├── __snapshots__/
│   │   │   └── index.spec.tsx.snap
│   │   ├── common/
│   │   │   ├── arDZ.ts
│   │   │   ├── azAZ.ts
│   │   │   ├── csCZ.ts
│   │   │   ├── daDK.ts
│   │   │   ├── deDE.ts
│   │   │   ├── enGB.ts
│   │   │   ├── enUS.ts
│   │   │   ├── eo.ts
│   │   │   ├── esAR.ts
│   │   │   ├── etEE.ts
│   │   │   ├── faIR.ts
│   │   │   ├── frFR.ts
│   │   │   ├── idID.ts
│   │   │   ├── itIT.ts
│   │   │   ├── jaJP.ts
│   │   │   ├── kmKH.ts
│   │   │   ├── koKR.ts
│   │   │   ├── nbNO.ts
│   │   │   ├── nlNL.ts
│   │   │   ├── plPL.ts
│   │   │   ├── ptBR.ts
│   │   │   ├── ruRU.ts
│   │   │   ├── skSK.ts
│   │   │   ├── svSE.ts
│   │   │   ├── thTH.ts
│   │   │   ├── trTR.ts
│   │   │   ├── ugCN.ts
│   │   │   ├── ukUA.ts
│   │   │   ├── uzUZ.ts
│   │   │   ├── viVN.ts
│   │   │   ├── zhCN.ts
│   │   │   └── zhTW.ts
│   │   ├── date/
│   │   │   ├── arDZ.ts
│   │   │   ├── azAZ.ts
│   │   │   ├── csCZ.ts
│   │   │   ├── daDK.ts
│   │   │   ├── deDE.ts
│   │   │   ├── enGB.ts
│   │   │   ├── enUS.ts
│   │   │   ├── eo.ts
│   │   │   ├── esAR.ts
│   │   │   ├── etEE.ts
│   │   │   ├── faIR.ts
│   │   │   ├── frFR.ts
│   │   │   ├── idID.ts
│   │   │   ├── itIT.ts
│   │   │   ├── jaJP.ts
│   │   │   ├── kmKH.ts
│   │   │   ├── koKR.ts
│   │   │   ├── nbNO.ts
│   │   │   ├── nlNL.ts
│   │   │   ├── plPL.ts
│   │   │   ├── ptBR.ts
│   │   │   ├── ruRU.ts
│   │   │   ├── skSK.ts
│   │   │   ├── svSE.ts
│   │   │   ├── thTH.ts
│   │   │   ├── trTR.ts
│   │   │   ├── ugCN.ts
│   │   │   ├── ukUA.ts
│   │   │   ├── uzUZ.ts
│   │   │   ├── viVN.ts
│   │   │   ├── zhCN.ts
│   │   │   └── zhTW.ts
│   │   ├── index.spec.tsx
│   │   ├── index.ts
│   │   └── utils/
│   │       └── index.ts
│   ├── log/
│   │   ├── demos/
│   │   │   ├── enUS/
│   │   │   │   ├── auto-bottom.demo.vue
│   │   │   │   ├── event.demo.vue
│   │   │   │   ├── highlight.demo.vue
│   │   │   │   ├── index.demo-entry.md
│   │   │   │   ├── loading.demo.vue
│   │   │   │   ├── scroll.demo.vue
│   │   │   │   └── size.demo.vue
│   │   │   └── zhCN/
│   │   │       ├── auto-bottom.demo.vue
│   │   │       ├── debug.demo.vue
│   │   │       ├── event.demo.vue
│   │   │       ├── highlight.demo.vue
│   │   │       ├── index.demo-entry.md
│   │   │       ├── loading.demo.vue
│   │   │       ├── scroll.demo.vue
│   │   │       └── size.demo.vue
│   │   ├── index.ts
│   │   ├── src/
│   │   │   ├── Log.tsx
│   │   │   ├── LogLine.tsx
│   │   │   ├── LogLoader.tsx
│   │   │   ├── context.ts
│   │   │   ├── public-types.ts
│   │   │   └── styles/
│   │   │       └── index.cssr.ts
│   │   ├── styles/
│   │   │   ├── dark.ts
│   │   │   ├── index.ts
│   │   │   └── light.ts
│   │   └── tests/
│   │       ├── Log.spec.tsx
│   │       └── server.spec.tsx
│   ├── marquee/
│   │   ├── demos/
│   │   │   ├── enUS/
│   │   │   │   ├── auto-fill.demo.vue
│   │   │   │   ├── basic.demo.vue
│   │   │   │   ├── image.demo.vue
│   │   │   │   └── index.demo-entry.md
│   │   │   └── zhCN/
│   │   │       ├── auto-fill.demo.vue
│   │   │       ├── basic.demo.vue
│   │   │       ├── image.demo.vue
│   │   │       └── index.demo-entry.md
│   │   ├── index.ts
│   │   ├── src/
│   │   │   ├── Marquee.tsx
│   │   │   ├── props.ts
│   │   │   ├── public-types.ts
│   │   │   └── styles/
│   │   │       └── index.cssr.ts
│   │   ├── styles/
│   │   │   ├── dark.ts
│   │   │   ├── index.ts
│   │   │   └── light.ts
│   │   └── tests/
│   │       ├── Marquee.spec.ts
│   │       └── server.spec.tsx
│   ├── mention/
│   │   ├── demos/
│   │   │   ├── enUS/
│   │   │   │   ├── async.demo.vue
│   │   │   │   ├── autosize.demo.vue
│   │   │   │   ├── basic.demo.vue
│   │   │   │   ├── custom-prefix.demo.vue
│   │   │   │   ├── form.demo.vue
│   │   │   │   ├── index.demo-entry.md
│   │   │   │   ├── manual-trigger.demo.vue
│   │   │   │   ├── render-label.demo.vue
│   │   │   │   ├── status.demo.vue
│   │   │   │   └── textarea.demo.vue
│   │   │   └── zhCN/
│   │   │       ├── async.demo.vue
│   │   │       ├── autosize.demo.vue
│   │   │       ├── basic.demo.vue
│   │   │       ├── custom-prefix.demo.vue
│   │   │       ├── form.demo.vue
│   │   │       ├── index.demo-entry.md
│   │   │       ├── manual-trigger.demo.vue
│   │   │       ├── render-label.demo.vue
│   │   │       ├── status.demo.vue
│   │   │       └── textarea.demo.vue
│   │   ├── index.ts
│   │   ├── src/
│   │   │   ├── Mention.tsx
│   │   │   ├── interface.ts
│   │   │   ├── public-types.ts
│   │   │   ├── styles/
│   │   │   │   └── index.cssr.ts
│   │   │   └── utils.ts
│   │   ├── styles/
│   │   │   ├── dark.ts
│   │   │   ├── index.ts
│   │   │   └── light.ts
│   │   └── tests/
│   │       ├── Mention.spec.ts
│   │       └── server.spec.tsx
│   ├── menu/
│   │   ├── demos/
│   │   │   ├── enUS/
│   │   │   │   ├── accordion.demo.vue
│   │   │   │   ├── collapse.demo.vue
│   │   │   │   ├── customize-field.demo.vue
│   │   │   │   ├── default-expanded-keys.demo.vue
│   │   │   │   ├── expand-selected-option.demo.vue
│   │   │   │   ├── horizontal.demo.vue
│   │   │   │   ├── indent.demo.vue
│   │   │   │   ├── index.demo-entry.md
│   │   │   │   ├── inverted.demo.vue
│   │   │   │   ├── long-label.demo.vue
│   │   │   │   ├── render-label.demo.vue
│   │   │   │   ├── router-link.demo.vue
│   │   │   │   ├── select.demo.vue
│   │   │   │   └── show.demo.vue
│   │   │   └── zhCN/
│   │   │       ├── accordion.demo.vue
│   │   │       ├── collapse.demo.vue
│   │   │       ├── customize-field.demo.vue
│   │   │       ├── debug.demo.vue
│   │   │       ├── default-expanded-keys.demo.vue
│   │   │       ├── expand-selected-option.demo.vue
│   │   │       ├── horizontal.demo.vue
│   │   │       ├── indent.demo.vue
│   │   │       ├── index.demo-entry.md
│   │   │       ├── inverted.demo.vue
│   │   │       ├── long-label.demo.vue
│   │   │       ├── render-label.demo.vue
│   │   │       ├── router-link.demo.vue
│   │   │       ├── select.demo.vue
│   │   │       ├── show-debug.demo.vue
│   │   │       └── show.demo.vue
│   │   ├── index.ts
│   │   ├── src/
│   │   │   ├── Menu.tsx
│   │   │   ├── MenuDivider.tsx
│   │   │   ├── MenuOption.tsx
│   │   │   ├── MenuOptionContent.tsx
│   │   │   ├── MenuOptionGroup.tsx
│   │   │   ├── Submenu.tsx
│   │   │   ├── context.ts
│   │   │   ├── interface.ts
│   │   │   ├── styles/
│   │   │   │   └── index.cssr.ts
│   │   │   ├── use-menu-child-props.ts
│   │   │   ├── use-menu-child.ts
│   │   │   ├── useCheckDeprecated.ts
│   │   │   └── utils.tsx
│   │   ├── styles/
│   │   │   ├── dark.ts
│   │   │   ├── index.ts
│   │   │   └── light.ts
│   │   └── tests/
│   │       ├── Menu.spec.tsx
│   │       └── server.spec.tsx
│   ├── message/
│   │   ├── demos/
│   │   │   ├── enUS/
│   │   │   │   ├── about-theme.demo.vue
│   │   │   │   ├── basic.demo.vue
│   │   │   │   ├── closable.demo.vue
│   │   │   │   ├── customize-message.demo.vue
│   │   │   │   ├── icon.demo.vue
│   │   │   │   ├── index.demo-entry.md
│   │   │   │   ├── manually-close.demo.vue
│   │   │   │   ├── modify-content.demo.vue
│   │   │   │   ├── multiple-line.demo.vue
│   │   │   │   ├── no-icon.demo.vue
│   │   │   │   ├── placement.demo.vue
│   │   │   │   └── timing.demo.vue
│   │   │   └── zhCN/
│   │   │       ├── about-theme.demo.vue
│   │   │       ├── basic.demo.vue
│   │   │       ├── closable.demo.vue
│   │   │       ├── customize-message.demo.vue
│   │   │       ├── icon.demo.vue
│   │   │       ├── index.demo-entry.md
│   │   │       ├── manually-close.demo.vue
│   │   │       ├── modify-content.demo.vue
│   │   │       ├── multiple-line.demo.vue
│   │   │       ├── no-icon.demo.vue
│   │   │       ├── placement.demo.vue
│   │   │       ├── rtl-debug.demo.vue
│   │   │       └── timing.demo.vue
│   │   ├── index.ts
│   │   ├── src/
│   │   │   ├── Message.tsx
│   │   │   ├── MessageEnvironment.tsx
│   │   │   ├── MessageProvider.tsx
│   │   │   ├── context.ts
│   │   │   ├── message-props.ts
│   │   │   ├── public-types.ts
│   │   │   ├── styles/
│   │   │   │   ├── index.cssr.ts
│   │   │   │   └── rtl.cssr.ts
│   │   │   ├── types.ts
│   │   │   └── use-message.ts
│   │   ├── styles/
│   │   │   ├── _common.ts
│   │   │   ├── dark.ts
│   │   │   ├── index.ts
│   │   │   ├── light.ts
│   │   │   └── rtl.ts
│   │   └── tests/
│   │       ├── Message.spec.tsx
│   │       └── server.spec.tsx
│   ├── modal/
│   │   ├── demos/
│   │   │   ├── enUS/
│   │   │   │   ├── basic.demo.vue
│   │   │   │   ├── content-scrollable.demo.vue
│   │   │   │   ├── controlled.demo.vue
│   │   │   │   ├── custom-position.demo.vue
│   │   │   │   ├── draggable.demo.vue
│   │   │   │   ├── index.demo-entry.md
│   │   │   │   ├── mask-closable.demo.vue
│   │   │   │   ├── mask-visible.demo.vue
│   │   │   │   ├── preset-card.demo.vue
│   │   │   │   ├── preset-confirm-slot.demo.vue
│   │   │   │   ├── preset-confirm.demo.vue
│   │   │   │   ├── reactive.demo.vue
│   │   │   │   └── transform-origin.demo.vue
│   │   │   └── zhCN/
│   │   │       ├── a11y-debug.demo.vue
│   │   │       ├── basic.demo.vue
│   │   │       ├── content-scrollable.demo.vue
│   │   │       ├── controlled.demo.vue
│   │   │       ├── custom-position.demo.vue
│   │   │       ├── dark-1-debug.demo.vue
│   │   │       ├── dark-10-debug.demo.vue
│   │   │       ├── dark-2-debug.demo.vue
│   │   │       ├── dark-3-debug.demo.vue
│   │   │       ├── dark-4-debug.demo.vue
│   │   │       ├── dark-5-debug.demo.vue
│   │   │       ├── dark-6-debug.demo.vue
│   │   │       ├── dark-7-debug.demo.vue
│   │   │       ├── dark-8-debug.demo.vue
│   │   │       ├── dark-9-debug.demo.vue
│   │   │       ├── draggable.demo.vue
│   │   │       ├── drawer-debug.demo.vue
│   │   │       ├── index.demo-entry.md
│   │   │       ├── mask-click-debug.demo.vue
│   │   │       ├── mask-closable.demo.vue
│   │   │       ├── mask-visible.demo.vue
│   │   │       ├── nested-debug.demo.vue
│   │   │       ├── preset-card.demo.vue
│   │   │       ├── preset-confirm-slot.demo.vue
│   │   │       ├── preset-confirm.demo.vue
│   │   │       ├── raw-debug.demo.vue
│   │   │       ├── reactive.demo.vue
│   │   │       └── transform-origin.demo.vue
│   │   ├── index.ts
│   │   ├── src/
│   │   │   ├── BodyWrapper.tsx
│   │   │   ├── Modal.tsx
│   │   │   ├── ModalEnvironment.tsx
│   │   │   ├── ModalProvider.ts
│   │   │   ├── composables.ts
│   │   │   ├── context.ts
│   │   │   ├── interface.ts
│   │   │   ├── presetProps.ts
│   │   │   └── styles/
│   │   │       └── index.cssr.ts
│   │   ├── styles/
│   │   │   ├── dark.ts
│   │   │   ├── index.ts
│   │   │   └── light.ts
│   │   └── tests/
│   │       ├── Modal.spec.tsx
│   │       └── server.spec.tsx
│   ├── notification/
│   │   ├── demos/
│   │   │   ├── enUS/
│   │   │   │   ├── basic.demo.vue
│   │   │   │   ├── change-content.demo.vue
│   │   │   │   ├── closable.demo.vue
│   │   │   │   ├── duration.demo.vue
│   │   │   │   ├── index.demo-entry.md
│   │   │   │   ├── max.demo.vue
│   │   │   │   ├── placement.demo.vue
│   │   │   │   ├── scrollable.demo.vue
│   │   │   │   └── type.demo.vue
│   │   │   └── zhCN/
│   │   │       ├── basic.demo.vue
│   │   │       ├── change-content.demo.vue
│   │   │       ├── closable.demo.vue
│   │   │       ├── duration.demo.vue
│   │   │       ├── error-debug.demo.vue
│   │   │       ├── index.demo-entry.md
│   │   │       ├── max.demo.vue
│   │   │       ├── placement.demo.vue
│   │   │       ├── rtl-debug.demo.vue
│   │   │       ├── scrollable.demo.vue
│   │   │       └── type.demo.vue
│   │   ├── index.ts
│   │   ├── src/
│   │   │   ├── Notification.tsx
│   │   │   ├── NotificationContainer.tsx
│   │   │   ├── NotificationEnvironment.tsx
│   │   │   ├── NotificationProvider.tsx
│   │   │   ├── context.ts
│   │   │   ├── styles/
│   │   │   │   ├── index.cssr.ts
│   │   │   │   └── rtl.cssr.ts
│   │   │   └── use-notification.ts
│   │   ├── styles/
│   │   │   ├── _common.ts
│   │   │   ├── dark.ts
│   │   │   ├── index.ts
│   │   │   ├── light.ts
│   │   │   └── rtl.ts
│   │   └── tests/
│   │       └── Notification.spec.tsx
│   ├── number-animation/
│   │   ├── demos/
│   │   │   ├── enUS/
│   │   │   │   ├── basic.demo.vue
│   │   │   │   ├── finish.demo.vue
│   │   │   │   ├── index.demo-entry.md
│   │   │   │   ├── intl.demo.vue
│   │   │   │   ├── precision.demo.vue
│   │   │   │   └── separator.demo.vue
│   │   │   └── zhCN/
│   │   │       ├── basic.demo.vue
│   │   │       ├── finish.demo.vue
│   │   │       ├── index.demo-entry.md
│   │   │       ├── intl.demo.vue
│   │   │       ├── precision.demo.vue
│   │   │       └── separator.demo.vue
│   │   ├── index.ts
│   │   ├── src/
│   │   │   ├── NumberAnimation.tsx
│   │   │   └── utils.ts
│   │   └── tests/
│   │       ├── NumericAnimation.spec.ts
│   │       └── server.spec.tsx
│   ├── page-header/
│   │   ├── demos/
│   │   │   ├── enUS/
│   │   │   │   ├── basic.demo.vue
│   │   │   │   └── index.demo-entry.md
│   │   │   └── zhCN/
│   │   │       ├── basic.demo.vue
│   │   │       ├── index.demo-entry.md
│   │   │       └── rtl-debug.demo.vue
│   │   ├── index.ts
│   │   ├── src/
│   │   │   ├── PageHeader.tsx
│   │   │   └── styles/
│   │   │       ├── index.cssr.ts
│   │   │       └── rtl.cssr.ts
│   │   ├── styles/
│   │   │   ├── _common.ts
│   │   │   ├── dark.ts
│   │   │   ├── index.ts
│   │   │   ├── light.ts
│   │   │   └── rtl.ts
│   │   └── tests/
│   │       ├── PageHeader.spec.tsx
│   │       └── server.spec.tsx
│   ├── pagination/
│   │   ├── demos/
│   │   │   ├── enUS/
│   │   │   │   ├── basic.demo.vue
│   │   │   │   ├── disabled.demo.vue
│   │   │   │   ├── index.demo-entry.md
│   │   │   │   ├── item-count.demo.vue
│   │   │   │   ├── page-size-option.demo.vue
│   │   │   │   ├── prefix.demo.vue
│   │   │   │   ├── prev.demo.vue
│   │   │   │   ├── quick-jumper.demo.vue
│   │   │   │   ├── simple.demo.vue
│   │   │   │   ├── size-picker.demo.vue
│   │   │   │   ├── size.demo.vue
│   │   │   │   └── slot.demo.vue
│   │   │   └── zhCN/
│   │   │       ├── basic.demo.vue
│   │   │       ├── disabled.demo.vue
│   │   │       ├── display-order.demo.vue
│   │   │       ├── index.demo-entry.md
│   │   │       ├── item-count.demo.vue
│   │   │       ├── page-size-option.demo.vue
│   │   │       ├── prefix.demo.vue
│   │   │       ├── prev.demo.vue
│   │   │       ├── quick-jumper.demo.vue
│   │   │       ├── rtl-debug.demo.vue
│   │   │       ├── simple.demo.vue
│   │   │       ├── size-picker.demo.vue
│   │   │       ├── size.demo.vue
│   │   │       └── slot.demo.vue
│   │   ├── index.ts
│   │   ├── src/
│   │   │   ├── Pagination.tsx
│   │   │   ├── interface.ts
│   │   │   ├── public-types.ts
│   │   │   ├── styles/
│   │   │   │   ├── index.cssr.ts
│   │   │   │   └── rtl.cssr.ts
│   │   │   └── utils.ts
│   │   ├── styles/
│   │   │   ├── _common.ts
│   │   │   ├── dark.ts
│   │   │   ├── index.ts
│   │   │   ├── light.ts
│   │   │   └── rtl.ts
│   │   └── tests/
│   │       ├── Pagination.spec.tsx
│   │       ├── server.spec.tsx
│   │       └── utils.spec.ts
│   ├── popconfirm/
│   │   ├── demos/
│   │   │   ├── enUS/
│   │   │   │   ├── actions.demo.vue
│   │   │   │   ├── basic.demo.vue
│   │   │   │   ├── custom-action.demo.vue
│   │   │   │   ├── custom-icon.demo.vue
│   │   │   │   ├── event.demo.vue
│   │   │   │   ├── index.demo-entry.md
│   │   │   │   └── no-icon.demo.vue
│   │   │   └── zhCN/
│   │   │       ├── actions.demo.vue
│   │   │       ├── basic.demo.vue
│   │   │       ├── custom-action.demo.vue
│   │   │       ├── custom-icon.demo.vue
│   │   │       ├── event.demo.vue
│   │   │       ├── index.demo-entry.md
│   │   │       └── no-icon.demo.vue
│   │   ├── index.ts
│   │   ├── src/
│   │   │   ├── Popconfirm.tsx
│   │   │   ├── PopconfirmPanel.tsx
│   │   │   ├── interface.ts
│   │   │   └── styles/
│   │   │       └── index.cssr.ts
│   │   ├── styles/
│   │   │   ├── _common.ts
│   │   │   ├── dark.ts
│   │   │   ├── index.ts
│   │   │   └── light.ts
│   │   └── tests/
│   │       ├── Popconfirm.spec.ts
│   │       └── server.spec.tsx
│   ├── popover/
│   │   ├── demos/
│   │   │   ├── enUS/
│   │   │   │   ├── basic.demo.vue
│   │   │   │   ├── delay.demo.vue
│   │   │   │   ├── event.demo.vue
│   │   │   │   ├── flip.demo.vue
│   │   │   │   ├── index.demo-entry.md
│   │   │   │   ├── manual-position.demo.vue
│   │   │   │   ├── no-arrow.demo.vue
│   │   │   │   ├── placement.demo.vue
│   │   │   │   ├── raw-content.demo.vue
│   │   │   │   ├── slots.demo.vue
│   │   │   │   ├── style.demo.vue
│   │   │   │   ├── trigger-width.demo.vue
│   │   │   │   └── trigger.demo.vue
│   │   │   └── zhCN/
│   │   │       ├── basic.demo.vue
│   │   │       ├── center-arrow-debug.demo.vue
│   │   │       ├── delay.demo.vue
│   │   │       ├── event.demo.vue
│   │   │       ├── flip.demo.vue
│   │   │       ├── hoist-debug.demo.vue
│   │   │       ├── index.demo-entry.md
│   │   │       ├── manual-position.demo.vue
│   │   │       ├── nested-debug.demo.vue
│   │   │       ├── nested2-debug.demo.vue
│   │   │       ├── nested3-debug.demo.vue
│   │   │       ├── no-arrow.demo.vue
│   │   │       ├── placement.demo.vue
│   │   │       ├── raw-content.demo.vue
│   │   │       ├── rtl-debug.demo.vue
│   │   │       ├── slots.demo.vue
│   │   │       ├── style.demo.vue
│   │   │       ├── trigger-width.demo.vue
│   │   │       ├── trigger.demo.vue
│   │   │       ├── width-debug.demo.vue
│   │   │       └── zindex-debug.demo.vue
│   │   ├── index.ts
│   │   ├── src/
│   │   │   ├── Popover.tsx
│   │   │   ├── PopoverBody.tsx
│   │   │   ├── interface.ts
│   │   │   └── styles/
│   │   │       ├── index.cssr.ts
│   │   │       └── rtl.cssr.ts
│   │   ├── styles/
│   │   │   ├── _common.ts
│   │   │   ├── dark.ts
│   │   │   ├── index.ts
│   │   │   ├── light.ts
│   │   │   └── rtl.ts
│   │   └── tests/
│   │       ├── Popover.spec.tsx
│   │       └── server.spec.tsx
│   ├── popselect/
│   │   ├── demos/
│   │   │   ├── enUS/
│   │   │   │   ├── basic.demo.vue
│   │   │   │   ├── cancelable.demo.vue
│   │   │   │   ├── index.demo-entry.md
│   │   │   │   ├── multiple.demo.vue
│   │   │   │   ├── scrollable.demo.vue
│   │   │   │   ├── size.demo.vue
│   │   │   │   └── slot.demo.vue
│   │   │   └── zhCN/
│   │   │       ├── basic.demo.vue
│   │   │       ├── cancelable.demo.vue
│   │   │       ├── index.demo-entry.md
│   │   │       ├── multiple.demo.vue
│   │   │       ├── scrollable.demo.vue
│   │   │       ├── size.demo.vue
│   │   │       └── slot.demo.vue
│   │   ├── index.ts
│   │   ├── src/
│   │   │   ├── Popselect.tsx
│   │   │   ├── PopselectPanel.tsx
│   │   │   ├── interface.ts
│   │   │   ├── public-types.ts
│   │   │   └── styles/
│   │   │       └── index.cssr.ts
│   │   ├── styles/
│   │   │   ├── dark.ts
│   │   │   ├── index.ts
│   │   │   └── light.ts
│   │   └── tests/
│   │       ├── Popselect.spec.ts
│   │       └── server.spec.tsx
│   ├── preset.ts
│   ├── progress/
│   │   ├── demos/
│   │   │   ├── enUS/
│   │   │   │   ├── circle-offset.demo.vue
│   │   │   │   ├── circle.demo.vue
│   │   │   │   ├── color.demo.vue
│   │   │   │   ├── custom-indicator.demo.vue
│   │   │   │   ├── dashboard.demo.vue
│   │   │   │   ├── gradient.demo.vue
│   │   │   │   ├── height.demo.vue
│   │   │   │   ├── index.demo-entry.md
│   │   │   │   ├── line.demo.vue
│   │   │   │   ├── multiple-circle.demo.vue
│   │   │   │   ├── no-indicator.demo.vue
│   │   │   │   └── processing.demo.vue
│   │   │   └── zhCN/
│   │   │       ├── circle-offset.demo.vue
│   │   │       ├── circle.demo.vue
│   │   │       ├── color.demo.vue
│   │   │       ├── custom-indicator.demo.vue
│   │   │       ├── dashboard.demo.vue
│   │   │       ├── gradient.demo.vue
│   │   │       ├── height.demo.vue
│   │   │       ├── index.demo-entry.md
│   │   │       ├── line.demo.vue
│   │   │       ├── multiple-circle.demo.vue
│   │   │       ├── no-indicator.demo.vue
│   │   │       └── processing.demo.vue
│   │   ├── index.ts
│   │   ├── src/
│   │   │   ├── Circle.tsx
│   │   │   ├── Line.tsx
│   │   │   ├── MultipleCircle.tsx
│   │   │   ├── Progress.tsx
│   │   │   ├── public-types.ts
│   │   │   └── styles/
│   │   │       └── index.cssr.ts
│   │   ├── styles/
│   │   │   ├── dark.ts
│   │   │   ├── index.ts
│   │   │   └── light.ts
│   │   └── tests/
│   │       ├── Progress.spec.ts
│   │       └── server.spec.tsx
│   ├── qr-code/
│   │   ├── demos/
│   │   │   ├── enUS/
│   │   │   │   ├── basic.demo.vue
│   │   │   │   ├── color.demo.vue
│   │   │   │   ├── download.demo.vue
│   │   │   │   ├── error-correction.demo.vue
│   │   │   │   ├── icon.demo.vue
│   │   │   │   ├── index.demo-entry.md
│   │   │   │   ├── size.demo.vue
│   │   │   │   └── type.demo.vue
│   │   │   └── zhCN/
│   │   │       ├── basic.demo.vue
│   │   │       ├── color.demo.vue
│   │   │       ├── download.demo.vue
│   │   │       ├── error-correction.demo.vue
│   │   │       ├── icon.demo.vue
│   │   │       ├── index.demo-entry.md
│   │   │       ├── size.demo.vue
│   │   │       └── type.demo.vue
│   │   ├── index.ts
│   │   ├── src/
│   │   │   ├── QrCode.tsx
│   │   │   ├── qrcodegen.ts
│   │   │   └── styles/
│   │   │       └── index.cssr.ts
│   │   └── styles/
│   │       ├── dark.ts
│   │       ├── index.ts
│   │       └── light.ts
│   ├── radio/
│   │   ├── demos/
│   │   │   ├── enUS/
│   │   │   │   ├── basic.demo.vue
│   │   │   │   ├── button-group.demo.vue
│   │   │   │   ├── group.demo.vue
│   │   │   │   ├── index.demo-entry.md
│   │   │   │   └── size.demo.vue
│   │   │   └── zhCN/
│   │   │       ├── basic.demo.vue
│   │   │       ├── button-group.demo.vue
│   │   │       ├── group.demo.vue
│   │   │       ├── index.demo-entry.md
│   │   │       ├── radio-focus-debug.demo.vue
│   │   │       ├── rtl-debug.demo.vue
│   │   │       ├── size.demo.vue
│   │   │       ├── tooltip-debug.demo.vue
│   │   │       └── uncontrolled-debug.demo.vue
│   │   ├── index.ts
│   │   ├── src/
│   │   │   ├── Radio.tsx
│   │   │   ├── RadioButton.tsx
│   │   │   ├── RadioGroup.tsx
│   │   │   ├── interface.ts
│   │   │   ├── public-types.ts
│   │   │   ├── styles/
│   │   │   │   ├── radio-group.cssr.ts
│   │   │   │   ├── radio.cssr.ts
│   │   │   │   └── rtl.cssr.ts
│   │   │   └── use-radio.ts
│   │   ├── styles/
│   │   │   ├── _common.ts
│   │   │   ├── dark.ts
│   │   │   ├── index.ts
│   │   │   ├── light.ts
│   │   │   └── rtl.ts
│   │   └── tests/
│   │       ├── Radio.spec.ts
│   │       ├── __snapshots__/
│   │       │   └── Radio.spec.ts.snap
│   │       └── server.spec.tsx
│   ├── rate/
│   │   ├── demos/
│   │   │   ├── enUS/
│   │   │   │   ├── allow-half.demo.vue
│   │   │   │   ├── basic.demo.vue
│   │   │   │   ├── clearable.demo.vue
│   │   │   │   ├── color.demo.vue
│   │   │   │   ├── icon.demo.vue
│   │   │   │   ├── index.demo-entry.md
│   │   │   │   ├── readonly.demo.vue
│   │   │   │   └── size.demo.vue
│   │   │   └── zhCN/
│   │   │       ├── allow-half.demo.vue
│   │   │       ├── basic.demo.vue
│   │   │       ├── clearable.demo.vue
│   │   │       ├── color.demo.vue
│   │   │       ├── icon.demo.vue
│   │   │       ├── index.demo-entry.md
│   │   │       ├── readonly.demo.vue
│   │   │       └── size.demo.vue
│   │   ├── index.ts
│   │   ├── src/
│   │   │   ├── Rate.tsx
│   │   │   ├── StarIcon.tsx
│   │   │   ├── interface.ts
│   │   │   ├── public-types.ts
│   │   │   └── styles/
│   │   │       └── index.cssr.ts
│   │   ├── styles/
│   │   │   ├── dark.ts
│   │   │   ├── index.ts
│   │   │   └── light.ts
│   │   └── tests/
│   │       ├── Rate.spec.ts
│   │       ├── __snapshots__/
│   │       │   └── Rate.spec.ts.snap
│   │       └── server.spec.tsx
│   ├── result/
│   │   ├── demos/
│   │   │   ├── enUS/
│   │   │   │   ├── custom.demo.vue
│   │   │   │   ├── error.demo.vue
│   │   │   │   ├── index.demo-entry.md
│   │   │   │   ├── info.demo.vue
│   │   │   │   ├── s-403.demo.vue
│   │   │   │   ├── s-404.demo.vue
│   │   │   │   ├── s-418.demo.vue
│   │   │   │   ├── s-500.demo.vue
│   │   │   │   ├── size.demo.vue
│   │   │   │   ├── success.demo.vue
│   │   │   │   └── warning.demo.vue
│   │   │   └── zhCN/
│   │   │       ├── custom.demo.vue
│   │   │       ├── error.demo.vue
│   │   │       ├── index.demo-entry.md
│   │   │       ├── info.demo.vue
│   │   │       ├── s-403.demo.vue
│   │   │       ├── s-404.demo.vue
│   │   │       ├── s-418.demo.vue
│   │   │       ├── s-500.demo.vue
│   │   │       ├── size.demo.vue
│   │   │       ├── success.demo.vue
│   │   │       └── warning.demo.vue
│   │   ├── index.ts
│   │   ├── src/
│   │   │   ├── 403.tsx
│   │   │   ├── 404.tsx
│   │   │   ├── 418.tsx
│   │   │   ├── 500.tsx
│   │   │   ├── Result.tsx
│   │   │   ├── public-types.ts
│   │   │   └── styles/
│   │   │       └── index.cssr.ts
│   │   ├── styles/
│   │   │   ├── _common.ts
│   │   │   ├── dark.ts
│   │   │   ├── index.ts
│   │   │   └── light.ts
│   │   └── tests/
│   │       ├── Result.spec.ts
│   │       ├── __snapshots__/
│   │       │   └── Result.spec.ts.snap
│   │       └── server.spec.tsx
│   ├── scrollbar/
│   │   ├── demos/
│   │   │   ├── enUS/
│   │   │   │   ├── basic.demo.vue
│   │   │   │   ├── custom.demo.vue
│   │   │   │   ├── index.demo-entry.md
│   │   │   │   ├── no-sync.demo.vue
│   │   │   │   ├── placement.demo.vue
│   │   │   │   ├── trigger.demo.vue
│   │   │   │   └── x.demo.vue
│   │   │   └── zhCN/
│   │   │       ├── basic.demo.vue
│   │   │       ├── custom.demo.vue
│   │   │       ├── index.demo-entry.md
│   │   │       ├── no-sync.demo.vue
│   │   │       ├── placement.demo.vue
│   │   │       ├── rtl-debug.demo.vue
│   │   │       ├── trigger.demo.vue
│   │   │       └── x.demo.vue
│   │   ├── index.ts
│   │   ├── src/
│   │   │   └── Scrollbar.tsx
│   │   └── tests/
│   │       ├── Scrollbar.spec.ts
│   │       └── server.spec.tsx
│   ├── select/
│   │   ├── demos/
│   │   │   ├── enUS/
│   │   │   │   ├── action.demo.vue
│   │   │   │   ├── add-tooltip.demo.vue
│   │   │   │   ├── basic.demo.vue
│   │   │   │   ├── clearable.demo.vue
│   │   │   │   ├── custom-field.demo.vue
│   │   │   │   ├── custom-option.demo.vue
│   │   │   │   ├── custom-suffix.demo.vue
│   │   │   │   ├── events.demo.vue
│   │   │   │   ├── fallback-option.demo.vue
│   │   │   │   ├── filterable.demo.vue
│   │   │   │   ├── focus.demo.vue
│   │   │   │   ├── group.demo.vue
│   │   │   │   ├── index.demo-entry.md
│   │   │   │   ├── many-options.demo.vue
│   │   │   │   ├── max-tag-count.demo.vue
│   │   │   │   ├── menu-width.demo.vue
│   │   │   │   ├── multiple.demo.vue
│   │   │   │   ├── remote-multiple.demo.vue
│   │   │   │   ├── remote.demo.vue
│   │   │   │   ├── render-person.demo.vue
│   │   │   │   ├── render-tag.demo.vue
│   │   │   │   ├── scroll-event.demo.vue
│   │   │   │   ├── size.demo.vue
│   │   │   │   ├── status.demo.vue
│   │   │   │   ├── tag-input.demo.vue
│   │   │   │   └── tag.demo.vue
│   │   │   └── zhCN/
│   │   │       ├── action.demo.vue
│   │   │       ├── add-tooltip.demo.vue
│   │   │       ├── basic.demo.vue
│   │   │       ├── clearable.demo.vue
│   │   │       ├── create-debug.demo.vue
│   │   │       ├── custom-field.demo.vue
│   │   │       ├── custom-option.demo.vue
│   │   │       ├── custom-suffix.demo.vue
│   │   │       ├── empty-debug.demo.vue
│   │   │       ├── events.demo.vue
│   │   │       ├── fallback-option.demo.vue
│   │   │       ├── filterable-debug.demo.vue
│   │   │       ├── filterable.demo.vue
│   │   │       ├── focus.demo.vue
│   │   │       ├── fullscreen-debug.demo.vue
│   │   │       ├── group.demo.vue
│   │   │       ├── index.demo-entry.md
│   │   │       ├── many-options.demo.vue
│   │   │       ├── max-tag-count.demo.vue
│   │   │       ├── menu-debug.demo.vue
│   │   │       ├── menu-width.demo.vue
│   │   │       ├── multiple.demo.vue
│   │   │       ├── options-change-debug.demo.vue
│   │   │       ├── placeholder-debug.demo.vue
│   │   │       ├── remote-multiple.demo.vue
│   │   │       ├── remote.demo.vue
│   │   │       ├── render-debug.demo.vue
│   │   │       ├── render-person.demo.vue
│   │   │       ├── render-tag.demo.vue
│   │   │       ├── rtl-debug.demo.vue
│   │   │       ├── scroll-event.demo.vue
│   │   │       ├── size.demo.vue
│   │   │       ├── spin-debug.demo.vue
│   │   │       ├── status.demo.vue
│   │   │       ├── tag-input.demo.vue
│   │   │       └── tag.demo.vue
│   │   ├── index.ts
│   │   ├── src/
│   │   │   ├── Select.tsx
│   │   │   ├── interface.ts
│   │   │   ├── public-types.ts
│   │   │   ├── styles/
│   │   │   │   └── index.cssr.ts
│   │   │   └── utils.ts
│   │   ├── styles/
│   │   │   ├── dark.ts
│   │   │   ├── index.ts
│   │   │   ├── light.ts
│   │   │   └── rtl.ts
│   │   └── tests/
│   │       ├── Select.spec.tsx
│   │       ├── __snapshots__/
│   │       │   └── Select.spec.tsx.snap
│   │       └── server.spec.tsx
│   ├── shims-vue.d.ts
│   ├── skeleton/
│   │   ├── demos/
│   │   │   ├── enUS/
│   │   │   │   ├── basic.demo.vue
│   │   │   │   ├── box.demo.vue
│   │   │   │   ├── index.demo-entry.md
│   │   │   │   └── size.demo.vue
│   │   │   └── zhCN/
│   │   │       ├── basic.demo.vue
│   │   │       ├── box.demo.vue
│   │   │       ├── index.demo-entry.md
│   │   │       └── size.demo.vue
│   │   ├── index.ts
│   │   ├── src/
│   │   │   ├── Skeleton.tsx
│   │   │   ├── bug.md
│   │   │   ├── public-types.ts
│   │   │   └── styles/
│   │   │       └── index.cssr.ts
│   │   ├── styles/
│   │   │   ├── dark.ts
│   │   │   ├── index.ts
│   │   │   └── light.ts
│   │   └── tests/
│   │       ├── Skeleton.spec.tsx
│   │       ├── __snapshots__/
│   │       │   └── Skeleton.spec.tsx.snap
│   │       └── server.spec.tsx
│   ├── slider/
│   │   ├── demos/
│   │   │   ├── enUS/
│   │   │   │   ├── basic.demo.vue
│   │   │   │   ├── custom-marks.demo.vue
│   │   │   │   ├── custom-thumb.demo.vue
│   │   │   │   ├── disable-tooltip.demo.vue
│   │   │   │   ├── disabled.demo.vue
│   │   │   │   ├── format.demo.vue
│   │   │   │   ├── index.demo-entry.md
│   │   │   │   ├── mark.demo.vue
│   │   │   │   ├── multiple-debug.demo.vue
│   │   │   │   ├── range.demo.vue
│   │   │   │   ├── restrict-selectable-values.demo.vue
│   │   │   │   ├── reverse.demo.vue
│   │   │   │   ├── show-tooltip.demo.vue
│   │   │   │   └── vertical.demo.vue
│   │   │   └── zhCN/
│   │   │       ├── basic.demo.vue
│   │   │       ├── custom-marks.demo.vue
│   │   │       ├── custom-thumb.demo.vue
│   │   │       ├── disable-tooltip.demo.vue
│   │   │       ├── disabled.demo.vue
│   │   │       ├── format.demo.vue
│   │   │       ├── index.demo-entry.md
│   │   │       ├── keyboard-debug.demo.vue
│   │   │       ├── mark.demo.vue
│   │   │       ├── multiple-debug.demo.vue
│   │   │       ├── range.demo.vue
│   │   │       ├── restrict-selectable-values.demo.vue
│   │   │       ├── reverse.demo.vue
│   │   │       ├── show-tooltip.demo.vue
│   │   │       └── vertical.demo.vue
│   │   ├── index.ts
│   │   ├── src/
│   │   │   ├── Slider.tsx
│   │   │   ├── interface.ts
│   │   │   ├── styles/
│   │   │   │   └── index.cssr.ts
│   │   │   └── utils.ts
│   │   ├── styles/
│   │   │   ├── _common.ts
│   │   │   ├── dark.ts
│   │   │   ├── index.ts
│   │   │   └── light.ts
│   │   └── tests/
│   │       ├── Slider.spec.ts
│   │       └── server.spec.tsx
│   ├── space/
│   │   ├── demos/
│   │   │   ├── enUS/
│   │   │   │   ├── basic.demo.vue
│   │   │   │   ├── center.demo.vue
│   │   │   │   ├── from-end.demo.vue
│   │   │   │   ├── index.demo-entry.md
│   │   │   │   ├── reverse.demo.vue
│   │   │   │   ├── space-around.demo.vue
│   │   │   │   ├── space-between.demo.vue
│   │   │   │   └── vertical.demo.vue
│   │   │   └── zhCN/
│   │   │       ├── basic.demo.vue
│   │   │       ├── center.demo.vue
│   │   │       ├── from-end.demo.vue
│   │   │       ├── grid-debug.demo.vue
│   │   │       ├── index.demo-entry.md
│   │   │       ├── reverse.demo.vue
│   │   │       ├── rtl-debug.demo.vue
│   │   │       ├── space-around.demo.vue
│   │   │       ├── space-between.demo.vue
│   │   │       └── vertical.demo.vue
│   │   ├── index.ts
│   │   ├── src/
│   │   │   ├── Space.tsx
│   │   │   ├── public-types.ts
│   │   │   ├── styles/
│   │   │   │   └── rtl.cssr.ts
│   │   │   └── utils.ts
│   │   ├── styles/
│   │   │   ├── _common.ts
│   │   │   ├── dark.ts
│   │   │   ├── index.ts
│   │   │   ├── light.ts
│   │   │   └── rtl.ts
│   │   └── tests/
│   │       ├── Space.spec.tsx
│   │       ├── __snapshots__/
│   │       │   └── Space.spec.tsx.snap
│   │       └── server.spec.tsx
│   ├── spin/
│   │   ├── demos/
│   │   │   ├── enUS/
│   │   │   │   ├── basic.demo.vue
│   │   │   │   ├── customize-icon.demo.vue
│   │   │   │   ├── delay.demo.vue
│   │   │   │   ├── description.demo.vue
│   │   │   │   ├── index.demo-entry.md
│   │   │   │   └── wrap.demo.vue
│   │   │   └── zhCN/
│   │   │       ├── basic.demo.vue
│   │   │       ├── blocking-debug.demo.vue
│   │   │       ├── customize-icon.demo.vue
│   │   │       ├── delay.demo.vue
│   │   │       ├── description.demo.vue
│   │   │       ├── index.demo-entry.md
│   │   │       └── wrap.demo.vue
│   │   ├── index.ts
│   │   ├── src/
│   │   │   ├── Spin.tsx
│   │   │   └── styles/
│   │   │       └── index.cssr.ts
│   │   ├── styles/
│   │   │   ├── dark.ts
│   │   │   ├── index.ts
│   │   │   └── light.ts
│   │   └── tests/
│   │       ├── Spin.spec.ts
│   │       ├── __snapshots__/
│   │       │   └── Spin.spec.ts.snap
│   │       └── server.spec.tsx
│   ├── split/
│   │   ├── demos/
│   │   │   ├── enUS/
│   │   │   │   ├── basic.demo.vue
│   │   │   │   ├── controlled.demo.vue
│   │   │   │   ├── event.demo.vue
│   │   │   │   ├── index.demo-entry.md
│   │   │   │   ├── nest.demo.vue
│   │   │   │   ├── slot.demo.vue
│   │   │   │   └── vertical.demo.vue
│   │   │   └── zhCN/
│   │   │       ├── basic.demo.vue
│   │   │       ├── controlled.demo.vue
│   │   │       ├── event.demo.vue
│   │   │       ├── index.demo-entry.md
│   │   │       ├── nest.demo.vue
│   │   │       ├── pixel-value.demo.vue
│   │   │       ├── slot.demo.vue
│   │   │       └── vertical.demo.vue
│   │   ├── index.ts
│   │   ├── src/
│   │   │   ├── Split.tsx
│   │   │   ├── styles/
│   │   │   │   └── index.cssr.ts
│   │   │   └── types.ts
│   │   └── styles/
│   │       ├── dark.ts
│   │       ├── index.ts
│   │       └── light.ts
│   ├── statistic/
│   │   ├── demos/
│   │   │   ├── enUS/
│   │   │   │   ├── basic.demo.vue
│   │   │   │   └── index.demo-entry.md
│   │   │   └── zhCN/
│   │   │       ├── basic.demo.vue
│   │   │       ├── index.demo-entry.md
│   │   │       └── rtl-debug.demo.vue
│   │   ├── index.ts
│   │   ├── src/
│   │   │   ├── Statistic.tsx
│   │   │   └── styles/
│   │   │       ├── index.cssr.ts
│   │   │       └── rtl.cssr.ts
│   │   ├── styles/
│   │   │   ├── dark.ts
│   │   │   ├── index.ts
│   │   │   ├── light.ts
│   │   │   └── rtl.ts
│   │   └── tests/
│   │       ├── Statistic.spec.ts
│   │       └── server.spec.tsx
│   ├── steps/
│   │   ├── demos/
│   │   │   ├── enUS/
│   │   │   │   ├── basic.demo.vue
│   │   │   │   ├── click.demo.vue
│   │   │   │   ├── content-placement.demo.vue
│   │   │   │   ├── content.demo.vue
│   │   │   │   ├── custom-icon.demo.vue
│   │   │   │   ├── index.demo-entry.md
│   │   │   │   ├── size.demo.vue
│   │   │   │   └── vertical.demo.vue
│   │   │   └── zhCN/
│   │   │       ├── basic.demo.vue
│   │   │       ├── click.demo.vue
│   │   │       ├── content-placement.demo.vue
│   │   │       ├── content.demo.vue
│   │   │       ├── custom-icon.demo.vue
│   │   │       ├── index.demo-entry.md
│   │   │       ├── rtl-debug.demo.vue
│   │   │       ├── size.demo.vue
│   │   │       ├── vertical-debug.demo.vue
│   │   │       └── vertical.demo.vue
│   │   ├── index.ts
│   │   ├── src/
│   │   │   ├── Step.tsx
│   │   │   ├── Steps.tsx
│   │   │   └── styles/
│   │   │       ├── index.cssr.ts
│   │   │       └── rtl.cssr.ts
│   │   ├── styles/
│   │   │   ├── _common.ts
│   │   │   ├── dark.ts
│   │   │   ├── index.ts
│   │   │   ├── light.ts
│   │   │   └── rtl.ts
│   │   └── tests/
│   │       ├── Steps.spec.ts
│   │       └── server.spec.tsx
│   ├── styles.ts
│   ├── switch/
│   │   ├── demos/
│   │   │   ├── enUS/
│   │   │   │   ├── basic.demo.vue
│   │   │   │   ├── color.demo.vue
│   │   │   │   ├── content.demo.vue
│   │   │   │   ├── customize-value.demo.vue
│   │   │   │   ├── event.demo.vue
│   │   │   │   ├── icon.demo.vue
│   │   │   │   ├── index.demo-entry.md
│   │   │   │   ├── loading.demo.vue
│   │   │   │   ├── shape.demo.vue
│   │   │   │   └── size.demo.vue
│   │   │   └── zhCN/
│   │   │       ├── basic.demo.vue
│   │   │       ├── color.demo.vue
│   │   │       ├── content.demo.vue
│   │   │       ├── customize-value.demo.vue
│   │   │       ├── event.demo.vue
│   │   │       ├── icon.demo.vue
│   │   │       ├── index.demo-entry.md
│   │   │       ├── loading.demo.vue
│   │   │       ├── shape.demo.vue
│   │   │       └── size.demo.vue
│   │   ├── index.ts
│   │   ├── src/
│   │   │   ├── Switch.tsx
│   │   │   ├── interface.ts
│   │   │   ├── public-types.ts
│   │   │   └── styles/
│   │   │       └── index.cssr.ts
│   │   ├── styles/
│   │   │   ├── _common.ts
│   │   │   ├── dark.ts
│   │   │   ├── index.ts
│   │   │   └── light.ts
│   │   └── tests/
│   │       ├── Switch.spec.tsx
│   │       ├── __snapshots__/
│   │       │   └── Switch.spec.tsx.snap
│   │       └── server.spec.tsx
│   ├── table/
│   │   ├── demos/
│   │   │   ├── enUS/
│   │   │   │   ├── basic.demo.vue
│   │   │   │   ├── bordered.demo.vue
│   │   │   │   ├── index.demo-entry.md
│   │   │   │   ├── single-column.demo.vue
│   │   │   │   ├── single-line.demo.vue
│   │   │   │   ├── size.demo.vue
│   │   │   │   └── striped.demo.vue
│   │   │   └── zhCN/
│   │   │       ├── basic.demo.vue
│   │   │       ├── bordered.demo.vue
│   │   │       ├── index.demo-entry.md
│   │   │       ├── rtl-debug.demo.vue
│   │   │       ├── single-column.demo.vue
│   │   │       ├── single-line.demo.vue
│   │   │       ├── size.demo.vue
│   │   │       └── striped.demo.vue
│   │   ├── index.ts
│   │   ├── src/
│   │   │   ├── Table.tsx
│   │   │   ├── Tbody.tsx
│   │   │   ├── Td.tsx
│   │   │   ├── Th.tsx
│   │   │   ├── Thead.tsx
│   │   │   ├── Tr.tsx
│   │   │   ├── public-types.ts
│   │   │   └── styles/
│   │   │       ├── index.cssr.ts
│   │   │       └── rtl.cssr.ts
│   │   ├── styles/
│   │   │   ├── _common.ts
│   │   │   ├── dark.ts
│   │   │   ├── index.ts
│   │   │   ├── light.ts
│   │   │   └── rtl.ts
│   │   └── tests/
│   │       ├── Table.spec.ts
│   │       ├── __snapshots__/
│   │       │   └── Table.spec.ts.snap
│   │       └── server.spec.tsx
│   ├── tabs/
│   │   ├── demos/
│   │   │   ├── enUS/
│   │   │   │   ├── addable.demo.vue
│   │   │   │   ├── bar-width.demo.vue
│   │   │   │   ├── basic.demo.vue
│   │   │   │   ├── before-leave.demo.vue
│   │   │   │   ├── card.demo.vue
│   │   │   │   ├── display-directive.demo.vue
│   │   │   │   ├── flex-label.demo.vue
│   │   │   │   ├── index.demo-entry.md
│   │   │   │   ├── no-pane.demo.vue
│   │   │   │   ├── placement.demo.vue
│   │   │   │   ├── prefix.demo.vue
│   │   │   │   ├── segment.demo.vue
│   │   │   │   ├── size.demo.vue
│   │   │   │   ├── trigger.demo.vue
│   │   │   │   └── update-bar-manually.demo.vue
│   │   │   └── zhCN/
│   │   │       ├── addable-debug.demo.vue
│   │   │       ├── addable.demo.vue
│   │   │       ├── animation-debug.demo.vue
│   │   │       ├── animationx-debug.demo.vue
│   │   │       ├── bar-width.demo.vue
│   │   │       ├── basic.demo.vue
│   │   │       ├── before-leave.demo.vue
│   │   │       ├── card.demo.vue
│   │   │       ├── display-directive.demo.vue
│   │   │       ├── flex-label.demo.vue
│   │   │       ├── index.demo-entry.md
│   │   │       ├── line-debug.demo.vue
│   │   │       ├── modal-debug.demo.vue
│   │   │       ├── no-pane.demo.vue
│   │   │       ├── none-debug.demo.vue
│   │   │       ├── placement.demo.vue
│   │   │       ├── prefix.demo.vue
│   │   │       ├── segment.demo.vue
│   │   │       ├── shadow-debug.demo.vue
│   │   │       ├── size.demo.vue
│   │   │       ├── style-inherit-debug.demo.vue
│   │   │       ├── trigger.demo.vue
│   │   │       ├── unkeyed-debug.demo.vue
│   │   │       └── update-bar-manually.demo.vue
│   │   ├── index.ts
│   │   ├── src/
│   │   │   ├── Tab.tsx
│   │   │   ├── TabPane.tsx
│   │   │   ├── Tabs.tsx
│   │   │   ├── interface.ts
│   │   │   ├── public-types.ts
│   │   │   └── styles/
│   │   │       └── index.cssr.ts
│   │   ├── styles/
│   │   │   ├── _common.ts
│   │   │   ├── dark.ts
│   │   │   ├── index.ts
│   │   │   └── light.ts
│   │   └── tests/
│   │       ├── Tabs.spec.tsx
│   │       ├── __snapshots__/
│   │       │   └── Tabs.spec.tsx.snap
│   │       └── server.spec.tsx
│   ├── tag/
│   │   ├── demos/
│   │   │   ├── enUS/
│   │   │   │   ├── avatar.demo.vue
│   │   │   │   ├── basic.demo.vue
│   │   │   │   ├── bordered.demo.vue
│   │   │   │   ├── checkable.demo.vue
│   │   │   │   ├── closable.demo.vue
│   │   │   │   ├── color.demo.vue
│   │   │   │   ├── disabled.demo.vue
│   │   │   │   ├── icon.demo.vue
│   │   │   │   ├── index.demo-entry.md
│   │   │   │   ├── shape.demo.vue
│   │   │   │   └── size.demo.vue
│   │   │   └── zhCN/
│   │   │       ├── avatar.demo.vue
│   │   │       ├── basic.demo.vue
│   │   │       ├── bordered.demo.vue
│   │   │       ├── checkable.demo.vue
│   │   │       ├── closable.demo.vue
│   │   │       ├── color.demo.vue
│   │   │       ├── disabled.demo.vue
│   │   │       ├── icon.demo.vue
│   │   │       ├── index.demo-entry.md
│   │   │       ├── rtl-debug.demo.vue
│   │   │       ├── shape.demo.vue
│   │   │       └── size.demo.vue
│   │   ├── index.ts
│   │   ├── src/
│   │   │   ├── Tag.tsx
│   │   │   ├── common-props.ts
│   │   │   ├── public-types.ts
│   │   │   └── styles/
│   │   │       ├── index.cssr.ts
│   │   │       └── rtl.cssr.ts
│   │   ├── styles/
│   │   │   ├── _common.ts
│   │   │   ├── dark.ts
│   │   │   ├── index.ts
│   │   │   ├── light.ts
│   │   │   └── rtl.ts
│   │   └── tests/
│   │       ├── Tag.spec.ts
│   │       ├── __snapshots__/
│   │       │   └── Tag.spec.ts.snap
│   │       └── server.spec.tsx
│   ├── theme-editor/
│   │   ├── index.ts
│   │   └── src/
│   │       ├── MaximizeIcon.tsx
│   │       ├── MinimizeIcon.tsx
│   │       └── ThemeEditor.tsx
│   ├── themes/
│   │   ├── dark.ts
│   │   ├── index.ts
│   │   ├── interface.ts
│   │   ├── light.ts
│   │   └── utils.ts
│   ├── thing/
│   │   ├── demos/
│   │   │   ├── enUS/
│   │   │   │   ├── basic.demo.vue
│   │   │   │   ├── indent.demo.vue
│   │   │   │   └── index.demo-entry.md
│   │   │   └── zhCN/
│   │   │       ├── basic.demo.vue
│   │   │       ├── indent.demo.vue
│   │   │       ├── index.demo-entry.md
│   │   │       └── rtl-debug.demo.vue
│   │   ├── index.ts
│   │   ├── src/
│   │   │   ├── Thing.tsx
│   │   │   └── styles/
│   │   │       ├── index.cssr.ts
│   │   │       └── rtl.cssr.ts
│   │   ├── styles/
│   │   │   ├── dark.ts
│   │   │   ├── index.ts
│   │   │   ├── light.ts
│   │   │   └── rtl.ts
│   │   └── tests/
│   │       ├── Thing.spec.ts
│   │       └── server.spec.tsx
│   ├── time/
│   │   ├── demos/
│   │   │   ├── enUS/
│   │   │   │   ├── basic.demo.vue
│   │   │   │   ├── format.demo.vue
│   │   │   │   ├── index.demo-entry.md
│   │   │   │   ├── relative.demo.vue
│   │   │   │   ├── timezone.demo.vue
│   │   │   │   ├── type.demo.vue
│   │   │   │   └── unix.demo.vue
│   │   │   └── zhCN/
│   │   │       ├── basic.demo.vue
│   │   │       ├── format.demo.vue
│   │   │       ├── index.demo-entry.md
│   │   │       ├── relative.demo.vue
│   │   │       ├── timezone-debug.demo.vue
│   │   │       ├── timezone.demo.vue
│   │   │       ├── type.demo.vue
│   │   │       └── unix.demo.vue
│   │   ├── index.ts
│   │   ├── src/
│   │   │   └── Time.ts
│   │   └── tests/
│   │       ├── Time.spec.ts
│   │       └── server.spec.tsx
│   ├── time-picker/
│   │   ├── demos/
│   │   │   ├── enUS/
│   │   │   │   ├── actions.demo.vue
│   │   │   │   ├── basic.demo.vue
│   │   │   │   ├── confirm.demo.vue
│   │   │   │   ├── disabled-time.demo.vue
│   │   │   │   ├── focus.demo.vue
│   │   │   │   ├── format.demo.vue
│   │   │   │   ├── formatted.demo.vue
│   │   │   │   ├── hours12.demo.vue
│   │   │   │   ├── index.demo-entry.md
│   │   │   │   ├── size.demo.vue
│   │   │   │   ├── status.demo.vue
│   │   │   │   ├── step-time.demo.vue
│   │   │   │   └── timezone.demo.vue
│   │   │   └── zhCN/
│   │   │       ├── actions.demo.vue
│   │   │       ├── basic.demo.vue
│   │   │       ├── confirm.demo.vue
│   │   │       ├── disabled-time.demo.vue
│   │   │       ├── focus.demo.vue
│   │   │       ├── format.demo.vue
│   │   │       ├── formatted.demo.vue
│   │   │       ├── hours12.demo.vue
│   │   │       ├── index.demo-entry.md
│   │   │       ├── size.demo.vue
│   │   │       ├── status.demo.vue
│   │   │       ├── step-time.demo.vue
│   │   │       ├── timezone-debug.demo.vue
│   │   │       └── timezone.demo.vue
│   │   ├── index.ts
│   │   ├── src/
│   │   │   ├── Panel.tsx
│   │   │   ├── PanelCol.tsx
│   │   │   ├── TimePicker.tsx
│   │   │   ├── interface.ts
│   │   │   ├── public-types.ts
│   │   │   ├── styles/
│   │   │   │   └── index.cssr.ts
│   │   │   └── utils.ts
│   │   ├── styles/
│   │   │   ├── _common.ts
│   │   │   ├── dark.ts
│   │   │   ├── index.ts
│   │   │   └── light.ts
│   │   └── tests/
│   │       ├── TimePicker.spec.ts
│   │       ├── __snapshots__/
│   │       │   └── TimePicker.spec.ts.snap
│   │       └── server.spec.tsx
│   ├── timeline/
│   │   ├── demos/
│   │   │   ├── enUS/
│   │   │   │   ├── basic.demo.vue
│   │   │   │   ├── customize-icon.demo.vue
│   │   │   │   ├── horizontal.demo.vue
│   │   │   │   ├── index.demo-entry.md
│   │   │   │   ├── item-placement.demo.vue
│   │   │   │   └── size.demo.vue
│   │   │   └── zhCN/
│   │   │       ├── basic.demo.vue
│   │   │       ├── customize-icon.demo.vue
│   │   │       ├── horizontal.demo.vue
│   │   │       ├── index.demo-entry.md
│   │   │       ├── item-placement.demo.vue
│   │   │       ├── nested-debug.demo.vue
│   │   │       └── size.demo.vue
│   │   ├── index.ts
│   │   ├── src/
│   │   │   ├── Timeline.tsx
│   │   │   ├── TimelineItem.tsx
│   │   │   └── styles/
│   │   │       └── index.cssr.ts
│   │   ├── styles/
│   │   │   ├── _common.ts
│   │   │   ├── dark.ts
│   │   │   ├── index.ts
│   │   │   └── light.ts
│   │   └── tests/
│   │       ├── Timeline.spec.ts
│   │       └── server.spec.tsx
│   ├── tooltip/
│   │   ├── demos/
│   │   │   ├── enUS/
│   │   │   │   ├── arrow.demo.vue
│   │   │   │   ├── basic.demo.vue
│   │   │   │   ├── body-style.demo.vue
│   │   │   │   ├── event.demo.vue
│   │   │   │   ├── index.demo-entry.md
│   │   │   │   ├── placement.demo.vue
│   │   │   │   └── trigger.demo.vue
│   │   │   └── zhCN/
│   │   │       ├── arrow.demo.vue
│   │   │       ├── basic.demo.vue
│   │   │       ├── body-style.demo.vue
│   │   │       ├── event.demo.vue
│   │   │       ├── index.demo-entry.md
│   │   │       ├── placement.demo.vue
│   │   │       ├── rtl-debug.demo.vue
│   │   │       └── trigger.demo.vue
│   │   ├── index.ts
│   │   ├── src/
│   │   │   └── Tooltip.ts
│   │   ├── styles/
│   │   │   ├── _common.ts
│   │   │   ├── dark.ts
│   │   │   ├── index.ts
│   │   │   └── light.ts
│   │   └── tests/
│   │       ├── Tooltip.spec.ts
│   │       └── server.spec.tsx
│   ├── transfer/
│   │   ├── demos/
│   │   │   ├── enUS/
│   │   │   │   ├── basic.demo.vue
│   │   │   │   ├── filterable.demo.vue
│   │   │   │   ├── index.demo-entry.md
│   │   │   │   ├── large-data.demo.vue
│   │   │   │   ├── render-label.demo.vue
│   │   │   │   ├── render-source-list.demo.vue
│   │   │   │   └── size.demo.vue
│   │   │   └── zhCN/
│   │   │       ├── asynchronous-options-debug.demo.vue
│   │   │       ├── basic.demo.vue
│   │   │       ├── filterable.demo.vue
│   │   │       ├── index.demo-entry.md
│   │   │       ├── large-data.demo.vue
│   │   │       ├── render-label.demo.vue
│   │   │       ├── render-source-list.demo.vue
│   │   │       ├── size.demo.vue
│   │   │       └── value-debug.demo.vue
│   │   ├── index.ts
│   │   ├── src/
│   │   │   ├── Transfer.tsx
│   │   │   ├── TransferFilter.tsx
│   │   │   ├── TransferHeader.tsx
│   │   │   ├── TransferList.tsx
│   │   │   ├── TransferListItem.tsx
│   │   │   ├── interface.ts
│   │   │   ├── public-types.ts
│   │   │   ├── styles/
│   │   │   │   └── index.cssr.ts
│   │   │   └── use-transfer-data.ts
│   │   ├── styles/
│   │   │   ├── _common.ts
│   │   │   ├── dark.ts
│   │   │   ├── index.ts
│   │   │   └── light.ts
│   │   └── tests/
│   │       ├── Transfer.spec.ts
│   │       ├── __snapshots__/
│   │       │   └── Transfer.spec.ts.snap
│   │       └── server.spec.tsx
│   ├── tree/
│   │   ├── demos/
│   │   │   ├── enUS/
│   │   │   │   ├── async.demo.vue
│   │   │   │   ├── basic.demo.vue
│   │   │   │   ├── batch-render.demo.vue
│   │   │   │   ├── cascade.demo.vue
│   │   │   │   ├── checkbox-placement.demo.vue
│   │   │   │   ├── custom-field.demo.vue
│   │   │   │   ├── disabled.demo.vue
│   │   │   │   ├── drag-drop.demo.vue
│   │   │   │   ├── file-tree.demo.vue
│   │   │   │   ├── filter.demo.vue
│   │   │   │   ├── index.demo-entry.md
│   │   │   │   ├── multiple.demo.vue
│   │   │   │   ├── node-props.demo.vue
│   │   │   │   ├── override-click-behavior.demo.vue
│   │   │   │   ├── prefix-and-suffix.demo.vue
│   │   │   │   ├── show-line.demo.vue
│   │   │   │   ├── switcher-icon.demo.vue
│   │   │   │   └── virtual.demo.vue
│   │   │   └── zhCN/
│   │   │       ├── async.demo.vue
│   │   │       ├── basic.demo.vue
│   │   │       ├── batch-render.demo.vue
│   │   │       ├── cascade.demo.vue
│   │   │       ├── change-debug.demo.vue
│   │   │       ├── check-strategy-debug.demo.vue
│   │   │       ├── checkbox-placement.demo.vue
│   │   │       ├── custom-field.demo.vue
│   │   │       ├── disabled.demo.vue
│   │   │       ├── drag-drop.demo.vue
│   │   │       ├── ellipsis.demo.vue
│   │   │       ├── expand-debug.demo.vue
│   │   │       ├── file-tree.demo.vue
│   │   │       ├── filter.demo.vue
│   │   │       ├── index.demo-entry.md
│   │   │       ├── multiple.demo.vue
│   │   │       ├── node-props.demo.vue
│   │   │       ├── override-click-behavior.demo.vue
│   │   │       ├── prefix-and-suffix.demo.vue
│   │   │       ├── rtl-debug.demo.vue
│   │   │       ├── scroll-debug.demo.vue
│   │   │       ├── scrollbar-debug.demo.vue
│   │   │       ├── show-line.demo.vue
│   │   │       ├── switcher-icon.demo.vue
│   │   │       └── virtual.demo.vue
│   │   ├── index.ts
│   │   ├── src/
│   │   │   ├── MotionWrapper.tsx
│   │   │   ├── Tree.tsx
│   │   │   ├── TreeNode.tsx
│   │   │   ├── TreeNodeCheckbox.tsx
│   │   │   ├── TreeNodeContent.tsx
│   │   │   ├── TreeNodeSwitcher.tsx
│   │   │   ├── dnd.tsx
│   │   │   ├── interface.ts
│   │   │   ├── keyboard.tsx
│   │   │   ├── public-types.ts
│   │   │   ├── styles/
│   │   │   │   ├── index.cssr.ts
│   │   │   │   └── rtl.cssr.ts
│   │   │   └── utils.ts
│   │   ├── styles/
│   │   │   ├── dark.ts
│   │   │   ├── index.ts
│   │   │   ├── light.ts
│   │   │   └── rtl.ts
│   │   └── tests/
│   │       ├── Tree.spec.ts
│   │       └── server.spec.tsx
│   ├── tree-select/
│   │   ├── demos/
│   │   │   ├── enUS/
│   │   │   │   ├── action.demo.vue
│   │   │   │   ├── async.demo.vue
│   │   │   │   ├── basic.demo.vue
│   │   │   │   ├── check-strategy.demo.vue
│   │   │   │   ├── checkbox.demo.vue
│   │   │   │   ├── custom-field.demo.vue
│   │   │   │   ├── debug.demo.vue
│   │   │   │   ├── file-picker.demo.vue
│   │   │   │   ├── filterable.demo.vue
│   │   │   │   ├── index.demo-entry.md
│   │   │   │   ├── multiple.demo.vue
│   │   │   │   ├── show-line.demo.vue
│   │   │   │   └── status.demo.vue
│   │   │   └── zhCN/
│   │   │       ├── action.demo.vue
│   │   │       ├── async.demo.vue
│   │   │       ├── basic.demo.vue
│   │   │       ├── check-strategy-debug.demo.vue
│   │   │       ├── check-strategy.demo.vue
│   │   │       ├── checkbox.demo.vue
│   │   │       ├── custom-field.demo.vue
│   │   │       ├── debug.demo.vue
│   │   │       ├── field-search-debug.demo.vue
│   │   │       ├── file-picker.demo.vue
│   │   │       ├── filterable.demo.vue
│   │   │       ├── index.demo-entry.md
│   │   │       ├── multiple.demo.vue
│   │   │       ├── render-debug.demo.vue
│   │   │       ├── rtl-debug.demo.vue
│   │   │       ├── show-line.demo.vue
│   │   │       └── status.demo.vue
│   │   ├── index.ts
│   │   ├── src/
│   │   │   ├── TreeSelect.tsx
│   │   │   ├── interface.ts
│   │   │   ├── public-types.ts
│   │   │   ├── styles/
│   │   │   │   └── index.cssr.ts
│   │   │   └── utils.ts
│   │   ├── styles/
│   │   │   ├── dark.ts
│   │   │   ├── index.ts
│   │   │   ├── light.ts
│   │   │   └── rtl.ts
│   │   └── tests/
│   │       ├── TreeSelect.spec.ts
│   │       └── server.spec.tsx
│   ├── tsconfig.cjs.json
│   ├── tsconfig.demo.json
│   ├── tsconfig.esm.json
│   ├── typography/
│   │   ├── demos/
│   │   │   ├── enUS/
│   │   │   │   ├── header.demo.vue
│   │   │   │   ├── index.demo-entry.md
│   │   │   │   ├── router-link.demo.vue
│   │   │   │   ├── tags.demo.vue
│   │   │   │   └── text.demo.vue
│   │   │   └── zhCN/
│   │   │       ├── header.demo.vue
│   │   │       ├── index.demo-entry.md
│   │   │       ├── router-link.demo.vue
│   │   │       ├── tags.demo.vue
│   │   │       └── text.demo.vue
│   │   ├── index.ts
│   │   ├── src/
│   │   │   ├── a.tsx
│   │   │   ├── blockquote.tsx
│   │   │   ├── create-header.ts
│   │   │   ├── headers.ts
│   │   │   ├── hr.tsx
│   │   │   ├── li.tsx
│   │   │   ├── ol.tsx
│   │   │   ├── p.tsx
│   │   │   ├── styles/
│   │   │   │   ├── a.cssr.ts
│   │   │   │   ├── blockquote.cssr.ts
│   │   │   │   ├── header.cssr.ts
│   │   │   │   ├── hr.cssr.ts
│   │   │   │   ├── list.cssr.ts
│   │   │   │   ├── p.cssr.ts
│   │   │   │   └── text.cssr.ts
│   │   │   ├── text.tsx
│   │   │   └── ul.tsx
│   │   ├── styles/
│   │   │   ├── _common.ts
│   │   │   ├── dark.ts
│   │   │   ├── index.ts
│   │   │   └── light.ts
│   │   └── tests/
│   │       ├── Typography.spec.ts
│   │       ├── __snapshots__/
│   │       │   └── Typography.spec.ts.snap
│   │       └── server.spec.tsx
│   ├── upload/
│   │   ├── demos/
│   │   │   ├── enUS/
│   │   │   │   ├── abstract.demo.vue
│   │   │   │   ├── basic.demo.vue
│   │   │   │   ├── before-upload.demo.vue
│   │   │   │   ├── controlled.demo.vue
│   │   │   │   ├── custom-download.demo.vue
│   │   │   │   ├── custom-request.demo.vue
│   │   │   │   ├── default-files.demo.vue
│   │   │   │   ├── download.demo.vue
│   │   │   │   ├── drag.demo.vue
│   │   │   │   ├── image-card-style.demo.vue
│   │   │   │   ├── image-style.demo.vue
│   │   │   │   ├── index.demo-entry.md
│   │   │   │   ├── on-finish.demo.vue
│   │   │   │   └── submit-manually.demo.vue
│   │   │   └── zhCN/
│   │   │       ├── abstract.demo.vue
│   │   │       ├── basic.demo.vue
│   │   │       ├── before-upload.demo.vue
│   │   │       ├── controlled.demo.vue
│   │   │       ├── custom-download.demo.vue
│   │   │       ├── custom-request.demo.vue
│   │   │       ├── debug.demo.vue
│   │   │       ├── default-files.demo.vue
│   │   │       ├── download.demo.vue
│   │   │       ├── drag.demo.vue
│   │   │       ├── image-card-style.demo.vue
│   │   │       ├── image-style.demo.vue
│   │   │       ├── index.demo-entry.md
│   │   │       ├── on-finish.demo.vue
│   │   │       ├── rtl-debug.demo.vue
│   │   │       └── submit-manually.demo.vue
│   │   ├── index.ts
│   │   ├── src/
│   │   │   ├── Upload.tsx
│   │   │   ├── UploadDragger.tsx
│   │   │   ├── UploadFile.tsx
│   │   │   ├── UploadFileList.tsx
│   │   │   ├── UploadProgress.tsx
│   │   │   ├── UploadTrigger.tsx
│   │   │   ├── icons.tsx
│   │   │   ├── interface.ts
│   │   │   ├── public-types.ts
│   │   │   ├── styles/
│   │   │   │   ├── index.cssr.ts
│   │   │   │   └── rtl.cssr.ts
│   │   │   └── utils.ts
│   │   ├── styles/
│   │   │   ├── dark.ts
│   │   │   ├── index.ts
│   │   │   ├── light.ts
│   │   │   └── rtl.ts
│   │   └── tests/
│   │       ├── Upload.spec.tsx
│   │       └── server.spec.tsx
│   ├── version.ts
│   ├── virtual-list/
│   │   ├── demos/
│   │   │   ├── enUS/
│   │   │   │   ├── basic.demo.vue
│   │   │   │   ├── dynamic-size.demo.vue
│   │   │   │   ├── index.demo-entry.md
│   │   │   │   ├── keep-alive.demo.vue
│   │   │   │   └── scroll.demo.vue
│   │   │   └── zhCN/
│   │   │       ├── basic.demo.vue
│   │   │       ├── dynamic-size.demo.vue
│   │   │       ├── index.demo-entry.md
│   │   │       ├── keep-alive.demo.vue
│   │   │       └── scroll.demo.vue
│   │   ├── index.ts
│   │   └── src/
│   │       └── VirtualList.tsx
│   ├── vitest-setup.ts
│   └── watermark/
│       ├── demos/
│       │   ├── enUS/
│       │   │   ├── basic.demo.vue
│       │   │   ├── custom.demo.vue
│       │   │   ├── fullscreen.demo.vue
│       │   │   ├── image.demo.vue
│       │   │   ├── index.demo-entry.md
│       │   │   └── multiline.demo.vue
│       │   └── zhCN/
│       │       ├── basic.demo.vue
│       │       ├── custom.demo.vue
│       │       ├── fullscreen.demo.vue
│       │       ├── image.demo.vue
│       │       ├── index.demo-entry.md
│       │       └── multiline.demo.vue
│       ├── index.ts
│       ├── src/
│       │   ├── Watermark.tsx
│       │   └── styles/
│       │       └── index.cssr.ts
│       ├── styles/
│       │   ├── dark.ts
│       │   ├── index.ts
│       │   └── light.ts
│       └── tests/
│           ├── Watermark.spec.ts
│           └── server.spec.tsx
├── test.html
├── themes/
│   └── tusimple/
│       ├── .npmignore
│       ├── README.md
│       ├── package.json
│       ├── src/
│       │   ├── TsConfigProvider.tsx
│       │   ├── data-table.tsx
│       │   ├── icons.tsx
│       │   ├── index.ts
│       │   ├── theme-overrides-dark.ts
│       │   ├── theme-overrides-light.ts
│       │   ├── unconfigurable-style-dark.ts
│       │   ├── unconfigurable-style-light.ts
│       │   ├── use-ts-dialog.ts
│       │   ├── use-ts-message.ts
│       │   └── vars.ts
│       ├── tsconfig.cjs.json
│       └── tsconfig.esm.json
├── tsconfig.cjs.json
├── tsconfig.esbuild.json
├── tsconfig.esm.json
├── tsconfig.json
├── tsconfig.scripts.json
├── tsconfig.test.json
├── umd-test/
│   ├── index.spec.js
│   └── setupVue.js
├── vite.config.mts
├── volar.d.ts
└── vue3.md

================================================
FILE CONTENTS
================================================

================================================
FILE: .github/FUNDING.yml
================================================
# These are supported funding model platforms

# github: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2]
# patreon: # Replace with a single Patreon username
# open_collective: # Replace with a single Open Collective username
# ko_fi: # Replace with a single Ko-fi username
# tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel
# community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
# liberapay: # Replace with a single Liberapay username
# issuehunt: # Replace with a single IssueHunt username
# otechie: # Replace with a single Otechie username
# custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2']


================================================
FILE: .github/ISSUE_TEMPLATE/bug_report.yml
================================================
name: 🐞 Bug report
description: Report an issue with naive-ui
labels: [untriaged]
body:
  - type: markdown
    attributes:
      value: |
        Thanks for taking the time to fill out this bug report!
  - type: textarea
    id: bug-description
    attributes:
      label: Describe the bug
      description: A clear and concise description of what the bug is. If you intend to submit a PR for this issue, tell us in the description. Thanks!
      placeholder: Bug description
    validations:
      required: true
  - type: textarea
    id: steps
    attributes:
      label: Steps to reproduce
      description: Clear and concise steps to reproduce this bug.
      placeholder: |
        1. apply magic
        2. wait 3.1415 seconds
        3. 🧙🏽‍♂️
    validations:
      required: true
  - type: input
    id: reproduction
    attributes:
      label: Link to minimal reproduction
      description: Please provide a  [minimal reproduction](https://stackoverflow.com/help/minimal-reproducible-example). Provide a streamlined [Playground](https://play-naive.pro-components.cn)/CodePen/CodeSandbox or GitHub repository link. Please don't fill in a link randomly.
      placeholder: Reproduction
    validations:
      required: true
  - type: textarea
    id: system-info
    attributes:
      label: System Info
      description: Output of `npx envinfo --system --npmPackages 'naive-ui,vue' --binaries --browsers`
      render: Shell
      placeholder: System, Binaries, Browsers
    validations:
      required: true
  - type: dropdown
    id: package-manager
    attributes:
      label: Used Package Manager
      description: Select the used package manager
      options:
        - npm
        - yarn
        - pnpm
    validations:
      required: true
  - type: checkboxes
    id: checkboxes
    attributes:
      label: Validations
      description: Before submitting the issue, please make sure you do the following
      options:
        - label: Read the [Contributing Guidelines](https://github.com/tusen-ai/naive-ui/blob/main/CONTRIBUTING.md).
          required: true
        - label: Read the [docs](https://www.naiveui.com/en-US/).
          required: true
        - label: Check that there isn't [already an issue](https://github.com/tusen-ai/naive-ui/issues) that reports the same bug to avoid creating a duplicate.
          required: true
        - label: Check that this is a concrete bug. For Q&A open a [GitHub Discussion](https://github.com/tusen-ai/naive-ui/discussions).
          required: true
        - label: The provided reproduction is a [minimal reproducible example](https://stackoverflow.com/help/minimal-reproducible-example) of the bug.
          required: true


================================================
FILE: .github/ISSUE_TEMPLATE/bug_report.zh-CN.yml
================================================
name: 🐞 错误报告
description: 报告 naive-ui 的问题
labels: [untriaged]
body:
  - type: markdown
    attributes:
      value: |
        感谢您抽出时间填写此错误报告!
  - type: textarea
    id: bug-description
    attributes:
      label: 描述错误
      description: 对错误的清晰而简明的描述。如果您打算为此问题提交 PR,请在描述中告诉我们。谢谢!
      placeholder: 错误描述
    validations:
      required: true
  - type: textarea
    id: steps
    attributes:
      label: 复现步骤
      description: 复现此错误的清晰而简明的步骤。
      placeholder: |
        1. 应用魔法
        2. 等待 3.1415 秒
        3. 🧙🏽‍♂️
    validations:
      required: true
  - type: input
    id: reproduction
    attributes:
      label: 最小复现链接
      description: 请提供[最小复现](https://stackoverflow.com/help/minimal-reproducible-example)链接。提供一个简化的 [Playground](https://play.pro-components.cn)/CodePen/CodeSandbox 或 GitHub 仓库链接。请不要随机填写链接。
      placeholder: 复现链接
    validations:
      required: true
  - type: textarea
    id: system-info
    attributes:
      label: 系统信息
      description: "`npx envinfo --system --npmPackages 'naive-ui,vue' --binaries --browsers` 命令的输出"
      render: Shell
      placeholder: 系统信息,二进制文件,浏览器
    validations:
      required: true
  - type: dropdown
    id: package-manager
    attributes:
      label: 使用的包管理器
      description: 选择所使用的包管理器
      options:
        - npm
        - yarn
        - pnpm
    validations:
      required: true
  - type: checkboxes
    id: checkboxes
    attributes:
      label: 验证
      description: 在提交问题之前,请确保完成以下步骤
      options:
        - label: 阅读 [贡献指南](https://github.com/tusen-ai/naive-ui/blob/main/CONTRIBUTING.zh-CN.md)。
          required: true
        - label: 阅读 [文档](https://www.naiveui.com/zh-CN/)。
          required: true
        - label: 检查是否已经存在[相同问题的问题](https://github.com/tusen-ai/naive-ui/issues),以避免创建重复的问题。
          required: true
        - label: 确保这是一个具体的 bug。有关问题和答案,请打开 [GitHub 讨论](https://github.com/tusen-ai/naive-ui/discussions)。
          required: true
        - label: 提供的复现是[最小可复现的示例](https://stackoverflow.com/help/minimal-reproducible-example)。
          required: true


================================================
FILE: .github/ISSUE_TEMPLATE/config.yml
================================================
blank_issues_enabled: false
contact_links:
  - name: 💬 Discord Chat
    url: https://discord.gg/Pqv7Mev5Dd
    about: Ask questions and discuss with other Naive UI users in real time.
  - name: ❓ Questions & Discussions
    url: https://github.com/tusen-ai/naive-ui/discussions
    about: Use GitHub discussions for message-board style questions and discussions.


================================================
FILE: .github/ISSUE_TEMPLATE/feature_request.yml
================================================
name: 🚀 New feature request
description: Propose a new feature to be added to Naive UI
labels: [feature request]
body:
  - type: markdown
    attributes:
      value: |
        Thanks for your interest in the project and taking the time to fill out this feature request!

  - type: textarea
    id: feature-description
    attributes:
      label: Clear and concise description of the problem
      description: 'As a developer using Naive UI I want [goal / wish] so that [benefit]. If you intend to submit a PR for this issue, tell us in the description. Thanks!'
    validations:
      required: true
  - type: textarea
    id: suggested-solution
    attributes:
      label: Suggested solution
      description: 'In module [xy] we could provide following implementation...'
    validations:
      required: true
  - type: textarea
    id: alternative
    attributes:
      label: Alternative
      description: Clear and concise description of any alternative solutions or features you've considered.
  - type: textarea
    id: additional-context
    attributes:
      label: Additional context
      description: Any other context or screenshots about the feature request here.
  - type: checkboxes
    id: checkboxes
    attributes:
      label: Validations
      description: Before submitting the issue, please make sure you do the following
      options:
        - label: Read the [Contributing Guidelines](https://github.com/tusen-ai/naive-ui/blob/main/CONTRIBUTING.md).
          required: true
        - label: Read the [docs](https://www.naiveui.com/en-US).
          required: true
        - label: Check that there isn't already an issue that request the same feature to avoid creating a duplicate.
          required: true


================================================
FILE: .github/ISSUE_TEMPLATE/feature_request.zh-CN.yml
================================================
name: 🚀 新功能请求
description: 提议将新功能添加到 Naive UI
labels: [feature request]
body:
  - type: markdown
    attributes:
      value: |
        感谢您对该项目的关注,并抽出时间填写此功能请求!

  - type: textarea
    id: feature-description
    attributes:
      label: 问题的清晰而简明的描述
      description: '作为使用 Naive UI 的开发者,我希望 [目标/愿望],以便 [好处]。如果您打算为此问题提交 PR,请在描述中告诉我们。谢谢!'
    validations:
      required: true
  - type: textarea
    id: suggested-solution
    attributes:
      label: 建议的解决方案
      description: '在模块 [xy] 中,我们可以提供以下实现...'
    validations:
      required: true
  - type: textarea
    id: alternative
    attributes:
      label: 备选方案
      description: 对您考虑过的任何备选解决方案或功能的清晰而简明的描述。
  - type: textarea
    id: additional-context
    attributes:
      label: 附加上下文
      description: 在这里提供有关功能请求的任何其他上下文或截图。
  - type: checkboxes
    id: checkboxes
    attributes:
      label: 验证
      description: 在提交问题之前,请确保完成以下步骤
      options:
        - label: 阅读 [贡献指南](https://github.com/tusen-ai/naive-ui/blob/main/CONTRIBUTING.md)。
          required: true
        - label: 阅读 [文档](https://www.naiveui.com/en-US)。
          required: true
        - label: 检查是否已经存在请求相同功能的问题,以避免创建重复的问题。
          required: true


================================================
FILE: .github/dependabot.yml
================================================
# To get started with Dependabot version updates, you'll need to specify which
# package ecosystems to update and where the package manifests are located.
# Please see the documentation for all configuration options:
# https://help.github.com/github/administering-a-repository/configuration-options-for-dependency-updates

version: 2
updates:
  - package-ecosystem: npm # See documentation for possible values
    directory: "/" # Location of package manifests
    schedule:
      interval: "daily"


================================================
FILE: .github/pull_request_template.md
================================================
<!--
!!! Please read the following content if this is your first pull request !!!

1. If you are working on docs, please set `docs` branch as the target branch.
2. If you are working on bug fixes or new features, please set `main` branch as the target branch.

For people who are working on 2, please add changelog to `CHANGELOG.zh-CN.md` & `CHANGELOG.en-US.md` in the PR. You need to add changelog to both files. You can use English in both file. The develop team will translate it later.

About docs & changelog's format and other tips, see in `CONTRIBUTING.md`.
-->
<!--
!!! 如果这是你第一次提交 PR,请阅读下面的内容 !!!

1. 如果你在修改文档,请提交到 `docs` 分支
2. 如果你在修复 Bug 或者开发新的特性,请提交到 `main` 分支

对于进行工作 2 的人,请在 `CHANGELOG.zh-CN.md` & `CHANGELOG.en-US.md` 中添加变更日志,你需要在两个文件中都添加变更日志。你可以只使用中文,开发团队会在之后进行翻译。

关于文档和变更日志的格式以及其他的帮助信息,请参考 `CONTRIBUTING.md`。
-->


================================================
FILE: .github/workflows/node.js.yml
================================================
# This workflow will do a clean install of node dependencies, build the source code and run tests across different versions of node
# For more information see: https://help.github.com/actions/language-and-framework-guides/using-nodejs-with-github-actions

name: Node.js CI

on:
  push:
    branches: [main, feat, docs]
  pull_request:
    branches: [main, feat, docs]

jobs:
  lint:
    environment: test

    runs-on: ubuntu-latest

    strategy:
      matrix:
        node-version: [22]
        # See supported Node.js release schedule at https://nodejs.org/en/about/releases/
    steps:
      - uses: actions/checkout@v3

      - name: Install pnpm
        run: corepack enable

      - name: Use Node.js ${{ matrix.node-version }}
        uses: actions/setup-node@v3
        with:
          node-version: ${{ matrix.node-version }}

      - run: pnpm install

      - name: Lint
        run: pnpm run lint

  test:
    environment: test

    runs-on: ubuntu-latest

    strategy:
      matrix:
        node-version: [22]
    steps:
      - uses: actions/checkout@v3

      - name: Install pnpm
        run: corepack enable

      - name: Use Node.js ${{ matrix.node-version }}
        uses: actions/setup-node@v3
        with:
          node-version: ${{ matrix.node-version }}

      - name: Setup timezone
        uses: szenius/set-timezone@v2.0
        with:
          timezoneLinux: Asia/Shanghai
          timezoneMacos: Asia/Shanghai
          timezoneWindows: Asia/Shanghai

      - run: pnpm install

      - name: Test
        run: pnpm run test:cov

      - name: Code coverage
        uses: codecov/codecov-action@v3
        with:
          token: ${{ secrets.CODECOV_TOKEN }}
          files: coverage/lcov.info


================================================
FILE: .github/workflows/publish-to-pkg.pr.new.yml
================================================
name: Publish to pkg.pr.new
on:
  push:
    branches: [main]
  pull_request:
    types: [labeled]

# Cancel all previous workflows on main.
concurrency:
  group: ${{ github.workflow }}-${{ github.ref }}
  cancel-in-progress: ${{ github.event_name == 'push' && github.ref == 'refs/heads/main' }}

jobs:
  publish:
    runs-on: ubuntu-latest
    if: github.event_name == 'push' || (github.event_name == 'pull_request' && contains(github.event.label.name, 'preview'))
    steps:
      - name: Checkout code
        uses: actions/checkout@v4

      - run: corepack enable
      - uses: actions/setup-node@v4
        with:
          node-version: 22
          cache: "pnpm"
          cache-dependency-path: "package.json"

      - name: Install dependencies
        run: pnpm install

      - name: Build
        run: pnpm build:package

      - name: Publish preview
        run: pnpx pkg-pr-new publish --compact

================================================
FILE: .gitignore
================================================
node_modules
dist
docDist
build-doc/deploy-doc.sh
build-doc/dist
test-size
test-bundle
test/unit/coverage
package-lock.json
playground/temp
yarn.lock
.DS_Store
.vscode
.idea
.pulsar
*.swp
*.tgz
coverage
/fonts
/site
/package
lib
es
*.tsbuildinfo
pnpm-lock.yaml
web-types.json
~*
.pnpm-debug.log
.history


================================================
FILE: .husky/pre-commit
================================================
pnpm exec lint-staged


================================================
FILE: .npmrc
================================================
shell-emulator=true

================================================
FILE: .nvmrc
================================================
22


================================================
FILE: .pnpmfile.cjs
================================================
// We will lock vue version if there's regression
const lockVueVersion = false

const vueVersion = '3.2.36'

const isSameVersionVuePackage = (pkgName) =>
  [
    'vue',
    '@vue/shared',
    '@vue/compiler-sfc',
    '@vue/server-renderer',
    '@vue/reactivity',
    '@vue/reactivity-transform',
    '@vue/compiler-dom',
    '@vue/compiler-ssr',
    '@vue/compiler-core'
  ].some((name) => name === pkgName)

function readPackage(pkg) {
  if (isSameVersionVuePackage(pkg.name)) {
    pkg.version = vueVersion
  }

  ;['dependencies', 'peerDependencies'].forEach((depsType) => {
    const deps = { ...pkg[depsType] }
    for (dep in pkg[depsType]) {
      if (isSameVersionVuePackage(dep)) {
        deps[dep] = vueVersion
      }
    }
    pkg[depsType] = deps
  })

  return pkg
}

module.exports = lockVueVersion
  ? {
      hooks: {
        readPackage
      }
    }
  : {}


================================================
FILE: .prettierignore
================================================
*.cssr.js
*.cssr.ts


================================================
FILE: .prettierrc
================================================
{
  "semi": false,
  "singleQuote": true,
  "printWidth": 80,
  "trailingComma": "none",
  "proseWrap": "never"
}


================================================
FILE: CHANGELOG.en-US.md
================================================
# CHANGELOG

## NEXT_VERSION

### Fixes

- Fix `n-color-picker` passed `style` and `click` (onClick) not applied to trigger, closes [#7528](https://github.com/tusen-ai/naive-ui/issues/7528).

## 2.44.1

`2026-03-08`

### Feats

- `n-config-provider` adds per-component `size` options in `component-options` (`AutoComplete`, `Cascader`, `ColorPicker`, `DatePicker`, `InputNumber`, `InputOtp`, `Mention`, `Select`, `TimePicker`, `Transfer`, `TreeSelect`).

### Fixes

- `n-config-provider` fixes `size` prop doesn't work for some components.

## 2.44.0

`2026-03-08`

### Breaking Changes

- `n-color-picker` refactor DOM structure & trigger class names.
- `n-card`'s `n-card__content` class name is renamed to `n-card-content`.
- `n-select` will clear options created by `tag` prop by default when clear button is clicked.

### Feats

- `n-color-picker` adds `trigger` slot, closes [#7192](https://github.com/tusen-ai/naive-ui/issues/7192).
- `n-select` adds `clear-created-options-on-clear` prop to control whether created options are cleared when clearing while `tag` and clearable are enabled.
- `n-select`, `n-auto-complete`, `n-mention`, `n-popselect`, `n-cascader`, `n-pagination` add `scrollbar-props` prop.
- `n-config-provider` adds component-level `renderEmpty` options (`Cascader`, `DataTable`, `Select`, `Transfer`, `Tree`, `TreeSelect`).
- `n-config-provider` adds per-component `size` options in `component-options` (`Button`, `Card`, `Checkbox`, `DataTable`, `Descriptions`, `Dropdown`, `DynamicTags`, `Form`, `Input`, `Pagination`, `Popselect`, `Radio`, `Rate`, `Result`, `Skeleton`, `Space`, `Switch`, `Table`, `Tabs`, `Tag`), closes [#356](https://github.com/tusen-ai/naive-ui/issues/356).
- `n-upload`'s `submit` method adds `retry` option.
- `n-breadcrumb-item` adds `show-separator` prop for controlling separator visibility when used with `transition-group`, closes [#3614](https://github.com/tusen-ai/naive-ui/issues/3614).
- `n-card` adds `content-scrollable` prop, closes [#4848](https://github.com/tusen-ai/naive-ui/issues/4848), [#6759](https://github.com/tusen-ai/naive-ui/pull/6759).
- `n-date-picker` adds `fast-year-select` prop.
- `n-date-picker` adds `fast-month-select` prop.
- `n-button` adds `spin-props` prop.
- `n-cascader` adds `spin-props` prop.
- `n-log` adds `spin-props` prop.
- `n-message` adds `spin-props` prop.
- `n-switch` adds `spin-props` prop.
- `n-tree` adds `spin-props` prop.
- `n-spin` adds `radius` and `scale` props.
- `n-tree-select` adds `show-line` prop.

### Fixes

- Fix `katex` type compatibility by upgrading to `0.16.28` and removing `@types/katex` dependency, closes [#7423](https://github.com/tusen-ai/naive-ui/issues/7423).
- Fix `n-select`'s created option is not cleared when clearing dynamic options while `tag` and `clearable` are enabled, closes [#7405](https://github.com/tusen-ai/naive-ui/issues/7405).
- Fix `n-modal` event listeners not removed, closes [#7341](https://github.com/tusen-ai/naive-ui/issues/7341) by [@lu-han](https://github.com/lu-han).
- Fix `n-marquee` component Non-function value encountered for default slot warning.
- Fix `n-data-table`'s empty slot is not shown in a `display: flex` container.
- Fix `n-data-table` missing header scrollbar in `n-data-table` when in empty state with `max-height` or `flex-height`, closes [#7479](https://github.com/tusen-ai/naive-ui/pull/7479).
- Fix `n-input`, `n-select`, `n-date-picker`, `n-auto-complete`, `n-cascader`, `n-color-picker`, `n-input-number`, `n-input-otp`, `n-mention`, `n-time-picker`, `n-transfer`, `n-tree-select` not reading global `size` config from `n-config-provider`.
- Fix `n-data-table` and `n-tag` `size` prop default value preventing global config from taking effect.

## 2.43.2

`2025-11-16`

### Fixes

- Fix seemly dependency version range allows incompatible versions.
- Fix `n-progress` style is incorrect after using the dashboard mode exceeding 100%, closes [#6627](https://github.com/tusen-ai/naive-ui/issues/6627).
- Fix `n-modal`'s outside content can't be interacted with when `show-mask` is set to `false`.

### Feats

- `n-date-picker` prop `defaultTime` can also accept a function that will return a formatted string.
- `n-steps` adds `content-placement` prop, closes [#7044](https://github.com/tusen-ai/naive-ui/issues/7044).

## 2.43.1

`2025-09-14`

### Fixes

- Fix esm format files are importing `lodash` rather than `lodash-es`.

## 2.43.0

`2025-09-13`

### Breaking Changes

- Modal's inner close button won't be focusable using keyboard and it'll no longer be focused first by default.

### i18n

- Add daDK locale.

### Fixes

- Fix `n-color-picker` black and white effect of text is not obvious, closes [#7074](https://github.com/tusen-ai/naive-ui/issues/7074).
- Fix `n-image` zoom in & out locale text in `da-DK` `sv-SE`.
- Fix `n-popover`'s `themeOverrides` property does not have the `Scrollbar` style configuration.
- Fix `n-input`'s `themeOverrides` property does not have the `Scrollbar` style configuration.
- Fix `n-anchor` can't activate link in the bottom of the page by click, closes [#7033](https://github.com/tusen-ai/naive-ui/issues/7033), closes [#6918](https://github.com/tusen-ai/naive-ui/issues/6918), [#6844](https://github.com/tusen-ai/naive-ui/issues/6844), [#6782](https://github.com/tusen-ai/naive-ui/issues/6782).
- Fix `n-upload` component `'Non-function value encountered for default slot'` warning.
- Fix `n-input`'s `tabindex` property setting of `input-props` does not take effect.
- Fix `n-tab` scroll shadow pseudo-class style conflicts in multi-layer tab nesting scenarios, closes [#6854](https://github.com/tusen-ai/naive-ui/issues/6854).
- Fix `n-menu`'s disabled style not working when parent node is set to `disabled` and child node has `type: "group"`, closes [#6792](https://github.com/tusen-ai/naive-ui/issues/6792).
- Fix `n-input-group-label` not injecting `formItemInjectionKey`, causing the `size` property to fail, and close [#7066](https://github.com/tusen-ai/naive-ui/issues/7066).
- Fix the issue of style confusion in `n-carousel` when there is only one image, close [#6476](https://github.com/tusen-ai/naive-ui/issues/6476).
- Fix `n-marquee` component 'Non-function value encountered for default slot' warning.
- Fix memory leak caused by `n-upload` icon.

### Features

- `n-data-table`'s column adds `customNextSortOrder` attribute, closes [#6850](https://github.com/tusen-ai/naive-ui/issues/6850).
- Add `n-avatar-group`'s corresponding generic component `NGAvatarGroup`, closes [#6909](https://github.com/tusen-ai/naive-ui/issues/6909).
- `n-avatar-group` adds `size` prop.
- `n-popover` supports RTL.
- `n-tooltip` supports RTL.
- `n-upload` supports RTL.
- `n-tree-select` supports RTL.
- `useDialog`'s option supports `z-index`, closes [#4349](https://github.com/tusen-ai/naive-ui/issues/4349).
- Add `n-heatmap` component.
- - `n-image` adds showPreview methods, closes [#6695](https://github.com/tusen-ai/naive-ui/issues/6695).
- Add `n-image-preview` component.
- `n-image-group` can be used without `n-image`.
- `n-input-otp` adds `focusOnChar` util method, closes [#7073](https://github.com/tusen-ai/naive-ui/issues/7073).
- `n-form-item` adds `content-class`、`content-style` props.
- `n-message` adds `border` theme variable, closes [#7105](https://github.com/tusen-ai/naive-ui/issues/7105).
- `n-modal` adds `show-mask` prop.
- `useModal` add `render` function, closes [#5857](https://github.com/tusen-ai/naive-ui/issues/5857).
- `n-card` add `close-focusable` prop.
- `n-dialog` add `close-focusable` prop.
- `n-form-item` adds `invalidateLabelWidth` method,`n-form` adds `invalidateLabelWidths` method,closes [#5939](https://github.com/tusen-ai/naive-ui/issues/5939).

## 2.42.0

`2025-06-17`

### Breaking Changes

- Fix `n-date-picker`'s `time-picker-format` prop doesn't work, the prop is misspelled as `timer-picker-format` before, closes [#6820](https://github.com/tusen-ai/naive-ui/issues/6820).

### Fixes

- Fix `n-input-otp` event bindings not removed when elements are disabled (disabled/readonly), fix width style specificity conflict.
- Fix `n-date-picker`'s `shortcuts`' time value will be overrided if `default-time` is set in with `type="datetimerange"`, closes [#6902](https://github.com/tusen-ai/naive-ui/pull/6902), [#6901](https://github.com/tusen-ai/naive-ui/pull/6901).
- Fix `n-radio`, `n-radio-button` can't use `n-popover` inside, closes [#6837](https://github.com/tusen-ai/naive-ui/pull/6837), [#6832](https://github.com/tusen-ai/naive-ui/pull/6832).
- Fix scrolling performance issue caused by too many layers, closes [#6887](https://github.com/tusen-ai/naive-ui/issues/6887).

### Features

- `n-anchor-link` adds `title` slot, closes [#6845](https://github.com/tusen-ai/naive-ui/issues/6845).

## 2.41.1

`2025-06-08`

### Fixes

- Fix `n-tabs`'s type exception of the tab slots in TabPane.
- Fix `n-data-table` missing css variable of sorting cells, closes [#6521](https://github.com/tusen-ai/naive-ui/issues/6521).

### Features

- 🌟 Adds `n-input-otp` component, closes [#1385](https://github.com/tusen-ai/naive-ui/issues/1385), [#5681](https://github.com/tusen-ai/naive-ui/issues/5681), [#6222](https://github.com/tusen-ai/naive-ui/issues/6222).
- `n-upload` adds `custom-download`, closes [#5946](https://github.com/tusen-ai/naive-ui/issues/5946), [#6800](https://github.com/tusen-ai/naive-ui/issues/6800).
- `n-upload` adds `uploadDownload` util method.
- `n-tree-select` adds `indent` prop.

## 2.41.0

`2025-01-05`

### Breaking Changes

- (**Vue 3.3+ required**) Add slot type for all components.

### i18n

- Add kmKH locale.
- Add ugCN locale.

### Features

- `n-modal` adds `draggable` prop, closes [#6525](https://github.com/tusen-ai/naive-ui/issues/6525), [#5792](https://github.com/tusen-ai/naive-ui/issues/5792), [#5711](https://github.com/tusen-ai/naive-ui/issues/5711), [#5501](https://github.com/tusen-ai/naive-ui/issues/5501) and [#2152](https://github.com/tusen-ai/naive-ui/issues/2152).
- `useDialog` supports `draggable` option.
- `useModal` supports `draggable` option.

### Fixes

- Fix `n-data-table` may have multiple expand trigger with tree data.
- Fix `n-date-picker`'s `confirm`, `now`, `clear` slots doesn't work with `'month'`, `'monthrange'`, `'quarter'`, `'quarterrange'`, `'year'` and `'yearrange'` type.
- Fix `n-input`'s `render-count` prop doesn't work when type is not `'textarea'`.

## 2.40.4

`2024-12-20`

### Fixes

- Fix `inset` CSS property caused compatibility issues in some browsers, closes [#6604](https://github.com/tusen-ai/naive-ui/issues/6604),close [#6602](https://github.com/tusen-ai/naive-ui/issues/6602).
- Fix memory leak problem when used with new version of vue. Note: After the fix you may still find memory leak in Chrome >= 129, since they introduced a bug, see https://github.com/vuejs/core/issues/12306, https://issues.chromium.org/issues/376777343.

## 2.40.3

`2024-12-02`

- Fix marquee is not exported with correct name.

## 2.40.2

`2024-11-26`

### Fixes

- Fix `n-time-picker`'s `use-12-hours` type error warning, closes [#4308](https://github.com/tusen-ai/naive-ui/issues/4308).
- Fix `input-number` the problem that the negative sign is replaced when the negative sign is entered.
- Fix `n-data-table`'s header will show scrollbar in some old browsers, closes [#6557](https://github.com/tusen-ai/naive-ui/issues/6557).

### Features

- 🌟 Adds `n-marquee` component.
- `n-image` adds `error` slot, closes [#5649](https://github.com/tusen-ai/naive-ui/issues/5649).
- `n-date-picker` adds `date-format` prop.
- `n-date-picker` adds `calendar-day-format` prop.
- `n-date-picker` adds `calendar-header-year-format` prop.
- `n-date-picker` adds `calendar-header-month-format` prop.
- `n-date-picker` adds `calendar-header-month-before-year` prop.
- `n-date-picker` adds `calendar-header-month-year-separator` prop.
- `n-progress`'s `color` prop supports gradient config.
- `n-select` adds `font-weight` theme variable.
- `n-input` adds `font-weight` theme variable.
- `n-data-table` adds `get-csv-header` and `get-csv-cell` props, closes [#6542](https://github.com/tusen-ai/naive-ui/issues/6542).

## 2.40.1

`2024-09-26`

### Fixes

- Fix `n-data-table` in virtual-x mode, when all column objects do not have the `fixed` attribute configured, it cannot be displayed normally.
- Fix `css-render` dependency version is not high enough to affect the `style-mount-target` attribute of `n-config-provider`.
- Fix `n-data-table`'s `rowProps` generated `class` will override the original row DOM's class.

## 2.40.0

`2024-09-26`

### Breaking Changes

- Fix `n-config-provider` doesn't inherit the class prefix from it's ascendant `n-config-provider`, closes [#5970](https://github.com/tusen-ai/naive-ui/issues/5970).
- Fix `n-date-picker`'s `weekFormat` uses different standards for year and week formatting. Now it uses local week and local year for year and week formatting.
- Dependency `date-fns` is upgraded to V3.
- `n-cascader`'s `filter` prop is now case insensitive.

### Fixes

- Fix `n-infinite-scroll` reaching bottom check is not correct, closes [#6133](https://github.com/tusen-ai/naive-ui/issues/6133).
- Fix `n-slider`'s rail may have styling issue in `vertical` mode when global CSS box-sizing is overrided, closes [#6114](https://github.com/tusen-ai/naive-ui/issues/6114).
- Fix `n-tabs` has style issue when using `prefix` slot, `suffix` slot or `addable` prop with vertical placement, closes [#6059](https://github.com/tusen-ai/naive-ui/issues/6059), [#6060](https://github.com/tusen-ai/naive-ui/pull/6060).
- Fix `n-upload` can only upload a maximum of 100 files in some old browsers when uploading directories, closes [#6027](https://github.com/tusen-ai/naive-ui/issues/6027).
- Fix `n-date-picker`'s `input-readonly` prop not working in the panel's inner input for `'datetime'` or `'datetimerange'`.
- Fix `n-menu` can't apply HTML attributes correctly on the component when `responsive` is set.
- Fix `n-float-button` throws error when used with `popover` component, closes [#5933](https://github.com/tusen-ai/naive-ui/issues/5933).
- Fix `n-badge` can't mask focus element's border, closes [#5929](https://github.com/tusen-ai/naive-ui/issues/5929).
- Fix `n-button` font-weight CSS variable's name is not correct, closes [#5922](https://github.com/tusen-ai/naive-ui/issues/5922).
- Fix `n-icon`'s `component` prop doesn't accept functional component.
- Fix `n-mention`'s panel is misplaced if `placement` is set to `'top'` or padding is set in component's style, closes [#6241](https://github.com/tusen-ai/naive-ui/issues/6241).
- Fix `n-carousel`'s transition doesn't work as expected, closes [#5993](https://github.com/tusen-ai/naive-ui/issues/5993).

### Features

- 🌟 `n-data-table` adds `virtual-scroll-x`, `virtual-scroll-header`, `height-for-row`, `header-height` and `min-row-height` props for supporting horizontal virtual scrolling when there are massive columns.
- 🌟 Adds `n-highlight` component.
- `n-scrollbar` adds `x-placement` and `y-placement` props, closes [#6089](https://github.com/tusen-ai/naive-ui/issues/6089).
- `n-date-picker` adds `clear`, `now` and `confirm` slots, closes [#6013](https://github.com/tusen-ai/naive-ui/issues/6013).
- `n-upload` adds `on-retry` prop, closes [#6031](https://github.com/tusen-ai/naive-ui/issues/6031).
- `n-slider`'s `marks` prop supports render function, closes [#5967](https://github.com/tusen-ai/naive-ui/issues/5967).
- `n-transfer`'s `source-title` and `target-title` props support render function, closes [#6004](https://github.com/tusen-ai/naive-ui/issues/6004).
- `n-data-table` add `rowData` params for `render-expand-icon` prop, closes [#6108](https://github.com/tusen-ai/naive-ui/issues/6108).
- `n-empty`'s `size` prop supports `'tiny'` size.
- `n-config-provider` adds `style-mount-target` prop to control where to mount components' style.
- `n-data-table` adds `allowExport` prop for column object.
- `n-date-picker` adds `year-range` prop.
- `n-tree-select` adds `header` slot, closes [#5915](https://github.com/tusen-ai/naive-ui/issues/5915).
- `n-select` adds `menu-size` prop.

## 2.39.0

`2024-07-15`

### Breaking Changes

- Fix `n-input-number` Exception when the value is a string in precision mode, closes [#6091](https://github.com/tusen-ai/naive-ui/issues/6091).

### Fixes

- Fix `n-form-item` validation state is not correctly updated [#6068](https://github.com/tusen-ai/naive-ui/issues/6068).
- Fix `n-select`'s header make inner input unavailable, closes [#6030](https://github.com/tusen-ai/naive-ui/issues/6030).
- Fix `n-tree` may have incorrect node selection status when `show-irrelevant-nodes` is disabled, close [#6115](https://github.com/tusen-ai/naive-ui/issues/6115).

### Features

- `n-data-table` adds `filter-icon-popover-props` prop, closes [#6111](https://github.com/tusen-ai/naive-ui/issues/6111).
- `n-input-number` adds `round` prop, closes [#6097](https://github.com/tusen-ai/naive-ui/issues/6097).
- `n-color-picker` add `on-clear` props.
- `n-upload`'s `on-preview` prop adds `detail.event` parameter. You can use `preventDefault` to prevent default anchor link open behavior. Closes [#6036](https://github.com/tusen-ai/naive-ui/issues/6036).
- `n-data-table` adds `thColorSorting`, `thColorSortingModal`, `thColorSortingPopover`, `tdColorSorting`, `tdColorSortingModal` and `tdColorSortingPopover` theme variables, closes [#6118](https://github.com/tusen-ai/naive-ui/issues/6118), [#6120](https://github.com/tusen-ai/naive-ui/issues/6120).

### i18n

- Add azAZ locale.
- Add uzUZ locale.

## 2.38.2

`2024-05-03`

### Fixes

- Fix `n-menu` Submenu's wai-aria role is not correct, closes [#5729](https://github.com/tusen-ai/naive-ui/issues/5729).
- Fix `n-tabs` style bug with type is `segment`,closes [#5728](https://github.com/tusen-ai/naive-ui/issues/5728).
- Fix the get\*String() methods for UTC/locale mismatch, closes [#5702](https://github.com/tusen-ai/naive-ui/issues/5702).
- Fix `n-dialog` / `n-modal` calling `destroy` method may throw error.
- Fix `useModal` setting `card` preset without corresponding props in `n-card` slots, closes [#5746](https://github.com/tusen-ai/naive-ui/issues/5746).
- Fix `Submenu` component's wai-aria role setting error of `n-menu`,closes [#5729](https://github.com/tusen-ai/naive-ui/issues/5729).
- Fix the `common` type error in the `theme-overrides` prop when modifying components' themes.
- Fix `n-split` may emit value less than `0`.

### Features

- `n-watermark` support multi-lines in content.
- Adds `n-infinite-scroll` component.
- `n-watermark` adds `text-align` prop.
- `n-qr-code` adds `type` prop, Customize rendering output by setting `type`, providing two options: `canvas` and `svg`.
- `n-card` adds `action`, `content`, `cover`, `footer` and `header-extra` props.
- `n-card`'s `title` prop supports render function.
- `n-upload` expose the `index` arg in `on-remove` function, closes [#5747](https://github.com/tusen-ai/naive-ui/issues/5747).
- `n-upload` exports `UploadOnDownload`, `UploadOnRemove`, `UploadOnFinish` and `UploadOnChange` types.
- `n-dialog` adds `action-class`, `action-style`, `content-class`, `content-style`, `title-class` and `title-style` props.
- `n-split` adds `pane1-class`, `pane1-style`, `pane2-class` and `pane2-style` props.
- `n-mention` adds `filter` method, closes [#5721](https://github.com/tusen-ai/naive-ui/pull/5721).
- `n-slider` adds wai-aria support.
- `n-date-picker` adds `time-picker-format` prop.
- `n-form-item` adds `feedback-class` and `feedback-style` props.
- `n-split` supports using pixel unit string as `value`.
- `n-scrollbar` adds `content-style` and `content-class` props, closes [#4497](https://github.com/tusen-ai/naive-ui/issues/4497).
- `n-image` adds `render-toolbar` prop.
- `n-cascader` adds `get-column-style` prop.
- `n-cascader` adds `get-render-prefix` prop.
- `n-cascader` adds `get-render-suffix` prop.
- `n-image` optimizes download icon style.
- `n-scrollbar` adds `height`, `width`, `radius`, `railInsetHorizontal`, `railInsetVertical` and `railColor` theme variables.

### i18n

- Add csCZ locale.
- Add missing itIT locale translations.

## 2.38.1

`2024-02-26`

### Fixes

- Fix `n-split`'s `min` attribute does not take effect.
- Fix `n-result` built-in icons not re-rendered after hydration.
- Fix `n-tabs` whose `type` is `'segment'` has capsule with wrong width and position after resize, closes [#5705](https://github.com/tusen-ai/naive-ui/issues/5705).
- Fix `n-tabs`'s capsule wrong width and position after resize within `n-modal`, closes [#5569](https://github.com/tusen-ai/naive-ui/issues/5569).
- Fix `n-split` doesn't work with `inline-theme-disabled` prop.
- Fix `n-float-button` doesn't work with `inline-theme-disabled` prop.

### Features

- `n-date-picker` adds `default-calendar-start-time` props when `type` is `'date'`/`'datetime'` or `'week'`, closes [#4493](https://github.com/tusen-ai/naive-ui/issues/4493).
- `n-tree-select` adds `get-children` prop.

## 2.38.0

`2024-02-22`

### Breaking Changes

- Fix `n-scrollbar`'s `scrollTo(x: number, y: number)` error where the order of method parameters does not match the document.

### Fixes

- Fix `n-tree`'s `override-default-node-click-behavior` prop may conflict with default switcher click or checkbox click behavior.
- Fix `n-scrollbar`'s typo on `aria-hidden` attribute.
- Fix `n-form-item`'s feedback may hide and show again, closes [#5583](https://github.com/tusen-ai/naive-ui/issues/5583).
- Fix `n-popselect`'s header make inner input unavailable, closes [#5494](https://github.com/tusen-ai/naive-ui/pull/5494).
- Fix `n-qr-code`'s style of size.
- Fix `n-badge` affects child elements' text color.

### Features

- 🌟 Adds `n-modal-provider` component and `useModal` method.
- 🌟 Adds `n-float-button` and `n-float-button-group` component.
- 🌟 Provides ES module bundle at `/dist/index.mjs` and `/dist/index.prod.mjs`.
- `n-auto-complete` adds `append` prop.
- `n-select` add native `title` attribute when `filterable` and blur input.
- `n-split` adds `size` prop and `on-update:size` prop.
- `n-split` adds `watch-props` prop, closes [#5526](https://github.com/tusen-ai/naive-ui/issues/5526).
- `n-drawer` adds `borderRadius` theme variable.
- adds `n-float-button` component.
- Provides ES module bundle.

### i18n

- Add `etEE` locale.

## 2.37.3

`2024-01-09`

### Fixes

- Fix `n-split` has no color if it's not used in a card.

## 2.37.2

`2024-01-09`

### Fixes

- `n-data-table`'s `downloadCsv` method will export selection & expand column.

## 2.37.1

`2024-01-08`

### Fixes

- Click clear button on components with popup may trigger reopen behaviors.
- Fix `n-form`'s `validate` returned `Promise` may not `resolve`.

### Features

- `n-collapse` adds `trigger-areas` prop.
- `n-date-picker`'s `is-date-disabled` callback prop supports get detail info of date/year/month/quarter button as parameter, closes [#4649](https://github.com/tusen-ai/naive-ui/issues/4649).
- `n-auto-complete` adds `empty` slot.
- `n-auto-complete` adds `show-empty` prop.

## 2.37.0

`2024-01-07`

### Breaking Changes

- `module` prop in `package.json` is changed from `es/index.js` to `es/index.mjs`.

### Fixes

- Fix `n-space` vnode reuse problem caused by filtering out comment nodes of slot, closes [#5136](https://github.com/tusen-ai/naive-ui/issues/5136).
- Fix `n-data-table`'s prop `pagination`'s `default-page-size` and `default-page` not work in uncontrolled mode, closes [#5201](https://github.com/tusen-ai/naive-ui/issues/5201).
- Fix `n-time-picker` formatting (format="HH: mm: ss. SSS") preventing modification of milliseconds in the edit box, closes [#5224](https://github.com/tusen-ai/naive-ui/issues/5224).
- Fix `n-notification` notification clips out of screen when screen width is less than 400px wide.
- Fix `n-carousel` transition effect incorrect when using the `slide` effect in loop mode with only two elements, closes [#4323](https://github.com/tusen-ai/naive-ui/issues/4323).
- Fix `n-carousel` trigger incorrect `current-index` value on arrow button click with single image, closes [#5130](https://github.com/tusen-ai/naive-ui/issues/5130).
- Fix `n-upload-trigger` in directory drag mode with a lot of files, some of the files are not read.
- Fix `n-dynamic-tags`'s abnormal behavior when using keyboard to trigger add button, closes [#5077](https://github.com/tusen-ai/naive-ui/issues/5077).
- Fix `n-tree` leaf node line color.
- Fix `n-collapse-item` cursor pointer to correct element, closes [#5482](https://github.com/tusen-ai/naive-ui/issues/5482).
- Fix `n-data-table` throws error if summary config has empty column.
- Fix `n-drawer`'s `on-mask-click` may be called multiple times.
- Fix `n-tree`'s `data` When the data source 'data' switches several times according to a certain scene, some logic of animation processing can cause errors in rendering the displayed data, closes [#5217](https://github.com/tusen-ai/naive-ui/issues/5217).
- Fix `n-radio` value's native input element's checked value is not updated, closes [#5184](https://github.com/tusen-ai/naive-ui/issues/5184).
- Fix `n-data-table` height incorrect when set `min-height` in empty state,closes [#5108](https://github.com/tusen-ai/naive-ui/issues/5108).
- Fix `n-tabs`'s bar not hidden when `value` is set manually to the value other than the children `n-tab`s, closes [#5100](https://github.com/tusen-ai/naive-ui/issues/5100).
- Fix `n-spin` abnormal animation, closes [#3556](https://github.com/tusen-ai/naive-ui/issues/3556).
- Fix `n-avatar`'s lazy loading and `fallback-src` prop not working when load error in lazy, closes [#5007](https://github.com/tusen-ai/naive-ui/issues/5007).
- <del>Fix `n-split` has no color if it's not used in a card.</del>
- Fix `n-card` `footer-class` prop not working.
- Fix `n-input` click clear icon to trigger twice when using the `clearable`, closes [#5510](https://github.com/tusen-ai/naive-ui/issues/5510).
- Fix `n-tabs` may miss over-scroll shadow if `placement` is `'left'` or `'right'`.
- Fix `n-date-picker` with range type can input start time that is later than end time, closes [#5544](https://github.com/tusen-ai/naive-ui/issues/5544).

### Features

- 🌟 Adds `n-flex` component.
- 🌟 `n-date-picker`'s `type` prop supports `'week'`.
- 🌟 `n-data-table` adds `downloadCsv` method, closes [#4260](https://github.com/tusen-ai/naive-ui/issues/4260).
- 🌟 `n-date-picker` adds `month-format`, `year-format` and `quarter-format` props, closes [#4891](https://github.com/tusen-ai/naive-ui/issues/4891).
- 🌟 `n-tree` adds `override-default-node-click-behavior` prop.
- 🌟 `n-tree-select` adds `override-default-node-click-behavior` prop.
- `n-space` adds `reverse` prop.
- `n-input` adds `clear` method, closes [#5423](https://github.com/tusen-ai/naive-ui/issues/5423).
- `n-time-picker` adds `'clear'` action, closes [#5334](https://github.com/tusen-ai/naive-ui/issues/5334).
- `n-select` supports RTL.
- `n-data-table` supports RTL.
- `n-dialog` supports RTL.
- `n-date-picker` adds `on-prev-month` `on-next-month` `on-prev-year` `on-next-year` prop, closes [#5350](https://github.com/tusen-ai/naive-ui/issues/5350).
- `n-input-number` adds `input-props` prop, closes [#5450](https://github.com/tusen-ai/naive-ui/issues/5450).
- Update `ruRU` locale.
- `n-drawer` adds `content-class` prop.
- `n-drawer-content` adds `body-class` `body-content-class` `footer-class` and `header-class` props.
- `n-tree` adds multiple `scrollTo` configurations.
- `n-form` adds `level` property from `FormItemRule` to show abnormal values but not block submit.
- `n-cascader` adds `ellipsis-tag-popover-props` prop.
- `n-select` adds `ellipsis-tag-popover-props` prop.
- `n-tree-select` adds `ellipsis-tag-popover-props` prop.
- `n-avatar-group` adds `expand-on-hover` prop.
- `n-tabs` adds `tab-class`, `add-tab-style` and `add-tab-class` props.
- `n-tree` adds `override-default-node-click-behavior` prop.
- `n-tree-select` adds `override-default-node-click-behavior` prop.
- Adds `n-flex` component.
- `n-pagination` adds `show-quick-jump-dropdown` prop, closes [#5251](https://github.com/tusen-ai/naive-ui/issues/5251).

## 2.36.0

`2023-12-18`

### Fixes

- Fix `n-tree` unexposed line color variable `--n-line-color`, closes [#5339](https://github.com/tusen-ai/naive-ui/issues/5339).
- Fix `n-tree` The style of the selected node is not displayed in the case of 'disabled'.
- Fix `n-tree` on `virtual-scroll` empty data placeholder lost problem.
- Fix `n-watermark` won't clear it's content when `content` prop is set to empty.
- Fix `n-tree` use `render-switcher-icon` prop to customize switcher icon will cause node selection, closes [#5380](https://github.com/tusen-ai/naive-ui/issues/5380).
- Fix `n-input` will display the password reveal button by default when the `type` is set to `password`. Starting with Microsoft Edge browser Version 87. closes [#5384](https://github.com/tusen-ai/naive-ui/issues/5384).
- Fix `n-radio-button` css var `buttonColor` not working.
- Fix `n-input` not display vertical scrollbar when `type` is `textarea` and the inline theme is disabled, closes [#5418](https://github.com/tusen-ai/naive-ui/issues/5418).
- Fix if `inline-theme-disabled` is set, custom color whose params include decimal won't work in `n-tag`, `n-avatar`, `n-badge`, `n-button`, `n-rate`.
- Fix `n-tabs`'s border height in `vertical` mode.
- Fix `n-tree`'s node's hover color has higher priority than selected color in `block-line` mode.
- Fix `n-tree` click expand switch causes checkbox being checked.
- Fix `n-progress` multiple `type="circle"` cases style override issue, closes [#7172](https://github.com/tusen-ai/naive-ui/issues/7172).

### Features

- `n-tree` adds `treeGetClickTarget` method to get click target of node click event, closes [#5375](https://github.com/tusen-ai/naive-ui/issues/5375).
- `n-space` adds `item-class` prop.
- `n-layout` adds `content-class` prop.
- `n-layout-sider` adds `collapsed-trigger-class` and `trigger-class` props.
- `n-spin` adds `content-class` and `content-style` props.
- `n-popover` adds `arrow-class`, `arrow-wrapper-class`, `arrow-wrapper-style`, `content-class`, `footer-class` and `header-class` props.
- `n-notification-provider` adds `container-class` prop.
- `n-message-provider` adds `container-class` prop.
- `n-loading-bar-provider` adds `container-class` prop.
- `n-thing` adds `content-class` and `description-class` props.
- `n-card` adds `content-class`, `footer-class`, `header-class` and `header-extra-class` props.
- `n-descriptions` adds `content-class` and `label-class` props.
- `n-upload` adds `file-list-class` and `trigger-class` props.
- `n-dynamic-tags` adds `input-class` and `tag-class` props.
- `n-dynamic-input` adds `item-class` prop.
- `n-slider` adds `on-dragstart` `on-dragend` prop, closes [#5365](https://github.com/tusen-ai/naive-ui/issues/5365).
- `n-dialog` adds `close` slot.
- `n-equation` export the `EquationProps` type.
- `n-popselect` adds `header` slot.
- `n-tree-select` adds `watch-props` prop.
- Adds `n-split` component, closes [#3557](https://github.com/tusen-ai/naive-ui/issues/3557).
- Adds `n-virtual-list` component.
- Adds `n-qr-code` component, closes [#2535](https://github.com/tusen-ai/naive-ui/issues/2535).
- `n-menu` add `responsive` prop, it will collapse overflow menu items in horizontal mode.
- `n-menu` add `deriveResponsiveState` method.

## 2.35.0

`2023-10-02`

### Breaking Changes

- `n-input`'s `suffix` to the back of `loading`, close [#4685](https://github.com/tusen-ai/naive-ui/issues/4685).
- Fix `n-log`'s `silent` attribute spelling problem, closes [#4875](https://github.com/tusen-ai/naive-ui/issues/4875).

### Fixes

- Fix `n-radio` export `radioProps` dosen't not includes `theme-overrides`.
- Fix `n-description-item`'s `span` doesn't work when `n-descriptions`'s `label-placement` is `'top'` if there's only single line, closes [#4874](https://github.com/tusen-ai/naive-ui/issues/4874).
- Fix `n-upload`'s `data` prop type can't include `Blob` element.
- Fix `n-select` allows option to be created with existed label, closes [#4703](https://github.com/tusen-ai/naive-ui/issues/4703).
- Fix `n-upload`'s `render-icon` prop's type.
- Fix `n-auto-complete`'s `onSelect` type, closes [#4617](https://github.com/tusen-ai/naive-ui/issues/4617).
- Fix `n-grid-item`'s suffix prop won't work with responsive config, closes [#4635](https://github.com/tusen-ai/naive-ui/issues/4635).
- Fix `n-tabs`'s `paneWrapperStyle` prop missing height after animation.
- Fix `n-tree` should check all items instead of uncheck all if indeterminate checkbox is clicked, closes [#4941](https://github.com/tusen-ai/naive-ui/issues/4941).
- Fix the Popover was not displayed when the `n-internal-selection` was disabled and the mouse was moved over the '+n' tag, closes [#4789](https://github.com/tusen-ai/naive-ui/issues/4789).
- Fix `n-input` doesn't display the vertical scroll bar when `type` is `textarea`, closes [#4570](https://github.com/tusen-ai/naive-ui/issues/4570).
- Fix `n-alert`'s content style problem, when there is no title and use closable, closes [#4588](https://github.com/tusen-ai/naive-ui/issues/4588).
- Fix `n-select`'s `empty` slot action then it is an interactive component, closes [#4700](https://github.com/tusen-ai/naive-ui/issues/4700).
- Fix `n-data-table` header and body's scrolling are not sync when using the keyboard, closes [#3941](https://github.com/tusen-ai/naive-ui/issues/3941).
- Fix `n-data-table` drag column causing text selection in Safari, closes [#4957](https://github.com/tusen-ai/naive-ui/issues/4957).
- Fix `n-data-table` ellipsis content in table cell would wrap with expand button when using tree data, closes [#3755](https://github.com/tusen-ai/naive-ui/issues/3755).
- Fix `useLoadingBar` can't finish loading when called `finish` method, closes [#4965](https://github.com/tusen-ai/naive-ui/issues/4965).
- Fix `n-select` can still trigger focus and blur event in the disabled state, closes [#4454](https://github.com/tusen-ai/naive-ui/issues/4454).
- Fix `n-steps` may have line wrap issue if step is more than 9.
- Fix `n-grid` v-show reports errors when switching multiple times, closes [#4422](https://github.com/tusen-ai/naive-ui/issues/4422).
- Fix `n-tree`'s `TreeOption`'s `checkboxDisabled` prop doesn't work when `check-on-click` is `true`.
- Fix rapid clicks on `n-date-input`'s buttons triggering a text select for the rest of the website.
- Fix `n-auto-complete`'s autocomplete menu's unexpected open when clicking the clear icon with the input not focused, closes [#4658](https://github.com/tusen-ai/naive-ui/issues/4658).
- Fix `n-input`'s `on-keyup` prop type, closes [#5101](https://github.com/tusen-ai/naive-ui/issues/5101).
- Fix `n-data-table`'s default sorter to place null values at the very top or bottom, closes [#5281](https://github.com/tusen-ai/naive-ui/issues/5281).
- Fix `n-popconfirm`'s action button should not be triggered multiple times,closes [#4687](https://github.com/tusen-ai/naive-ui/issues/4687).

### Features

- `n-drawer` adds `max-height`, `min-height`, `max-width` and `max-width` props.
- `n-progress` supports indicator slot when the `indicator-placement` is set to `'inside'` in the `'line'` type, closes [#4888](https://github.com/tusen-ai/naive-ui/issues/4888).
- `n-image-preview` adds `downaload` button, closes [#4302](https://github.com/tusen-ai/naive-ui/issues/4302).
- `n-transfer` adds `select-all-text` and `clear-text` prop, closes [#4910](https://github.com/tusen-ai/naive-ui/issues/4910).
- `n-tree` adds `scrollbar-props` prop, closes [#4021](https://github.com/tusen-ai/naive-ui/issues/4666).
- `n-select` adds `focusInput` `blurInput` methods.
- `n-tree-select` adds `focusInput` `blurInput` methods.
- `n-image-group` adds `on-preview-prev` `on-preview-next` prop.
- `n-tree` adds `show-line` prop, closes [#3796](https://github.com/tusen-ai/naive-ui/issues/3796), [#4554](https://github.com/tusen-ai/naive-ui/pull/4554).
- `n-tree` adds node information for `render-switcher-icon` props, closes [#4815](https://github.com/tusen-ai/naive-ui/issues/4815).
- `n-input-number` export the `select` method.
- `n-data-table` adds `n-data-table-tr--expanded` class to expanded rows, and `n-data-table-tr n-data-table-tr--expand` class to the additional row, closes [#4420](https://github.com/tusen-ai/naive-ui/issues/4420).
- `n-spin` adds `delay` prop.
- Adds `n-performant-ellipsis` component.
- `DataTableBaseColumn` adds `ellipsisComponent` prop.

### i18n

- Update `zhTW` locale.
- Add `svSE` locale.
- Update `jaJP` locale.

## 2.34.4

`2023-05-21`

### Fixes

- Fix `n-notification`'s `description` does not wrap when there is English, closes [#4609](https://github.com/tusen-ai/naive-ui/issues/4609).
- Fix `n-dynamic-input` can't access `value[index]` by `index` passed in `on-remove` prop.
- Fix `n-dynamic-input` doesn't return correct `index` in `on-create` callback.
- Fix `trTR` i18n, closes [#4231](https://github.com/tusen-ai/naive-ui/issues/4231).
- Fix `n-input`'s show password icon is offset when use both `password` and `disabled`, closes [#4364](https://github.com/tusen-ai/naive-ui/issues/4364).
- Fix `n-image` set `fallback-src` prop and lazy loading dosen't work, closes[#4480](https://github.com/tusen-ai/naive-ui/issues/4480).
- Fix `n-upload` warning cause by extraneous non-props attributes were passed to vue component `TransitionGroup` but could not be automatically inherited, closes [#4447](https://github.com/tusen-ai/naive-ui/issues/4447).
- Fix `n-menu` `show` `default` attribute spelling problem, closes [#4750](https://github.com/tusen-ai/naive-ui/issues/4750).
- Fix `n-icon-wrapper`'s theme error, closes [#4768](https://github.com/tusen-ai/naive-ui/issues/4768).

### Feats

- `n-dynamic-input` adds `action` slot, closes [#3981](https://github.com/tusen-ai/naive-ui/issues/3981).
- `n-dynamic-input` add `disabled` prop, closes [#4055](https://github.com/tusen-ai/naive-ui/issues/4055).
- `n-data-table` adds `titleAlign` prop, closes [#3954](https://github.com/tusen-ai/naive-ui/issues/3954).
- `n-rate` exposes `index` in the default slot, closes [#4413](https://github.com/tusen-ai/naive-ui/issues/4413).
- `n-scrollbar` adds `size` prop, closes [#3896](https://github.com/tusen-ai/naive-ui/issues/3896).
- `n-data-table`'s `render-expand-icon` add `expanded` param, closes [#4439](https://github.com/tusen-ai/naive-ui/issues/4439).
- `n-tabs` adds `pane-wrapper-class` `pane-wrapper-style` prop.
- `n-collapse` adds `titlePadding` theme variable, closes [#4728](https://github.com/tusen-ai/naive-ui/issues/4728).
- `n-tabs` adds `placement` prop.

### i18n

- Update `zhTW` locale.
- Add `faIR` locale.

## 2.34.3

`2022-12-24`

### Fixes

- Fix `n-progress`'s `indicator-text-color` prop doesn't work when `indicator-placement` is `'inside'`.
- Fix `n-image` error while operating the previewed image, closes [#4157](https://github.com/tusen-ai/naive-ui/issues/4157).
- Fix `n-tree` cannot access `mergedFilterRef` before initialization error, closes [#4134](https://github.com/tusen-ai/naive-ui/issues/4134).
- Fix `n-menu` can't override submenu dropdown's `trigger` by `dropdown-props`, closes [#4147](https://github.com/tusen-ai/naive-ui/issues/4147).
- Fix `n-ellipsis` cannot be closed when using `keep-alive`, closes [#4079](https://github.com/tusen-ai/naive-ui/issues/4079).
- Fix `n-upload` doesn't show thumbnail for file with image type file name, closes [#4198](https://github.com/tusen-ai/naive-ui/issues/4198).
- Fix `n-input` style bug of tiny size with autosize prop, closes [#4167](https://github.com/tusen-ai/naive-ui/issues/4167).
- Fix `n-image` & `n-avatar` in `lazy` mode, after setting the `intersection-observer-options` `rootMargin` attribute, the preload does not take effect.

### Feats

- `n-tree` adds `get-children` prop, closes [#4128](https://github.com/tusen-ai/naive-ui/issues/4128).
- `n-badge` adds `offset` prop, closes [#4149](https://github.com/tusen-ai/naive-ui/issues/4149).
- `n-card` adds `tag` prop.
- demos can now use `<script setup />`.
- `n-pagination` adds `select-props` prop, closes [#4199](https://github.com/tusen-ai/naive-ui/issues/4199).
- `n-select` adds `show-on-focus` prop, closes [#4191](https://github.com/tusen-ai/naive-ui/issues/4191).
- `n-pagination` adds `goto` prop, closes [#4133](https://github.com/tusen-ai/naive-ui/issues/4133).
- `n-upload` won't set `file` field of file info to `null` after file is uploaded, closes [#3868](https://github.com/tusen-ai/naive-ui/issues/3868).
- `n-form` adds `labelFontWeight` theme variable, closes [#3516](https://github.com/tusen-ai/naive-ui/issues/3516).
- `n-radio` adds `labelFontWeight` theme variable, closes [#3516](https://github.com/tusen-ai/naive-ui/issues/3516).
- `n-checkbox` adds `labelFontWeight` theme variable, closes [#3516](https://github.com/tusen-ai/naive-ui/issues/3516).
- `n-tree`'s `on-load` prop allows returned promise to resolve `false` to finish loading effect, closes [#4038](https://github.com/tusen-ai/naive-ui/issues/4038).

### i18n

- Update koKr locale.

## 2.34.2

`2022-11-22`

### Fixes

- Fix `n-config-provider`'s katex type issue.
- Fix `n-image` error in toolbar operation during preview, closes [#4144](https://github.com/tusen-ai/naive-ui/issues/4144).

## 2.34.1

`2022-11-21`

### Fixes

- Fix `n-select` will print useless content in console in multiple select mode.
- Fix `n-tree` misses `getCheckedData` and `getIndeterminateData` methods, closes [#4064](https://github.com/tusen-ai/naive-ui/issues/4064).
- Fix `n-data-table`'s column's `align` doesn't work for table header, closes [#4063](https://github.com/tusen-ai/naive-ui/issues/4063).

## 2.34.0

`2022-11-21`

### Breaking Changes

- Wrap a `div` container around the columns of `n-data-table` to optimize the layout of filter button, closes [#3853](https://github.com/tusen-ai/naive-ui/issues/3853).

### Feats

- 'themeOverRides' provide `labelFontWeight` for `n-form`, `n-radio`, `n-checkbox`, closes [#3516](https://github.com/tusen-ai/naive-ui/issues/3516).
- `n-avatar-group` exports `AvatarGroupOption` type, closes [#3879](https://github.com/tusen-ai/naive-ui/issues/3879).
- `n-transfer` adds `show-selected` prop, closes [#3711](https://github.com/tusen-ai/naive-ui/issues/3711).
- `n-data-table` adds `loading` slot, closes [#3865](https://github.com/tusen-ai/naive-ui/issues/3865).
- `n-mention` adds `on-update:show` prop, closes [#3882](https://github.com/tusen-ai/naive-ui/issues/3882).
- `n-tree` adds trigger node information for `on-update:expanded-keys`, `on-update:checked-keys` and `on-update:selected-keys` props, closes [#3885](https://github.com/tusen-ai/naive-ui/issues/3885).
- `n-tree-select` adds trigger node information for `on-update:expanded-keys` and `on-update:value` props, closes [#3885](https://github.com/tusen-ai/naive-ui/issues/3885).
- `n-tree` adds `getCheckedData` method.
- `n-tree` adds `getIndeterminateData` method.
- `n-tree-select` adds `getCheckedData` method.
- `n-tree-select` adds `getIndeterminateData` method.
- `n-tree-select` adds `focus` method.
- `n-tree-select` adds `blur` method.
- `n-cascader` adds `getCheckedData` method.
- `n-cascader` adds `getIndeterminateData` method.
- `n-input` adds `count-graphemes` prop, closes [#3967](https://github.com/tusen-ai/naive-ui/issues/3967).
- `n-cascader` adds `not-found` slot, closes [#3862](https://github.com/tusen-ai/naive-ui/issues/3862).
- `n-avatar` adds `img-props` prop, closes [#3963](https://github.com/tusen-ai/naive-ui/issues/3963).
- `n-data-table` adds `spin-props` prop, closes [#3649](https://github.com/tusen-ai/naive-ui/issues/3649).
- `n-button` adds `render-icon` prop, closes [#4007](https://github.com/tusen-ai/naive-ui/issues/4007).
- Add `n-equation` component.
- `n-image` adds `previewed-img-props` prop.
- `n-data-table` adds `scrollbar-props` prop, closes [#4021](https://github.com/tusen-ai/naive-ui/issues/4021).
- `n-upload` adds `should-use-thumbnail-url` prop, closes [#3861](https://github.com/tusen-ai/naive-ui/issues/3861).
- `n-upload` adds `render-icon` prop.
- `n-tree`'s `render-switcher-icon` prop is passed with `expanded` & `selected` state.
- `useDialog`'s option support `transformOrigin`, closes [#3901](https://github.com/tusen-ai/naive-ui/issues/3901).

### Fixes

- Fix `n-image` can be dragged by any button on mouse in preview mode, closes [#3950](https://github.com/tusen-ai/naive-ui/issues/3950).
- Fix `n-form-item`'s label text is in wrong position when `label-align="left"` and `require-mark-placement="left"` and `label-placement="left"`, closes [#3871](https://github.com/tusen-ai/naive-ui/issues/3871).
- Fix `n-tree`'s dragging causes partial white screen in Chrome and Edge with version 106, closes [#3909](https://github.com/tusen-ai/naive-ui/issues/3909).
- Fix `n-select` shows wrong value in select box after `value-field` is set and `max-tag-count="responsive"` and remove selected option in overflow tag's popover, closes [#3869](https://github.com/tusen-ai/naive-ui/issues/3869).
- Fix `n-ellipsis` won't overflow in `n-card`'s title, closes [#3935](https://github.com/tusen-ai/naive-ui/issues/3935).
- Fix `n-timeline-item`'s `line-type="dashed"` not working when `n-timeline`'s `horizontal` is set, closes [#4014](https://github.com/tusen-ai/naive-ui/issues/4014).
- Fix `n-popover` doesn't wrap line if word is too long.
- Fix `n-date-picker` can't delete all input content in some cases, closes [#3922](https://github.com/tusen-ai/naive-ui/issues/3922).
- Fix `n-input`'s `autosize` prop doesn't work properly if there are multiple spaces, closes [#4027](https://github.com/tusen-ai/naive-ui/issues/4027).
- Fix `n-pagination`'s `endIndex` maybe incorrect in last page, closes [#4057](https://github.com/tusen-ai/naive-ui/issues/4057).
- Fix `n-image` doesn't prevent space pressing scroll behavior in preview mode, closes [#3919](https://github.com/tusen-ai/naive-ui/issues/3919).

### i18n

- Add arDZ locale.
- Add trTR locale.

## 2.33.5

`2022-10-12`

### Fixes

- Fix `n-data-table` throws error on tree data check action, closes [#3832](https://github.com/tusen-ai/naive-ui/issues/3832).

## 2.33.4

`2022-10-06`

### Fixes

- Fix `n-timeline-item`'s `title`'s `margin-bottom` can't be set by theme variable, closes [#3722](https://github.com/tusen-ai/naive-ui/issues/3722).
- Fix `n-timeline-item`'s `meta` part's `margin-bottom` is overrided when nested in horizontal and vertical mode.
- Fix `n-tree-select` would remove selected first option if it's clicked when placed in `label` tag, closes [#3715](https://github.com/tusen-ai/naive-ui/issues/3715).
- Fix `n-popover` will show after `disabled` is set to `true` then `false` if it's shown at first.
- Fix `n-select`'s overflow popover won't hide after removing all options in it when `maxTagCount="responsive"`, closes [#3801](https://github.com/tusen-ai/naive-ui/issues/3801).
- Fix `n-upload` may only allow selecting directory in Firefox, closes [#3798](https://github.com/tusen-ai/naive-ui/issues/3798).
- Remove `package.json`'s `exports` field due to its poor compatibility, closes [#3786](https://github.com/tusen-ai/naive-ui/issues/3786).
- Fix `createDiscreteApi` throws error in SSR environment, closes [#3813](https://github.com/tusen-ai/naive-ui/issues/3813).
- Fix `n-tree-select` has wrong focus behavior when `filterable` and in single select mode.
- Fix `n-input-number` may not update input when value is set in `on-blur` callback.

### Feats

- `n-collapse-item`'s `header-extra` & `header` slots support `collapsed` param, closes [#3723](https://github.com/tusen-ai/naive-ui/issues/3723).
- `n-loading-bar-provider` adds `to` prop, closes [#3724](https://github.com/tusen-ai/naive-ui/issues/3724).
- `n-data-table`'s `on-update:checked-row-keys` will pass current row data and state, closes [#3626](https://github.com/tusen-ai/naive-ui/issues/3626).
- `n-data-table` column adds `resizable` prop, closes [#3165](https://github.com/tusen-ai/naive-ui/issues/3165).
- `createDiscreteApi` contains Vue app in returned value.
- Export `LayoutContentInst` type, closes [#3743](https://github.com/tusen-ai/naive-ui/issues/3743).
- Export `CarouselInst` type, closes [#3742](https://github.com/tusen-ai/naive-ui/issues/3742).
- `n-collapse` adds `itemMargin` theme variable, closes [#3788](https://github.com/tusen-ai/naive-ui/issues/3788).
- `n-select` adds `ignore-composition` prop, closes [#3789](https://github.com/tusen-ai/naive-ui/issues/3789).
- `n-card` exports `CardSegmented` type, closes [#3775](https://github.com/tusen-ai/naive-ui/issues/3775).
- `n-date-picker` adds `next-month` slot, closes [#3570](https://github.com/tusen-ai/naive-ui/issues/3570).
- `n-date-picker` adds `next-year` slot, closes [#3570](https://github.com/tusen-ai/naive-ui/issues/3570).
- `n-date-picker` adds `prev-month` slot, closes [#3570](https://github.com/tusen-ai/naive-ui/issues/3570).
- `n-date-picker` adds `prev-year` slot, closes [#3570](https://github.com/tusen-ai/naive-ui/issues/3570).
- `n-pagination` adds `to` prop, closes [#3773](https://github.com/tusen-ai/naive-ui/issues/3773).
- `n-avatar` adds `render-placeholder` prop, closes [#3751](https://github.com/tusen-ai/naive-ui/issues/3751).
- `n-avatar` adds `render-fallback` prop, closes [#3751](https://github.com/tusen-ai/naive-ui/issues/3751).
- `n-avatar` adds `fallback` slot.
- `n-transfer` adds `render-target-list` prop.
- `n-select` adds `show-checkmark` prop, closes [#3749](https://github.com/tusen-ai/naive-ui/issues/3749).
- `n-tree` adds `animated` prop, closes [#3784](https://github.com/tusen-ai/naive-ui/issues/3784).
- `n-slider` adds `markFontSize` theme variable, closes [#3820](https://github.com/tusen-ai/naive-ui/issues/3820).
- `n-avatar-group` adds `gap` theme variable, closes [#3819](https://github.com/tusen-ai/naive-ui/issues/3819).

## 2.33.3

`2022-09-13`

### Feats

- `n-dialog` adds `onAfterLeave` in DialogOptions Properties, closes [#3662](https://github.com/tusen-ai/naive-ui/issues/3662).
- `n-dynamic-tags` export `DynamicTagsOption` type, closes [#3677](https://github.com/tusen-ai/naive-ui/issues/3677).
- `n-upload` adds `responseType` prop, closes [#3666](https://github.com/tusen-ai/naive-ui/issues/3666).
- `n-dropdown`'s `DropdownOption` adds `show` prop, closes [#3703](https://github.com/tusen-ai/naive-ui/issues/3703).
- `n-data-table` adds `summary-placement` prop, closes [#3681](https://github.com/tusen-ai/naive-ui/issues/3681).
- `n-tabs` will scroll to active tab, closes [#3683](https://github.com/tusen-ai/naive-ui/issues/3683).

### Performance

- Fix `n-menu`'s `value` will cause useless rendering of menu item, closes [#3670](https://github.com/tusen-ai/naive-ui/issues/3670).

### Fixes

- Fix `n-date-picker`'s style is unexpected in `inline-theme-disabled` mode, closes [#3655](https://github.com/tusen-ai/naive-ui/issues/3655).
- Fix `n-data-table` can't set `n-dropdown`'s `theme-overrides`, closes [#3613](https://github.com/tusen-ai/naive-ui/issues/3613).
- Fix `n-carousel` displays abnoramlly if `transform: scale` style is set, closes [#3684](https://github.com/tusen-ai/naive-ui/issues/3684).
- Fix `n-tree`'s node is disabled after `checkboxDisabled` is set, closes [#3620](https://github.com/tusen-ai/naive-ui/issues/3620).
- Fix `n-tree`'s switcher won't work when `:show-irrelevant-nodes="false"` is set & being searched, closes [#3647](https://github.com/tusen-ai/naive-ui/issues/3647).
- Fix `n-progress`'s graph may overflow if `type="circle"` and `stroke-width` is too large, closes [#3638](https://github.com/tusen-ai/naive-ui/issues/3638).

## 2.33.2

`2022-09-01`

### Fixes

- Fix UMD bundle doesn't work, closes [#3642](https://github.com/tusen-ai/naive-ui/issues/3642).
- Fix `n-calendar`'s displayed month doesn't follow `default-value`, closes [#3645](https://github.com/tusen-ai/naive-ui/issues/3645).
- Fix `n-form-item`'s `require-mark-placement` prop not working when set to `left`, closes [#3628](https://github.com/tusen-ai/naive-ui/issues/3628).
- Fix `n-upload`'s `OnBeforeUpload` return type can only be `Promise<boolean>`.

### Feats

- `n-radio` adds `colorActive` theme variable, closes [#3610](https://github.com/tusen-ai/naive-ui/issues/3610).

## 2.33.1

`2022-08-29`

### Fixes

- Fix could not resolve "@vicons/ionicons5" error, closes [#3616](https://github.com/tusen-ai/naive-ui/issues/3616).

## 2.33.0

`2022-08-29`

### Breaking Changes

- `n-rate`'s `default-value` prop's default value is changed from `0` to `null`.

### Fixes

- Fix `n-select`'s menu missing option check mark in SSR mode, closes <https://github.com/07akioni/naive-ui-nuxt-demo/issues/4>.
- Fix `n-card`'s `embedded` prop not work in `n-dialog`, closes [#3592](https://github.com/tusen-ai/naive-ui/issues/3592).
- Fix `n-radio` warning when value prop type is boolean, closes [#3540](https://github.com/tusen-ai/naive-ui/issues/3540).
- Fix `n-tree` content width may overflow container, closes [#3561](https://github.com/tusen-ai/naive-ui/issues/3561).
- Fix `n-form-item` label text may overflow when it's left placement, closes [#3593](https://github.com/tusen-ai/naive-ui/issues/3593).

### Feats

- `n-menu` adds `disabled-field` prop.
- `n-rate` adds `clearable` prop.
- `n-slider` adds `keyboard` prop, closes [#3528](https://github.com/tusen-ai/naive-ui/issues/3528).
- Add `useDialogReactiveList` method, closes [#2041](https://github.com/tusen-ai/naive-ui/issues/2041).
- `DialogReactive` supports `onAfterEnter` prop, closes [#3569](https://github.com/tusen-ai/naive-ui/issues/3569).
- `DialogOptions` supports `class` prop, closes [#3591](https://github.com/tusen-ai/naive-ui/issues/3591).

## 2.32.2

`2022-08-19`

### Fixes

- Fix `n-menu` extra not working in submenu, closes [#3390](https://github.com/tusen-ai/naive-ui/issues/3390).
- Fix `n-tree` can't expand node with `type='group'`, closes [#3388](https://github.com/tusen-ai/naive-ui/issues/3388).
- Fix `n-pagination`'s' `default-page-size` prop doesn't follows `page-sizes` prop, closes [#3369](https://github.com/tusen-ai/naive-ui/issues/3369).
- Added `exports` field in package.json [#3410](https://github.com/tusen-ai/naive-ui/pull/3410).
- Fix `n-dropdown` option prefix & suffix's z-index, closes [#3433](https://github.com/tusen-ai/naive-ui/issues/3433).
- Fix `n-input-number`'s peers theme can't be configured, closes [#3422](https://github.com/tusen-ai/naive-ui/issues/3422).
- Fix `n-tag` pointer should be not allow when disabled, closes [#3494](https://github.com/tusen-ai/naive-ui/issues/3494).
- Fix `n-transfer` throws error if value has no corresponding option, closes [#3406](https://github.com/tusen-ai/naive-ui/issues/3406).
- Fix `n-data-table` column `onSelect`'s type, closes [#3430](https://github.com/tusen-ai/naive-ui/issues/3430).
- Fix `n-pagination` don't trigger quick jumper on quick jumper blur, closes [#3387](https://github.com/tusen-ai/naive-ui/issues/3387).
- Fix some components works abnormally in open mode shadow DOM, closes [#3281](https://github.com/tusen-ai/naive-ui/issues/3281).
- Fix `n-carousel` in `loop='true'` and `effect='slide'`, When there are only two elements, the transition switching effect of the rotation is opposite, closes [#3414](https://github.com/tusen-ai/naive-ui/issues/3413).
- Fix `n-input` can't input value after compositing is interrupted by rerender, closes [#3503](https://github.com/tusen-ai/naive-ui/issues/3503).
- Fix `n-layout`'s `embedded` prop not working after `n-config-provider` has set `inline-theme-disabled`, closes [#3500](https://github.com/tusen-ai/naive-ui/issues/3500).
- Fix `n-input` has duplicate placeholder if disabled, closes [#3467](https://github.com/tusen-ai/naive-ui/issues/3467).
- Fix `n-date-picker`'s `iconColor` theme variable not working, closes [#3501](https://github.com/tusen-ai/naive-ui/issues/3501).
- Fix `n-time-picker`'s `iconColor` theme variable not working, closes [#3501](https://github.com/tusen-ai/naive-ui/issues/3501).
- Fix `n-select`'s `node-props` prop doesn't work.
- Fix Nuxt report `CSSRender is not a function` error on preview, closes [#3506](https://github.com/tusen-ai/naive-ui/issues/3506).
- Fix `n-data-table`'s rows disabled by `column.expandable` can still be expanded, closes [#3373](https://github.com/tusen-ai/naive-ui/issues/3373).
- Fix `n-input-number` click add or minus button quickly may trigger value change loop, closes [#3329](https://github.com/tusen-ai/naive-ui/issues/3329).
- Fix `n-switch` some theme variables can't use non-px value, closes [#2938](https://github.com/tusen-ai/naive-ui/issues/2938).
- Fix `n-input` with `resize` & `type="textarea"` set can't be resized in some cases, closes [#3479](https://github.com/tusen-ai/naive-ui/issues/3479).
- Fix `n-countdown`'s `reset` method doesn't work in `onFinish` callback, closes [#3536](https://github.com/tusen-ai/naive-ui/issues/3536).

### Feats

- `n-menu`'s `MenuOption` add `show` prop to set whether the Menu option is displayed, closes [#3334](https://github.com/tusen-ai/naive-ui/issues/3334).
- `n-alert` adds `bordered` prop, closes [#3358](https://github.com/tusen-ai/naive-ui/issues/3358).
- `n-tag` add `trigger-click-on-close` prop, closes [#3343](https://github.com/tusen-ai/naive-ui/issues/3343).
- `n-cascader` adds `disabled-field` prop, closes [#3338](https://github.com/tusen-ai/naive-ui/issues/3338).
- `n-list` adds `clickable` prop.
- `n-list` adds `hoverable` prop.
- `n-list` adds `show-divider` prop.
- `n-thing` adds `content-style` prop.
- `n-thing` adds `description-style` prop.
- `n-data-table` adds `render-expand-icon` prop.
- `n-tree` adds `disabled-field` prop.
- `n-tree` adds `keyboard` prop, closes [#3438](https://github.com/tusen-ai/naive-ui/issues/3438).
- `n-tree-select` adds `disabled-field` prop.
- `n-collapse-item` adds `disabled` prop, closes [#3408](https://github.com/tusen-ai/naive-ui/issues/3408).
- `n-pagination` adds `simple` prop.
- `n-cascader` adds `arrow` slot, closes [#3459](https://github.com/tusen-ai/naive-ui/issues/3459).
- `n-transfer` adds `source-filterable` prop, closes [#3407](https://github.com/tusen-ai/naive-ui/issues/3407).
- `n-transfer` adds `target-filterable` prop, closes [#3407](https://github.com/tusen-ai/naive-ui/issues/3407).
- `n-transfer`'s `filter` prop adds `from` param.
- `n-list` supports RTL.
- `n-drawer` supports RTL.
- `n-input` adds `render-count` prop.
- `n-input` adds `countTextColorDisabled` theme variable, closes [#3481](https://github.com/tusen-ai/naive-ui/issues/3481).
- `n-statistic` adds `valueFontSize` theme variable, closes [#3510](https://github.com/tusen-ai/naive-ui/issues/3510).
- `n-data-table` adds `sticky-expanded-rows` to allow expanded content remains sticky, closes [#3485](https://github.com/tusen-ai/naive-ui/issues/3485).
- `n-tree` adds `scrollTo` method, closes [#3480](https://github.com/tusen-ai/naive-ui/issues/3480).
- `n-pagination` adds `display-order` prop, closes [#3466](https://github.com/tusen-ai/naive-ui/issues/3466).
- `n-grid` adds `layout-shift-disabled` prop, closes [#3301](https://github.com/tusen-ai/naive-ui/issues/3301).

## 2.32.1

`2022-07-30`

### Fixes

- Fix `n-drawer`'s warning when using `string` in `default-height` prop, closes [#3377](https://github.com/tusen-ai/naive-ui/issues/3377).
- Fix `n-transfer`'s `on-update:value` is not triggered when uncheck options, closes [#3393](https://github.com/tusen-ai/naive-ui/issues/3393).

### Feats

- `n-steps` supports RTL.

## 2.32.0

`2022-07-28`

### Breaking Changes

- `n-transfer`'s UI is totally refactored. The original transfer component is renamed as `n-legacy-transfer` and will be removed in next major version.

### Fixes

- Fix `n-date-picker` will cancel selecting in range mode if click at disabled confirm button, closes [#3254](https://github.com/tusen-ai/naive-ui/issues/3254).
- Fix `n-button`'s `focusable` prop doesn't work, closes [#3292](https://github.com/tusen-ai/naive-ui/issues/3292).
- Fix `n-upload`'s `on-error` & `on-finish` props don't allow `() => void` type, closes [#3290](https://github.com/tusen-ai/naive-ui/issues/3290).
- Fix `n-select`'s placeholder may overflow if it's long.
- Fix `n-input` has is no indent at the prefix if `type="textarea"` and `:autosize="true"`, closes [#3238](https://github.com/tusen-ai/naive-ui/issues/3238).
- Fix `n-select` focus loss when click `action` slot in `filterable` and `multiple`, closes [#3247](https://github.com/tusen-ai/naive-ui/issues/3247).
- Fix `n-carousel`'s `autoplay` prop be `true` `hover` can't stop the play, closes [#3304](https://github.com/tusen-ai/naive-ui/issues/3304).
- Fix `n-tree` may throw error on node selection `expanded-keys`, closes [#3319](https://github.com/tusen-ai/naive-ui/issues/3319).
- Fix `n-avatar` shows placeholder after load fails, closes [#3315](https://github.com/tusen-ai/naive-ui/issues/3315).
- Fix `n-input-number` register `mouseup` event multiple times when hold on button.
- Fix all components' exported props type's prop is `readonly`.
- Fix `n-tree`'s `check-on-click` prop sometimes doesn't work.
- Fix `n-progress`'s `offset-degree` prop behaves incorrectly.

### Feats

- `n-checkbox-group`'s `on-update:value` prop adds trigger checkbox's value to params, closes [#3277](https://github.com/tusen-ai/naive-ui/issues/3277).
- `n-tree` supports RTL.
- `n-input` adds `scrollTo` method, closes [#3280](https://github.com/tusen-ai/naive-ui/issues/3280).
- `n-legacy-grid` supports RTL.
- `n-statistic` supports RTL.
- `n-thing` supports RTL.
- `n-transfer` add `render-source-label` prop.
- `n-transfer` add `render-target-label` prop.
- `n-transfer` add `render-source-list` prop.
- `n-scrollbar` supports RTL.
- `useDialog` supports `onEsc` prop.
- `n-watermark` adds `global-rotate` prop.
- `n-notification` add `keepAliveOnHover` props to control whether the notification will be closed when mouse hover, closes [#3249](https://github.com/tusen-ai/naive-ui/issues/3249).

## 2.31.0

`2022-07-07`

### Breaking Changes

- `n-date-picker`'s `clearable` will control visibility of clear button if no `action` is set, closes [#1196](https://github.com/tusen-ai/naive-ui/issues/1196).
- `n-button`'s `native-focus-behavior` prop default value is changed to 'not on Safari'.

### Fixes

- Fix `n-data-table`'s column `render` prop's `index` param sequence exception when in expandable row, closes [#3153](https://github.com/tusen-ai/naive-ui/issues/3153).
- Fix `n-data-table` column's `colSpan` doesn't work correctly in virtual scroll mode, closes [#3052](https://github.com/tusen-ai/naive-ui/issues/3052).
- Fix `n-data-table` doesn't show `summary` row in virtual scroll mode, closes [#3202](https://github.com/tusen-ai/naive-ui/issues/3202).
- Fix `n-carousel` has wrong hierarchical relationship between when `effect` is `fade`, closes [#3227](https://github.com/tusen-ai/naive-ui/issues/3227).
- Fix `n-carousel` cannot slide under IOS, closes [#3106](https://github.com/tusen-ai/naive-ui/issues/3106).
- Fix `n-carousel` losing the size of content elements when rendering, closes [#3078](https://github.com/tusen-ai/naive-ui/issues/3078).
- Fix `n-cascader`'s filter menu doesn't show option path, closes [#3220](https://github.com/tusen-ai/naive-ui/issues/3220).
- Fix `n-cascader`'s `filter` prop may not get correct `path`.
- Fix `n-date-picker` menu's quarter text isn't same having `type="quarterrange"` and `type="quarter"`, closes [#3217](https://github.com/tusen-ai/naive-ui/issues/3217).
- Fix `n-notification`'s leave animation if content height overflows screen.
- Fix `n-dropdown`'s disabled option has hover style.
- Fix `n-dropdown`'s menu may shift when it's entering.
- Fix `n-dropdown`'s transform origin may not be correct in Chrome.
- Fix `n-radio-button` may not have correct cursor style, closes [#3243](https://github.com/tusen-ai/naive-ui/issues/3243).
- Fix `n-input`'s text color is too shallow with disabled state in Safari, closes [#3241](https://github.com/tusen-ai/naive-ui/issues/3241).
- Fix `n-input`'s separator may have line wrap.
- Fix all components' `user-select` style prop's effect on Safari.
- Fix `n-data-table` will prevent page scroll in virtual scroll mode.
- Fix `n-button` doesn't have pressed effect on Firefox.

### Feats

- `n-avatar` adds `lazy` prop.
- `n-avatar` adds `intersection-observer-options` prop.
- `n-number-animation` adds `on-finish` prop.
- `n-notification` supports RTL.
- Export all components' props object.
- `n-popover` adds `footer-style` prop.
- `n-popover` adds `footer` slot, closes [#3188](https://github.com/tusen-ai/naive-ui/issues/3188).
- `n-dropdown` adds `menu-props` prop, closes [#2885](https://github.com/tusen-ai/naive-ui/issues/2885).
- `n-data-table` adds `multiple` prop, closes [#3056](https://github.com/tusen-ai/naive-ui/issues/3056).
- `n-date-picker` would disable confirm button if end date is not selected, closes [#3226](https://github.com/tusen-ai/naive-ui/issues/3226).
- `n-tree` adds `check-on-click` prop to control `checked` status, closes [#2968](https://github.com/tusen-ai/naive-ui/issues/2968).
- `n-tree` adds `accrodion` prop, closes [#3129](https://github.com/tusen-ai/naive-ui/issues/3129).
- `n-countdown` adds `reset` method, closes [#3228](https://github.com/tusen-ai/naive-ui/issues/3228).
- `n-drawer` adds `resizable` prop.
- `n-drawer` adds `default-width` prop.
- `n-drawer` adds `default-height` prop.
- `n-drawer` adds `on-update:width` prop.
- `n-drawer` adds `on-update:height` prop.
- Update ukUA locale.
- `n-message` supports RTL.

## 2.30.8

`2022-06-29`

### Fixes

- Fix `n-select`'s menu transition style, closes [#3211](https://github.com/tusen-ai/naive-ui/issues/3211).

## 2.30.7

`2022-06-29`

### Fixes

- Fix `n-tabs`'s `bar-width` props invalid when `0` set, closes [#3171](https://github.com/tusen-ai/naive-ui/issues/3171).
- Fix `n-drawer` has log warnings of console when use `show-mask` prop, closes [#3172](https://github.com/tusen-ai/naive-ui/issues/3172).
- Fix `n-button` doesn't omit content if content is wrapped in ellipsis container, closes [#3178](https://github.com/tusen-ai/naive-ui/issues/3178).
- Fix `n-select` will remove select value in multiple mode in `form` if Enter key is pressed in input element. Closes [#3169](https://github.com/tusen-ai/naive-ui/issues/3169).
- Fix `n-select`'s filter prop not working, closes [#3175](https://github.com/tusen-ai/naive-ui/issues/3175).
- Fix `n-modal`'s mask may overlay over content if no preset is used, closes [#3204](https://github.com/tusen-ai/naive-ui/issues/3204).
- Fix `n-button`'s icon doesn't align correctly if it's too big or small.
- Fix `n-select`'s created options may repeat multiple times in menu, closes [#3206](https://github.com/tusen-ai/naive-ui/issues/3206).

### Feats

- `n-date-picker`'s `type` prop supports `'quarterrange'` and `'yearrange'`.
- `n-tree-select` adds `render-prefix` prop.
- `n-tree-select` adds `render-suffix` prop.
- `n-tree-select` adds `render-switcher-icon` prop.
- `n-tree-select` adds `node-props` prop.
- `n-tree-select` adds `render-label` prop, closes [#3197](https://github.com/tusen-ai/naive-ui/issues/3197).
- `n-tree-select` adds `render-tag` prop.
- `n-notification` adds `titleFontSize`, `metaFontSize`, `descriptionFontSize` theme variables.

## 2.30.6

`2022-06-22`

### Fixes

- Fix `n-color-picker` can't input alpha value correctly manually.
- Fix some components don't work correctly if `__VUE_OPTIONS_API__` is set to `false`, closes [#3146](https://github.com/tusen-ai/naive-ui/issues/3146).
- Fix `n-grid` doesn't adjust it's content to fit responsive config in SSR page, closes [#2462](https://github.com/tusen-ai/naive-ui/issues/2462).
- Fix `n-modal` when many instances are activated at same time, `on-mask-click` will be triggered on every modal even only one mask is clicked [#3147](https://github.com/tusen-ai/naive-ui/issues/3147).
- Fix `n-data-table`'s column `ellipsis` prop's type doesn't allow `style` prop.
- Fix `n-data-table`'s column will lose box shadow when set to `ellipsis` & `fixed` simultaneously, closes [#3145](https://github.com/tusen-ai/naive-ui/issues/3145).
- Fix `n-image`'s `lazy` prop doesn't work on Safari & Firefox.

## 2.30.5

`2022-06-20`

### Fixes

- Fix `n-input-group-label`'s content is abnormal in `n-drawer-content`, closes [#3115](https://github.com/tusen-ai/naive-ui/issues/3115).
- Fix `n-back-top` has log warnings of console when use `show` prop, closes [#3122](https://github.com/tusen-ai/naive-ui/issues/3122).
- Fix `volar.d.ts` components' type is `any`.
- Fix `n-grid-item` may not display correctly if `v-show` is used, closes [#3123](https://github.com/tusen-ai/naive-ui/issues/3123).
- Fix `n-select` clears input value on mouse enter when it's clearable and using IME.

### Feats

- 🌟 `n-image` adds `lazy` prop, closes [#3055](https://github.com/tusen-ai/naive-ui/issues/3055).
- `n-image` adds `intersection-observer-options` prop.
- `n-image` adds `placeholder` slot.
- Exports `NTooltipInst` type.
- `n-data-table` adds `render-cell` prop, closes [#3095](https://github.com/tusen-ai/naive-ui/issues/3095).
- `n-space` adds `wrap-item` prop.
- `n-data-table`'s `on-update:checked-row-keys` will pass row data, closes [#2215](https://github.com/tusen-ai/naive-ui/issues/2215), closes [#2265](https://github.com/tusen-ai/naive-ui/pull/2265).

## 2.30.4

`2022-06-15`

### Fixes

- Fix `n-button` is focused after click with `:focusable="false"`, closes [#3071](https://github.com/tusen-ai/naive-ui/issues/3071).
- Fix `n-data-table` fixed selection may overlap with other fixed columns if it's width is not default, closes [#3067](https://github.com/tusen-ai/naive-ui/issues/3067).
- Fix `n-popselect` doesn't trigger `on-update:show` when it select value then menu is closed.
- Fix `n-popselect`'s width can't be set via `style`.
- Fix `n-date-picker`'s year & month quick jump may be disabled after `is-date-disabled` is set, closes [#3068](https://github.com/tusen-ai/naive-ui/issues/3068).
- Fix `n-layout` won't keep scroll state in `keep-alive` component, closes [#3054](https://github.com/tusen-ai/naive-ui/issues/3054).
- Fix `n-layout-sider` won't keep scroll state in `keep-alive` component.
- Fix `n-tree` may trigger loading multiple times.
- Fix `n-tree` throws error on async expanding data with `:expand-on-click="true"`, closes [#3089](https://github.com/tusen-ai/naive-ui/issues/3089).
- Fix `n-slider`'s tooltip has no enter transition when it's triggered by keyboard.
- Fix `n-slider` mark text's line wrap isn't correct when it appears at right-most position.
- Fix `n-upload`'s inner anchor element may show focus-visible outline style.
- Fix `n-upload` shows slot warning when `list-type="image-card"`.
- Fix `n-upload` image's corner may overflow item when `list-type="image-card"`.
- Fix `n-dynamic-tags`'s `on-create` prop not working.
- Fix virtual scroll stucking issue introduced by Chrome 102, closes [#3048](https://github.com/tusen-ai/naive-ui/issues/3048).
- Fix `n-upload-dragger` is almost transparent if disabled.

### Feats

- 🌟 `n-pagination` adds dropdown menu for fast jump button.
- 🌟 `n-input` adds `allow-input` prop.
- 🌟 `n-data-table` adds `default-expand-all` prop, closes [#3073](https://github.com/tusen-ai/naive-ui/issues/3073).
- 🌟 `n-modal` with inner popup component like `n-select` can handle esc key pressing correctly, closes [#2973](https://github.com/tusen-ai/naive-ui/issues/2973).
- `n-tree-select` adds `arrow` slot, closes [#3084](https://github.com/tusen-ai/naive-ui/issues/3084).
- `n-cascader` will show corresponding submenu after checkbox is clicked, closes [#3079](https://github.com/tusen-ai/naive-ui/issues/3079).
- `n-upload` will disable dragger when maximum number of files was reached.
- `n-select` adds `node-props` prop.
- `n-popselect` adds `node-props` prop.
- `n-popselect` adds `virtual-scroll` prop.
- `n-data-table` adds `scrollTo` method, closes [#2570](https://github.com/tusen-ai/naive-ui/issues/2570).
- `n-slider` adds `thumb` slot.

## 2.30.3

`2022-06-09`

### Fixes

- Fix `n-cascader`'s overflow count tag's popover can't scroll after `filterable` is set, closes [#3061](https://github.com/tusen-ai/naive-ui/issues/3061).
- Fix `n-drawer`'s `show-mask` prop will warn if `'transparent'` is passed.
- Fix `n-calendar` doesn't call `on-panel-change` when date of other months is clicked, closes [#3063](https://github.com/tusen-ai/naive-ui/issues/3063).

### Feats

- 🌟 UMD usage is supported.
- `n-cascader` will expand menu to selected value, closes [#3058](https://github.com/tusen-ai/naive-ui/issues/3058).
- `n-space` will use `gap` CSS property if possible, closes [#3053](https://github.com/tusen-ai/naive-ui/issues/3053).

## 2.30.2

`2022-06-07`

### Fixes

- Fix `n-select` recomputed options on menu close, improves performance.

## 2.30.1

`2022-06-07`

### Feats

- `n-menu` adds `arrowColorChildActiveHover`, `itemIconColorChildActiveHoverHorizontal`, `itemIconColorChildActiveHover`,`itemTextColorChildActiveHoverHorizontal`, `itemTextColorChildActiveHover`, `arrowColorChildActiveHoverInverted`, `itemIconColorChildActiveHoverHorizontalInverted`, `itemIconColorChildActiveHoverInverted`,`itemTextColorChildActiveHoverHorizontalInverted`, `itemTextColorChildActiveHoverInverted` theme variables, closes [#2929](https://github.com/tusen-ai/naive-ui/issues/2929).

### Fixes

- Fix `n-menu` `node-props` is not applied to element with `role="menuitem"` but a inner element.
- Fix `n-menu` `node-props` doesn't work with `type="group"` option.

## 2.30.0

`2022-06-06`

### Breaking Changes

- Theme variable `closeColor`, `closeColorHover`, `closeColorPressed` are renamed to `closeIconColor`, `closeIconColorHover`,`closeIconColorPressed`. `closeColorHover`, `closeColorPressed` still exist, controlling background color of close button.
- `n-tag`'s `colorXxx` theme variables are renamed to `colorBorderedXxx`. `colorXxx` still exists, controlling background color of borderless tag.

### Fixes

- Fix `createDiscreteApi` not working with `'loadingBar'`.
- Fix `n-popover` background color shifts when closed on theme changing.
- Fix `n-select`'s menu position doesn't sync with select box when select box's size is changed.
- Fix `n-scrollbar` can't show horizontal scrollbar, closes [#3047](https://github.com/tusen-ai/naive-ui/issues/3047).
- Fix `n-tree` node's pressed style is prior to selected style when `:block-line="true"` and `:selectable="true"`.
- Fix `n-slider` may leak event handler on edga case.
- Fix `n-data-table` doesn't restore scroll state when it's reactivated inside `keep-alive` component, closes [#2522](https://github.com/tusen-ai/naive-ui/issues/2522).
- Fix `n-image` zoom level doesn't fit ultra large image.
- Fix `n-menu`'s dropdown option text style when some of it's descendants is activated.
- Fix `n-input`'s `input-props` prop's `class` & `style` not working.

### Feats

- 🌟 `n-time-picker` adds `time-zone` prop, closes [#293](https://github.com/tusen-ai/naive-ui/issues/293).
- 🌟 `n-input-number` adds `parse` prop.
- 🌟 `n-input-number` adds `format` prop.
- 🌟 `n-input-number` adds `precision` prop, closes [#2068](https://github.com/tusen-ai/naive-ui/issues/2068), [#1859](https://github.com/tusen-ai/naive-ui/issues/1859).
- 🌟 `n-image` adds a switch to display the original size of the picture, closes [#3023](https://github.com/tusen-ai/naive-ui/issues/3023).
- 🌟 All components' close buttons use new style and are focusable.
- All components' select menu & dropdown menu's options use new style.
- `n-tag` adds `icon` slot.
- `n-tag` adds `strong` prop.
- `n-tag` adds background color in dark theme when `:bordered="false"`, closes [#1699](https://github.com/tusen-ai/naive-ui/issues/1699).
- `n-time` adds `time-zone` prop.
- `n-breadcrumb-item` adds `clickable` prop.
- `n-breadcrumb-item` uses new style, adds `itemLineHeight`, `itemBorderRadius`, `itemColorHover`, `itemColorPressed` theme variables.
- `n-notification` optimizes title style when it's too long.
- `n-drawer` optimizes title style when it's too long.
- `n-dialog` optimizes title style when it's too long.
- `n-card` optimizes title style when it's too long.

## 2.29.1

`2022-06-03`

### Fixes

- Fix `n-tree` throw error when use `pattern` prop filter the tree node, closes [#2960](https://github.com/tusen-ai/naive-ui/issues/2960).
- Fix `n-watermark` not working when `cls-prefix` is set.
- Fix `n-dropdown`'s incorrect render arrow when `:show-arrow="true"`, closes [#2977](https://github.com/tusen-ai/naive-ui/issues/2977).
- Fix `n-upload-dragger` doesn't take full width.
- Fix `n-global-style` doesn't clear body element's padding and margin.
- Fix `n-modal` won't clear document body's overflow style if it's unmounted when it is shown, closes [#3015](https://github.com/tusen-ai/naive-ui/issues/3015).
- Fix keyboard operation doesn't work in some specific old browsers.
- Fix `n-tabs` lacks tab padding when `justify-content` is `'start'`, `'end'` or `'center'`.
- Fix `n-tabs` doesn't update bar's position after `justify-content` or `size` is updated.
- Fix `n-switch` has no transition effect when toggle `disabled`.
- Fix `n-modal` & `n-drawer` will be closed on esc pressed during IME input, closes [#2989](https://github.com/tusen-ai/naive-ui/issues/2989).
- Fix `n-date-picker` can select time when is selecting date in date time range picker, closes [#3004](https://github.com/tusen-ai/naive-ui/issues/3004).
- Fix `n-pagination` has display issue when `:page-count="0"`, closes [#2970](https://github.com/tusen-ai/naive-ui/issues/2970).
- Fix `n-date-picker`'s `shortcuts` will be overrided by `default-time` when `type="datetimerange"`, closes [#3020](https://github.com/tusen-ai/naive-ui/issues/3020).
- Fix `n-image-group` switch pictures doesn't work in SSR mode.
- Fix `n-tabs`'s height transition sometimes not applied when `display-directive="show"` and `:animated="true"`, closes [#3035](https://github.com/tusen-ai/naive-ui/issues/3035).
- Fix `n-select`'s filter font size is a bit small in single select mode.
- Fix `n-select`'s count tag's popover is too high when overflow tag's count is small.
- Fix `n-date-picker`'s first time scroll state of items is not aligned when `type="monthrange"`.
- Fix `n-form-item`'s asterisk in required mode can be selected.
- Fix `n-list`'s color is incorrect inside `n-popover` in dark mode.

### Feats

- 🌟 `n-select` adds `label-field` prop, closes [#3018](https://github.com/tusen-ai/naive-ui/issues/3018).
- 🌟 `n-select` adds `value-field` prop, closes [#3018](https://github.com/tusen-ai/naive-ui/issues/3018).
- 🌟 `n-steps` adds `on-update:current` prop.
- 🌟 `n-date-picker` adds `panel` prop.
- 🌟 `n-data-table` adds `on-scroll` prop, closes [#3025](https://github.com/tusen-ai/naive-ui/issues/3025).
- 🌟 `FormItemRule` adds `renderMessage` prop, closes [#2525](https://github.com/tusen-ai/naive-ui/issues/2525).
- 🌟 Add `createDiscreteApi` to create message, notification, dialog, loading bar outside setup.
- `n-scrollbar` adds `trigger` prop.
- `n-input-number` adds `button-placement` prop.
- `n-select` adds `children-field` prop, closes [#3018](https://github.com/tusen-ai/naive-ui/issues/3018).
- `n-upload` adds `trigger-style` prop.
- `n-dropdown` adds `node-props` prop.
- `n-dropdown` adds `render-option` prop.
- `n-upload` adds `is-error-state` prop, closes [#2975](https://github.com/tusen-ai/naive-ui/issues/2975).
- `n-date-picker`'s `shortcuts` prop supports readonly tuple type.
- `n-step` adds `disabled` prop.
- `n-calendar` adds `header` slot, closes [#3036](https://github.com/tusen-ai/naive-ui/issues/3036).
- `n-tree` adds `expand-on-click` prop, [#2949](https://github.com/tusen-ai/naive-ui/issues/2949).

## 2.29.0

`2022-05-18`

### Breaking Changes

- Since `n-pagination` supports `size` prop, some theme variables of `n-pagination` are changed.

### Fixes

- Fix `n-menu` use `render-icon` function render incorrect when returns `true`.
- Fix `n-tabs`'s `tabFontWeightActive` theme varialbe applies to all tabs, closes [#2926](https://github.com/tusen-ai/naive-ui/issues/2926).
- Fix `n-tree-select`'s `default-expand-all` not working.
- Fix `n-upload`'s `accept` prop doesn't work in drag & drop mode, closes [#2919](https://github.com/tusen-ai/naive-ui/issues/2919).
- Fix `n-calendar`'s `on-panel-change` returning wrong month value when clicking Today.
- Fix `n-time` throws error caused by `getTimezoneOffset` in SSR mode, closes [#2545](https://github.com/tusen-ai/naive-ui/issues/2545).
- Fix `n-transfer`'s search box's box-shadow is truncated.
- Fix `n-time-picker`'s input box's invalid value won't be cleared after blur.

### Feats

- `n-notification-provider`'s `placement` prop supports `'top'` and `'bottom'`, closes [#2930](https://github.com/tusen-ai/naive-ui/issues/2930).
- `n-pagination` add `size` prop, closes [#2888](https://github.com/tusen-ai/naive-ui/issues/2888).
- `n-config-provider` adds `preflight-style-disabled` prop.
- `n-pagination`'s quick jumper only allow integer input, closes [#2928](https://github.com/tusen-ai/naive-ui/issues/2928).
- `n-pagination` will jump to the first / last page when its value is out of range, closes [#2928](https://github.com/tusen-ai/naive-ui/issues/2928).
- `n-color-picker` adds `on-confirm` prop.
- `n-input` adds `clear-icon` slot.
- `n-date-picker` adds `date-icon` slot, closes [#2668](https://github.com/tusen-ai/naive-ui/issues/2668).
- `n-date-picker` adds `separator` slot, closes [#2668](https://github.com/tusen-ai/naive-ui/issues/2668).

### i18n

- Add nlNL locale.

## 2.28.4

`2022-05-11`

### Fixes

- Fix `n-theme-editor`'s content can't be scrolled.

## 2.28.3

`2022-05-11`

### Fixes

- Fix `n-menu`'s `dropdown-props` prop can't override `n-dropdown`'s `size` prop, closes [#2868](https://github.com/tusen-ai/naive-ui/issues/2868).
- Fix `n-switch` abnormal loading animation when switching state, closes [#2870](https://github.com/tusen-ai/naive-ui/issues/2870).
- Fix `n-data-table` doesn't show content when page is more than data's page, closes [#2840](https://github.com/tusen-ai/naive-ui/issues/2840).
- Fix `n-data-table`'s `cellProps` doesn't has correct generic type.
- Fix `n-data-table`'s `work-break` isn't `break-word`.
- Fix `n-list`'s css variable `n-merged-color` is not correct.
- Fix `MessageReactive`'s `destroy` method throws error if message has disappeared.
- Fix `n-ellpisis` can't show tooltip if content width is very close to container width, closes [#1393](https://github.com/tusen-ai/naive-ui/issues/1393), [#2899](https://github.com/tusen-ai/naive-ui/issues/2899).
- Fix `n-tree` can't use `width: fit-content;` style, closes [#2875](https://github.com/tusen-ai/naive-ui/issues/2875).
- Fix `n-dropdown`'s `on-update:show` prop will be triggered twice, closes [#2905](https://github.com/tusen-ai/naive-ui/issues/2905).
- Fix `n-select` can select option by pressing enter after options are cleared.
- Fix `n-data-table`'s `selection` and `expand` column can't set width.
- Fix `n-checkbox` contains selectable whitespace.
- Fix `DescriptionsProps` is misspelled as `DescriptionProps`.
- Fix `n-icon` misses `IconProps`.
- Fix `n-icon-wrapper` misses `IconWrapperProps`.
- Fix `n-countdown`'s display value is 1s faster than actual left time when `precision=0`, closes [#2910](https://github.com/tusen-ai/naive-ui/issues/2910).

### Feats

- `n-menu` adds `node-props` prop.
- `n-switch` adds `rubber-band` prop.
- `n-space`'s `justify` prop supports `'space-evenly'`.
- `n-popover` adds `content-style` prop.
- `n-popover` adds `header-style` prop.
- `n-popover` adds `scrollable` prop.
- `n-select` & `n-cascader` & `n-tree-select`'s overflow count tag's popover is scrollable.
- `n-data-table` adds `pagination-behavior-on-filter` prop.
- `n-date-picker`'s `type` prop supports `monthrange` option.
- `n-date-picker` adds `on-clear` prop.
- `n-date-picker` adds `on-confirm` prop, closes [#2852](https://github.com/tusen-ai/naive-ui/issues/2852).
- `n-data-table`'s `columns`'s element supports `minWidth` prop.
- `n-tree` adds `checkbox-placement` prop.
- `n-tree-select` adds `loading` prop, closes [#2857](https://github.com/tusen-ai/naive-ui/issues/2857).
- `n-modal` adds `block-scroll` prop, closes [#2556](https://github.com/tusen-ai/naive-ui/issues/2556).
- `n-drawer` adds `block-scroll` prop, closes [#2556](https://github.com/tusen-ai/naive-ui/issues/2556).
- `n-drawer` adds `show-mask` prop, closes [#2556](https://github.com/tusen-ai/naive-ui/issues/2846).
- `useDialog().xxx` supports `blockScroll` option, closes [#2556](https://github.com/tusen-ai/naive-ui/issues/2556).
- `useDialog().xxx` supports `autoFocus` option.
- `n-button` adds `native-focus-behavior` prop, closes [#2882](https://github.com/tusen-ai/naive-ui/issues/2882).
- `n-time-picker` adds `on-confirm` prop.
- `n-time-picker` adds `on-clear` prop.
- `n-time-picker` adds `on-update:show` prop.
- `n-time-picker` adds `show` prop.
- `n-date-picker` adds `on-update:show` prop.
- `n-date-picker` adds `show` prop.
- `n-date-picker` adds `default-calendar-start-time` prop, closes [#2732](https://github.com/tusen-ai/naive-ui/issues/2732).
- `n-date-picker` adds `default-calendar-end-time` prop, closes [#2732](https://github.com/tusen-ai/naive-ui/issues/2732).
- `n-date-picker` adds `bind-calendar-months` prop, closes [#2751](https://github.com/tusen-ai/naive-ui/issues/2751).
- `n-upload` adds `directory` prop.
- `n-upload` adds `directory-dnd` prop.
- `UploadFileInfo` adds `fullPath` and `batchId` attrs.
- `DataTableBaseColumn` adds `tree` attr, closes [#2757](https://github.com/tusen-ai/naive-ui/issues/2757).

## 2.28.2

`2022-04-22`

### Fixes

- Fix `date-picker` `actions`'s type can't be `null`.
- Fix `time-picker` `actions`'s type can't be `null`.
- Fix `n-tree-select`'s meaningless warning.
- Fix `n-tree-select`'s `allow-checking-not-loaded` prop doesn't work.
- Fix `n-tree-select`'s menu position may not sync with trigger box if `:allow-checking-not-loaded="true"`.
- Fix `n-cascader`'s menu position may not sync with trigger box if `:allow-checking-not-loaded="true"`.

## 2.28.1

`2022-04-20`

### Fixes

- Fix `notification` icon won't show after first notification is emitted in SSR mode, closes [#2793](https://github.com/tusen-ai/naive-ui/issues/2793).
- Fix `dialog` icon won't show after first dialog is displayed in SSR mode.
- Fix `n-drawer` & `n-modal` may overflow screen on opening if `:autofocus="true"`.
- Fix `n-tree-select`'s filter not working correctly when `children-field` is not set, closed [#2789](https://github.com/tusen-ai/naive-ui/issues/2789).
- Fix `n-tree-select`'s matched style is not cleared after filter value is cleared.
- Fix `n-tree-select`'s parent items in tree are selectable when `check-strategy="child"` and `:cascade="false"`, closes [#2780](https://github.com/tusen-ai/naive-ui/issues/2780).
- Fix `n-select`'s `empty` slot can't let `n-input` focus inside, closes [#2812](https://github.com/tusen-ai/naive-ui/issues/2812).
- Fix `n-select`'s menu is invisible in fullscreen mode, closes [#2722](https://github.com/tusen-ai/naive-ui/issues/2722).
- Fix `n-color-picker`'s `value` prop can't be `null`.
- Fix `n-table`'s border color shifts when switch bewteen different props.

### Feats

- `n-input-number` adds `add-icon` and `minus-icon` slots, closes [#2668](https://github.com/tusen-ai/naive-ui/issues/2668).
- `n-dynamic-input` adds `RTL` support.
- `n-table` adds `RTL` support.
- `n-collapse-transition` adds `RTL` support.
- `n-tree` adds `show-irrelevant-nodes` prop, closes [#2764](https://github.com/tusen-ai/naive-ui/issues/2764).
- `n-tree-select` adds `allow-checking-not-loaded` prop.
- `n-cascader` adds `allow-checking-not-loaded` prop.
- `n-tree` adds `allow-checking-not-loaded` prop.
- `n-button-group` adds `RTL` support.

### i18n

- Add ptBR locale.
- Add koKR locale.

## 2.28.0

`2022-04-11`

### Breaking Changes

- `n-time` uses `formatDistanceStrict` rather than `formatDistance` in `date-fns`, closes [#2703](https://github.com/tusen-ai/naive-ui/issues/2703).

### Fixes

- Fix `n-tabs` has unexpected line animation when nested with `n-tabs`, closes [#2689](https://github.com/tusen-ai/naive-ui/issues/2689).
- Fix `n-popconfirm` with no body content has wrong margin top, closes [#2690](https://github.com/tusen-ai/naive-ui/issues/2690).
- Fix `n-tree-select` unexpected warning.
- Fix `n-calendar`'s disabled cells are clickable, closes [#2686](https://github.com/tusen-ai/naive-ui/issues/2686).
- Fix message icon won't show after first message is emitted in SSR mode, closes [#2721](https://github.com/tusen-ai/naive-ui/issues/2721).
- Fix `n-popconfirm`'s `positive-button-props` and `negative-button-props` props lack reactivity, closes [#2753](https://github.com/tusen-ai/naive-ui/issues/2753).
- Fix `n-step` has unexpected theme variable class.
- Fix `n-steps` displays uncorrectly when nested in vertical & horizontal mode.
- Fix `n-popconfirm`'s `positive-text` & `negetive-text` props don't allow `null` type.
- Fix `n-color-picker` can't be closed if mousedown.stop is set when click outside, closes [#2709](https://github.com/tusen-ai/naive-ui/issues/2709).
- Fix `n-tabs` switch animation is incorrect when `display-directive='show'`, closes [#2718](https://github.com/tusen-ai/naive-ui/issues/2718).

### Feats

- `n-radio` adds `label` prop, closes [#2707](https://github.com/tusen-ai/naive-ui/issues/2707).
- `n-drawer` adds `on-after-enter` and `on-after-leave` props, closes [#2698](https://github.com/tusen-ai/naive-ui/issues/2698).
- `n-data-table` adds `paginate-single-page` prop , closes [#2043](https://github.com/tusen-ai/naive-ui/issues/2043).
- `n-pagination` add `RTL` support.
- `n-alert` add `RTL` support.
- `n-data-table` adds `allow-checking-not-loaded` prop, closes [#2758](https://github.com/tusen-ai/naive-ui/issues/2758).

## 2.27.0

`2022-03-27`

### Breaking Changes

- `n-menu` has some style changes.

### Fixes

- Fix `n-data-table`‘s row disorder when using `expand` type, closes [#2631](https://github.com/tusen-ai/naive-ui/issues/2631).
- Fix `n-popconfirm` doesn't has `setShow` & `syncPosition` methods.
- Fix `n-popselect` doesn't has `setShow` & `syncPosition` methods.
- Fix `n-menu` theme's peers missing `Dropdown`.
- Fix `n-color-picker` can't input 0 as unit's value, closes [#2680](https://github.com/tusen-ai/naive-ui/issues/2680).
- Fix `n-tree`'s scrollbar overflows in virtual scroll mode, closes [#2673](https://github.com/tusen-ai/naive-ui/issues/2673).
- Fix `n-layout-sider`'s `content-style` can't override `overflow: auto` prop, closes [#2671](https://github.com/tusen-ai/naive-ui/issues/2671).
- Fix `n-date-picker` displays panel item abnormally with `month` and `quarter` type in dark mode.
- Fix `n-dropdown` `onUpdateShow` not working.
- Fix `n-auto-complete` `onSelect` is triggered after `onUpdate:value`.
- Fix `n-data-table` `initiatorColumn` in `onUpdate:filters`'s type is an optional parameter.

### Feats

- `n-tree-select` adds `on-load` prop, closes [#2550](https://github.com/tusen-ai/naive-ui/issues/2550).
- `n-data-table` adds `on-load` prop.
- `n-cascader` adds `menu-props` prop, closes [#2600](https://github.com/tusen-ai/naive-ui/issues/2600).
- `n-cascader` adds `filter-menu-props` prop, closes [#2600](https://github.com/tusen-ai/naive-ui/issues/2600).
- `n-badge` adds `value` slot.
- `n-form` adds `validate-messages` prop.
- `n-data-table`'s column supports `cellProps` prop, closes [#2625](https://github.com/tusen-ai/naive-ui/issues/2625).
- `n-step` adds class to distinguish status.
- `n-popconfirm` adds `negative-button-props` props, closes [#2642](https://github.com/tusen-ai/naive-ui/issues/2642).
- `n-popconfirm` adds `positive-button-props` props, closes [#2642](https://github.com/tusen-ai/naive-ui/issues/2642).
- `n-pagination` adds `goto` slot.
- `n-input` adds `password-visible-icon` slot.
- `n-input` adds `password-invisible-icon` slot.
- `n-select` adds `status` prop.
- `n-input-number` adds `status` prop.
- `n-auto-complete` adds `status` prop.
- `n-cascader` adds `status` prop.
- `n-date-picker` adds `status` prop.
- `n-time-picker` adds `status` prop.
- `n-mention` adds `status` prop.
- `n-tree-select` adds `status` prop.
- `n-menu` adds `showOption` method, closes [#2562](https://github.com/tusen-ai/naive-ui/issues/2562).
- `n-dynamic-tags`'s `value` support object typed option.
- `n-dynamic-tags` adds `render-tag` prop, closes [#2526](https://github.com/tusen-ai/naive-ui/issues/2526).
- `n-dynamic-tags` adds `on-create` prop, closes [#2576](https://github.com/tusen-ai/naive-ui/issues/2576).
- `n-date-picker` adds `time-picker-props` props, closes [#2660](https://github.com/tusen-ai/naive-ui/issues/2660).
- `n-tabs` adds `trigger` prop, closes [#2679](https://github.com/tusen-ai/naive-ui/issues/2679).
- `n-menu` adds `itemColorHover`, `itemColorActiveHover`, `itemTextColorActiveHover`, `itemTextColorHorizontal`, `itemTextColorHoverHorizontal`, `itemTextColorActiveHorizontal`, `itemTextColorActiveHoverHorizontal`, `itemTextColorChildActiveHorizontal`, `itemIconColorActiveHover`, `itemIconColorHorizontal`, `itemIconColorHoverHorizontal`, `itemIconColorActiveHorizontal`, `itemIconColorActiveHoverHorizontal`, `itemIconColorChildActiveHorizontal`, `arrowColorActiveHover`, `itemColorHoverInverted`, `itemColorActiveHoverInverted`, `itemTextColorActiveHoverInverted`, `itemTextColorHorizontalInverted`, `itemTextColorHoverHorizontalInverted`, `itemTextColorChildActiveHorizontalInverted`, `itemTextColorActiveHorizontalInverted`, `itemTextColorActiveHoverHorizontalInverted`, `itemIconColorActiveHoverInverted`, `itemIconColorHorizontalInverted`, `itemIconColorHoverHorizontalInverted`, `itemIconColorActiveHorizontalInverted`, `itemIconColorActiveHoverHorizontalInverted`, `itemIconColorChildActiveHorizontalInverted`, `arrowColorActiveHoverInverted` theme variables, closes [#2598](https://github.com/tusen-ai/naive-ui/issues/2598).
- `n-carousel` adds `next-slide-style` and `prev-slide-style` props, closes [#2340](https://github.com/tusen-ai/naive-ui/issues/2340).
- `n-dialog` adds `negative-button-props` prop.
- `n-dialog` adds `positive-button-props` prop.
- `n-tabs` adds `animated` prop.

### i18n

- Add thTH locale.

## 2.26.4

`2022-03-11`

### Fixes

- Fix `n-tree-select`s in `multiple` mode cannot delete options whose `default-value` attribute contains parent node, closes [#2605](https://github.com/tusen-ai/naive-ui/issues/2605).
- Fix `n-tree` may throw error when node is removed, closes [#2597](https://github.com/tusen-ai/naive-ui/issues/2597).
- Fix `useDialog` renders component with popup content with unexpected focus management behavior, closes [#2612](https://github.com/tusen-ai/naive-ui/issues/2612).
- Fix `n-tree-select`'s node sometimes can't be clicked when `check-strategy` is `'child'`.
- Fix `n-tree-select`'s emitted value can be not corresponding to `check-strategy` when delete option in select box with `check-strategy` is not `'all'`.

### Feats

- `useDialog` supports `closeOnEsc` prop.
- `n-data-table` exports `DataTableFilterState` type.
- `n-data-table` exports `DataTableSortState` type.

## 2.26.3

`2022-03-09`

### Fixes

- Fix `n-button`'s loading icon shifts.

## 2.26.2

`2022-03-09`

### Fixes

- Fix `n-cascader` arrow's loading animation last for too long time.
- Fix `n-select` menu doesn't follow theme.
- Fix `n-tabs` throws error without child, closes [#809](https://github.com/tusen-ai/naive-ui/issues/809).
- Fix `n-menu`'s font color is not changed after theme is changed in chrome 99, closes [#2563](https://github.com/tusen-ai/naive-ui/issues/2563). This is actual a bug of chrome, however we used a workaround and fixed it.
- Fix `n-date-picker`'s date item click trigger area is as large as cell size only in `'date'` mode.

### Feats

- `n-dynamic-tags` `input` slot add `deactivate` prop, closes [#2575](https://github.com/tusen-ai/naive-ui/issues/2575).
- `n-space` add `RTL` support.
- `n-avatar-group` add `RTL` support.
- `n-badge` add `RTL` support.
- `n-radio` add `RTL` support.
- `n-auto-complete` adds `focus` method.
- `n-auto-complete` adds `blur` method.

## 2.26.1

`2022-03-06`

### Fixes

- Fix `base-loading` use css transition rather than svg animateTrantion to prevent js blocking, close [#2506](https://github.com/tusen-ai/naive-ui/issues/2506).
- Fix `n-time` throws error caused by `getTimezoneOffset`, closes [#2545](https://github.com/tusen-ai/naive-ui/issues/2545).
- Fix `n-modal`'s mask doesn't have enter & leave transition.
- Fix `n-timeline` has style conflict when vertical & horizontal `n-timeline` are nested, closes [#2549](https://github.com/tusen-ai/naive-ui/issues/2549).
- Fix `n-tree`'s arrow & loading switch animation isn't complete.

### Feats

- `n-time-line-item` adds `line-type` prop, closes [#2548](https://github.com/tusen-ai/naive-ui/issues/2548).
- `n-step` adds `icon` slot, closes [#2547](https://github.com/tusen-ai/naive-ui/issues/2547).
- `n-input-number` adds `autofocus` prop, closes [#2551](https://github.com/tusen-ai/naive-ui/issues/2551).
- `n-date-picker`'s date item click trigger area is as large as cell size, closes [#2552](https://github.com/tusen-ai/naive-ui/issues/2552).

## 2.26.0

`2022-03-02`

### Breaking Changes

- Fix `n-tooltip`'s gap between arrow and body. `n-tooltip` can't be translucent anymore.

### Feats

- `n-popover` adds `arrow-point-to-center` prop.
- `n-config-provider` adds `inline-theme-disabled` prop.

## 2.25.8

`2022-03-01`

### Fixes

- Fix `useMessage` loses styles.

## 2.25.7

`2022-03-01`

### Fixes

- Fix `n-time-picker` still shows action bar when `:actions="null"`.
- Fix `n-input`'s content may overflow when `type="text"` and `autosize` is enabled, closes [#2505](https://github.com/tusen-ai/naive-ui/issues/2505).
- Fix `n-upload` put `file` field before other `FormData` fields, closes [#2504](https://github.com/tusen-ai/naive-ui/issues/2504).
- Fix `n-button` rtl support.
- Fix `n-form-item-row` can't call `n-form-item`'s methods.

### Feats

- `n-collapse` add `RTL` support.
- `useMessage` adds `create` methods.
- `useMessage` adds `showIcon` prop, closes [#2495](https://github.com/tusen-ai/naive-ui/issues/2495).
- `useMessage` supports `'default'` `type`.
- `n-checkbox` supports label line wrap, closes [#2419](https://github.com/tusen-ai/naive-ui/issues/2419).
- `n-radio` supports label line wrap, closes [#2419](https://github.com/tusen-ai/naive-ui/issues/2419).
- `n-checkbox` add `RTL` support.
- `n-input` add `RTL` support.
- `n-input-number` add `RTL` support.

## 2.25.5

`2022-02-24`

### Fixes

- Fix `n-col` can't be wrapped correctly when `span=6`, closes [#2497](https://github.com/tusen-ai/naive-ui/issues/2497).
- Fix `n-tabs` doesn't display border-bottom in scroll area on large number of tabs, closes [#2500](https://github.com/tusen-ai/naive-ui/issues/2500).

## 2.25.3

`2022-02-23`

### Fixes

- Fix `n-switch` can't use keyboard operation when checked value is customized.
- Fix `n-data-table`'s fixed column is covered by scroll content when placed inside popover.
- Fix `n-data-table` when the `filterOptions` value is 0, the filter will not take effect, closes [#2392](https://github.com/tusen-ai/naive-ui/issues/2392).
- Fix `n-data-table` cannot click selection checkbox if the selection column is a column's child.
- Fix `n-table`'s `border-color` abnormal style when this added dynamically, closes [#2403](https://github.com/tusen-ai/naive-ui/issues/2403).
- Fix `n-tree`'s `default-expand-all` prop doesn't work for dynamic data.
- Fix `n-form` when `model.xxx` is `undefined`, validator will use `null` as validation value, closes [#2486](https://github.com/tusen-ai/naive-ui/issues/2486).
- Fix `n-input` focus style's priority is lower than hover style, closes [#2480](https://github.com/tusen-ai/naive-ui/issues/2480).
- Fix `n-data-table` display issue when placed inside keep-alive component with virtual scroll, closes [#2183](https://github.com/tusen-ai/naive-ui/issues/2183).
- Fix `notification` enter & leave animation.

### Feats

- `n-tree-select` adds `clear-filter-after-select` prop.
- `n-cascader` adds `clear-filter-after-select` prop.
- `n-switch` adds `icon` slot.
- `n-switch` adds `checked-icon` slot.
- `n-switch` adds `unchecked-icon` slot.
- `n-tabs` uses `n` as CSS vars prefix.
- Add `n-watermark` component, closes [#1745](https://github.com/tusen-ai/naive-ui/issues/1745).
- `n-scrollbar` adds `scrollBy` method, closes [#2435](https://github.com/tusen-ai/naive-ui/issues/2435).
- `n-data-table`'s `summary`'s `value` supports `VNodeChild`, closes [#2339](https://github.com/tusen-ai/naive-ui/issues/2339).
- `n-input-number` adds hold click to increment, closes [#1293](https://github.com/tusen-ai/naive-ui/issues/1293).
- `n-description` adds `titleTextColor` theme variable.

### i18n

- Add skSK locale.
- Fix frFR locale.

## 2.25.2

`2022-02-11`

### Fixes

- Remove useless `console.log` in `resolveSlot`.
- Fix `n-tag` misses background color when `checkable=true`.
- Fix `n-tree` throws `Image` error in `happydom` testing environment.
- Fix `n-select` `max-tag-count` tag size doesn't follow select size.

### Feats

- `n-progress` props `type` add type `dashboard`.
- `n-progress` adds `gap-degree` prop.
- `n-progress` adds `gap-offset-degree` prop.
- `n-select` adds `clear-filter-after-select` prop, closes [#2352](https://github.com/tusen-ai/naive-ui/issues/2352).

### i18n

- Add plPL locale, closes [#2354](https://github.com/tusen-ai/naive-ui/issues/2354).
- Add eo locale.

## 2.25.1

`2022-02-06`

### i18n

- Add enGB locale.
- Fix deDE locale.

## 2.25.0

`2022-02-04`

### Breaking Changes

- Refactor `n-carousel`'s style when `show-arrow` is true.

### Fixes

- Fix `n-color-picker`'s hue & alpha slider handle are influenced by rail's box-shadow.
- Fix `n-form-item` prevent feedback padding when empty.
- Fix `n-button` has extra margin in safari.
- Fix `n-form`'s rules and `n-form-item`'s rule about `validator` and `asyncValidator`'s `rule` type is not `FormItemRule`, closes [#2299](https://github.com/tusen-ai/naive-ui/issues/2299).
- Fix `n-log` doesn't break line when line is too long, closes [#2298](https://github.com/tusen-ai/naive-ui/issues/2298).
- Fix `n-log` doesn't export `LogInst` type.
- Fix `n-popselect` action slot & empty slot now working.
- Fix `n-data-table` can't use percent as column width.
- Fix `n-select` trigger shows blank for a while when `filterable=true` and menu is closing.
- Fix `n-select`'s being created option is not cleared after menu is closed.
- Fix `n-select` can't input content when `show=false` and `filterable=true`, closes [#1723](https://github.com/tusen-ai/naive-ui/issues/1723).
- Fix `n-dropdown` has extra margin when `trigger="manual"`.
- Fix `web-types.json`'s `n-h1` ~ `n-h6` name.
- Fix `n-select` deletes option on backspace pressed while compisiting.
- Fix `n-select` uses disabled option as pending option after menu is opened.

### Feats

- `n-tabs` props `justify-content` add types `start` `center` `end`.
- `n-auto-complete` adds `placement` prop.
- `n-cascader` adds `placement` prop.
- `n-color-picker` adds `placement` prop.
- `n-date-picker` adds `placement` prop.
- `n-mention` adds `placement` prop.
- `n-select` adds `placement` prop.
- `n-slider` adds `placement` prop.
- `n-time-picker` adds `placement` prop.
- `n-tree-select` adds `placement` prop.
- `n-card` adds `header-extra-style` prop.
- `n-popover` adds `keep-alive-on-hover` prop, closes [#2326](https://github.com/tusen-ai/naive-ui/issues/2326).
- `n-input` adds `status` prop.
- Add `n-icon-wrapper` component.
- `n-popover` exports `PopoverPlacement` type.
- `n-drawer` exports `DrawerPlacement` type.
- `n-dynamic-tags` adds `input-props` prop.
- `n-notification-provider` adds `container-style` prop.
- `n-notification-provider` exports `NotificationPlacement` type.
- `n-notification-provider` exports `NotificationType` type.
- `n-tabs` add `bar-width` prop.
- `n-dynamic-input` adds `create-button-props` props.
- `n-dynamic-input` adds `create-button-default` slot.
- `n-dynamic-input` adds `create-button-icon` slot.
- `n-dynamic-input` adds `show-sort-button` prop, closes [#2121](https://github.com/tusen-ai/naive-ui/issues/2121).
- `n-select` can be used as tag input.
- `n-select` exports `SelectRenderLabel` type.
- `n-select` exports `SelectRenderOption` type.
- `n-select` exports `SelectRenderTag` type.
- `n-tree` adds `node-props` prop.

## 2.24.7

`2022-01-28`

### Fixes

- `n-popselect` doesn't work with `width="trigger"`.

### i18n

- Update jaJP locale.
- Update deDE locale.

## 2.24.6

`2022-01-26`

### Feats

- `n-icon` add `component` prop.

### Fixes

- Fix `n-dynamic-input` can add item when max is 0, closes [#2271](https://github.com/tusen-ai/naive-ui/issues/2271).
- Fix `n-dialog` useless `console.log`.

## 2.24.5

`2022-01-25`

### Fixes

- `n-input` placeholder has no line-wrap in `textarea` type.
- `n-date-picker` lacks space between panel year & month.

### Feats

- `n-color-picker` adds `disabled` prop.
- `n-date-picker` adds trigger area for year & month quick jump.

## 2.24.4

`2022-01-24`

### Fixes

- Update vueuc version.

## 2.24.3

`2022-01-24`

### Fixes

- Fix `n-layout-sider` has no border transition.

## 2.24.2

`2022-01-24`

### Fixes

- Fix `n-layout-sider` still occupies 1px after collapsed.
- Fix `n-code` doesn't break word when `word-wrap=true`.
- Fix `n-tab-pane`'s tab label area inherits `attrs`, closes [#2221](https://github.com/tusen-ai/naive-ui/issues/2221).
- Fix `n-image` preview popup background can still be scrolled, closes [#2241](https://github.com/tusen-ai/naive-ui/issues/2241).
- Fix `n-input` shows placeholder when browser auto completes it, closes [#2234](https://github.com/tusen-ai/naive-ui/issues/2234).
- Fix `n-input` placeholder word break issue with `type="textarea"`.
- Fix `n-avatar-group` extra count not correct after `max` is set, closes [#2244](https://github.com/tusen-ai/naive-ui/issues/2244).
- Fix `n-calendar` doesn't trigger `on-panel-change` on today button clicked.
- Fix `n-drawer` can't be closed by esc key when `mask-closable=false`, closes [#2233](https://github.com/tusen-ai/naive-ui/issues/2233).

### Feats

- `n-page-header` adds `back` slot, closes [#2176](https://github.com/tusen-ai/naive-ui/issues/2176).
- `n-select` adds `reset-menu-on-options-change` prop, closes [#2168](https://github.com/tusen-ai/naive-ui/issues/2168).
- `n-select` adds `arrow` slot, closes [#2201](https://github.com/tusen-ai/naive-ui/issues/2201).
- `n-carousel` effect supports `'card'`.
- `n-input` doesn't use native scrollbar when `type="textarea"`, closes [#2242](https://github.com/tusen-ai/naive-ui/issues/2242), [#1172](https://github.com/tusen-ai/naive-ui/issues/1172).
- `n-number-animation` add `locale` prop, closes [#2181](https://github.com/tusen-ai/naive-ui/issues/2181).
- `n-number-animation`'s locale follows config provider.
- Expose `lightTheme`.
- `n-time-picker` adds `icon` slot, closes [#2228](https://github.com/tusen-ai/naive-ui/issues/2228).
- `n-tab-pane` adds `tab-props` prop, closes [#2221](https://github.com/tusen-ai/naive-ui/issues/2221).
- Add `CustomThemeCommonVars` to customize `useThemeVars`.
- `n-slider` adds `show-tooltip` prop, closes [#2212](https://github.com/tusen-ai/naive-ui/issues/2212).
- `n-select` adds `on-update:show` prop.
- `n-select` adds `focus` method, closes [#2202](https://github.com/tusen-ai/naive-ui/issues/2202).
- `n-select` adds `blur` method, closes [#2202](https://github.com/tusen-ai/naive-ui/issues/2202).
- `n-date-picker` adds `focus` method, closes [#2202](https://github.com/tusen-ai/naive-ui/issues/2202).
- `n-date-picker` adds `blur` method, closes [#2202](https://github.com/tusen-ai/naive-ui/issues/2202).
- `n-time-picker` adds `focus` method, closes [#2202](https://github.com/tusen-ai/naive-ui/issues/2202).
- `n-time-picker` adds `blur` method, closes [#2202](https://github.com/tusen-ai/naive-ui/issues/2202).
- `n-checkbox` adds `focus` method, closes [#2202](https://github.com/tusen-ai/naive-ui/issues/2202).
- `n-checkbox` adds `blur` method, closes [#2202](https://github.com/tusen-ai/naive-ui/issues/2202).
- `n-cascader` adds `focus` method, closes [#2202](https://github.com/tusen-ai/naive-ui/issues/2202).
- `n-cascader` adds `blur` method, closes [#2202](https://github.com/tusen-ai/naive-ui/issues/2202).
- `n-upload` adds `input-props` prop, closes [#2204](https://github.com/tusen-ai/naive-ui/issues/2204).
- `n-data-table` col adds `render-sorter-icon` prop, closes [#1785](https://github.com/tusen-ai/naive-ui/issues/1785).
- `n-data-table` col adds `render-sorter` prop, closes [#1785](https://github.com/tusen-ai/naive-ui/issues/1785).
- `n-date-picker` easy navigation to specific month and year for `date` and `datetime` and `daterange` and `datetimerange` type.
- `n-modal` adds `close-on-esc` prop.
- `n-modal` adds `auto-focus` prop.
- `n-modal` adds `trap-focus` prop.
- `n-modal` adds `on-esc` prop.
- `n-drawer` adds `close-on-esc` prop.
- `n-drawer` adds `auto-focus` prop.
- `n-drawer` adds `trap-focus` prop.
- `n-drawer` adds `on-esc` prop.
- `n-upload` adds `clear` method, closes [#2247](https://github.com/tusen-ai/naive-ui/issues/2247).
- Add volar types.

### i18n

- Add esAR locale.
- Add itIT locale.

## 2.24.1

`2022-01-12`

### Fixes

- Fix install error.

## 2.24.0

`2022-01-12`

### Breaking Changes

- Fix `type PageHeaderProps` name. It was mispelled as `PageHeaderPorps` before.
- `n-image`'s `iconColor` theme variable is renamed as `toolbarIconColor`.

### Fixes

- Fix `n-carousel` when Carousel is a single picture dot still existence, closes [#1777](https://github.com/tusen-ai/naive-ui/issues/1777).
- Fix `n-upload` `on-finish` prop's `event` parameter type should be `ProgressEvent`.
- Fix `n-upload` doesn't allow 2xx status code except 200.
- Fix `n-form` when `validate` use `validateCallback`, cannot call Promise method.
- Fix `n-input-number` input integer end with 0 cannot update, closes [#2115](https://github.com/tusen-ai/naive-ui/issues/2115).
- Fix `n-back-top` allow document to be passed to `listen-to` prop.
- Fix `n-data-table`'s content can be clicked when loading, closes [#2134](https://github.com/tusen-ai/naive-ui/issues/2134).
- Fix `n-checkbox` doesn't show indeterminate icon in safari.
- Fix `n-progress`'s inner text of `line` type not aligned in center, closes[#2138](https://github.com/tusen-ai/naive-ui/issues/2138).
- Fix `n-message`'s `MessageReactive` type lacks `type` parameter.
- Fix `n-select` has different `padding` with `n-input`, closes [#2149](https://github.com/tusen-ai/naive-ui/issues/2149).
- Fix `n-tooltip` log errors in console when used in `n-select`'s `render-option`, closes [#1436](https://github.com/tusen-ai/naive-ui/issues/1436).
- Fix `n-select` log ResizeObserver errors when using `render-option` in safari, closes [#1671](https://github.com/tusen-ai/naive-ui/issues/1671).
- Fix `n-carousel` can't respond quickly and repeatedly on touch, closes [#1892](https://github.com/tusen-ai/naive-ui/issues/1892).
- Fix `n-carousel` style of boundary, closes [#1866](https://github.com/tusen-ai/naive-ui/issues/1866).
- Fix `n-carousel` cannot be clicked on the touchscreen, closes [#1882](https://github.com/tusen-ai/naive-ui/issues/1882).
- Fix `n-color-picker` default mode can only be rgb is default value is empty.

### Feats

- `n-code` adds `word-wrap` prop, closes [#2111](https://github.com/tusen-ai/naive-ui/issues/2111).
- `n-modal` adds `z-index` prop, closes [#2088](https://github.com/tusen-ai/naive-ui/issues/2088).
- `n-drawer` adds `z-index` closes.
- `n-drawer` adds wai-aria support.
- `useMessage`'s option support `render` prop.
- `n-data-table` `TableColumn` supports `string` typed `width`, closes [#2102](https://github.com/tusen-ai/naive-ui/issues/2102).
- `n-calendar` adds `on-panel-change` prop, closes [#2082](https://github.com/tusen-ai/naive-ui/issues/2082).
- `n-upload` adds `on-error` prop.
- `n-pagination` adds `label` slot.
- `n-tabs` adds `syncBarPosition` method, closes [#2120](https://github.com/tusen-ai/naive-ui/issues/2120).
- `n-form`, `n-form-item`'s `label-width` prop support `auto` option, closes [#2087](https://github.com/tusen-ai/naive-ui/issues/2087).
- `n-result` adds `icon` slot, closes [#2130](https://github.com/tusen-ai/naive-ui/issues/2130).
- `n-date-picker` adds `value-format` prop, closes [#2076](https://github.com/tusen-ai/naive-ui/issues/2076).
- `n-date-picker` adds `formatted-value` prop.
- `n-date-picker` adds `default-formatted-value` prop.
- `n-date-picker` adds `on-update:formatted-value` prop.
- `n-date-picker`'s `on-update:value` prop will pass formatted value out.
- `n-image` adds `show-toolbar-tooltip` prop.
- `n-image` adds more theme variables, closes [#1531](https://github.com/tusen-ai/naive-ui/issues/1531).
- `n-upload` adds `image-group-props` prop.
- `n-progress` adds `offset-degree` prop, closes [#2010](https://github.com/tusen-ai/naive-ui/issues/2010).
- `n-form-item` adds `feedback` slot, closes [#1142](https://github.com/tusen-ai/naive-ui/issues/1142).
- `n-form-item`'s `require-mark-placement` prop adds `'right-hanging'` option, closes [#2094](https://github.com/tusen-ai/naive-ui/issues/2094).
- `n-cascader` adds `render-label` prop, closes [#2048](https://github.com/tusen-ai/naive-ui/issues/2048).
- `n-auto-complete` adds `render-option` prop, closes [#1629](https://github.com/tusen-ai/naive-ui/issues/1629).
- `n-auto-complete` adds `render-label` prop, closes [#1629](https://github.com/tusen-ai/naive-ui/issues/1629).
- `n-tree` adds `render-switcher-icon` prop, closes [#1551](https://github.com/tusen-ai/naive-ui/issues/1551).
- `n-message` exports `MessageType` type.
- `n-time-picker` adds `value-format` prop.
- `n-time-picker` adds `formatted-value` prop.
- `n-time-picker` adds `on-update:formatted-value` prop.
- `n-time-picker` adds `default-formatted-value` prop.
- `n-carousel` adds `default-index` prop.
- `n-carousel` adds `current-index` prop.
- `n-carousel` adds `show-arrow` prop.
- `n-carousel` adds `dot-type` prop, closes [#1931](https://github.com/tusen-ai/naive-ui/issues/1931).
- `n-carousel` adds `dot-placement` prop, closes [#1462](https://github.com/tusen-ai/naive-ui/issues/1462).
- `n-carousel` adds `slides-per-view` prop.
- `n-carousel` adds `space-between` prop.
- `n-carousel` adds `centered-slides` prop.
- `n-carousel` adds `direction` prop, closes [#1931](https://github.com/tusen-ai/naive-ui/issues/1931).
- `n-carousel` adds `loop` prop.
- `n-carousel` adds `effect` prop, closes [#1159](https://github.com/tusen-ai/naive-ui/issues/1159).
- `n-carousel` adds `transition-props` prop, closes [#1159](https://github.com/tusen-ai/naive-ui/issues/1159).
- `n-carousel` adds `transition-style` prop, closes [#1159](https://github.com/tusen-ai/naive-ui/issues/1159).
- `n-carousel` adds `draggable` prop.
- `n-carousel` adds `touchable` prop.
- `n-carousel` adds `mousewheel` prop.
- `n-carousel` adds `keyboard` prop.
- `n-carousel` adds `show-dots` prop.
- `n-carousel` adds `on-update:current-index` prop.
- `n-carousel` adds `arrow` slot.
- `n-carousel` adds `dots` slot.
- `n-form-item` adds `for` prop.
- `n-color-picker` adds `label` slot.
- `n-color-picker` adds `render-label` prop.
- `n-form-item` adds `label-props` prop.

## 2.23.2

`2021-12-29`

### Feats

- `<meta name="naive-ui-style" />` can be used to controll the component style's position.
- `n-empty` adds `show-icon` prop.
- `n-modal` adds a11y support, closes [#1877](https://github.com/tusen-ai/naive-ui/issues/1877).
- Add `n-avatar-group` component.
- `n-input-number` supports `loading` state.
- Add `n-countdown` component.
- Add `n-number-animation` component, closes [#1465](https://github.com/tusen-ai/naive-ui/issues/1465).
- `n-statistic` adds `tabular-nums` prop.
- `n-pagination` will give `itemCount` a approximate value derived from `pageSize` and `pageCount` if it's not set, closes [#2044](https://github.com/tusen-ai/naive-ui/issues/2044).
- `n-cascader` adds `on-update:show` prop, closes [#2049](https://github.com/tusen-ai/naive-ui/issues/2049).
- `n-scrollbar` uses `n` as CSS vars prefix.
- `n-popconfirm` uses `n` as CSS vars prefix.
- `n-gradient-text` uses `n` as CSS vars prefix.
- `n-form` uses `n` as CSS vars prefix.
- `n-pagination` uses `n` as CSS vars prefix.
- `n-loading-bar` uses `n` as CSS vars prefix.
- `n-empty` uses `n` as CSS vars prefix.
- `n-list` uses `n` as CSS vars prefix.
- `n-layout` uses `n` as CSS vars prefix.
- `n-message` uses `n` as CSS vars prefix.
- `n-mention` uses `n` as CSS vars prefix.
- `n-menu` uses `n` as CSS vars prefix.
- `n-popover` uses `n` as CSS vars prefix.
- `n-transfer` uses `n` as CSS vars prefix.
- `n-table` uses `n` as CSS vars prefix.
- `n-statistic` uses `n` as CSS vars prefix.
- `n-code` uses `n` as CSS vars prefix.
- `n-breadcrumb` uses `n` as CSS vars prefix.
- `n-slider` uses `n` as CSS vars prefix.
- `n-spin` uses `n` as CSS vars prefix.
- `n-select` uses `n` as CSS vars prefix.
- `n-result` uses `n` as CSS vars prefix.
- `n-calendar` uses `n` as CSS vars prefix.
- `n-card` uses `n` as CSS vars prefix.
- `n-cascader` uses `n` as CSS vars prefix.
- `n-color-picker` uses `n` as CSS vars prefix.
- `n-checkbox` uses `n` as CSS vars prefix.
- `n-data-table` uses `n` as CSS vars prefix.
- `n-date-picker` uses `n` as CSS vars prefix.
- `n-descriptions` uses `n` as CSS vars prefix.
- `n-drawer` uses `n` as CSS vars prefix.
- `n-dropdown` uses `n` as CSS vars prefix.
- `n-rate` uses `n` as CSS vars prefix.
- `n-radio` uses `n` as CSS vars prefix.
- `n-progress` uses `n` as CSS vars prefix.
- `n-skeleton` uses `n` as CSS vars prefix.
- `n-collapse` uses `n` as CSS vars prefix.
- `n-collapse-transition` uses `n` as CSS vars prefix.
- `n-thing` uses `n` as CSS vars prefix.
- `n-carousel` uses `n` as CSS vars prefix.
- `n-page-header` uses `n` as CSS vars prefix.
- `n-image` uses `n` as CSS vars prefix.
- `n-input` uses `n` as CSS vars prefix.
- `n-icon` uses `n` as CSS vars prefix.
- `n-modal` uses `n` as CSS vars prefix.
- `n-notification` uses `n` as CSS vars prefix.

### Fixes

- Fix `n-form-item-gi` 's `validate` doesn't work, closes [#1901](https://github.com/tusen-ai/naive-ui/issues/1901).
- Fix `n-card` action's border-radius style.
- Fix `n-code`'s content is repeatly appended if language is not set, closes [#2034](https://github.com/tusen-ai/naive-ui/issues/2034).
- Fix `n-tabs`'s `tabTextColorActiveSegment` and `tabTextColorHoverSegment` theme variables not working, closes [#2038](https://github.com/tusen-ai/naive-ui/issues/2038).
- Fix `n-image` may keep keyboard handler after mounted.
- Fix `n-image` can't exit preview after esc is pressed when there's only 1 image, closes [#2042](https://github.com/tusen-ai/naive-ui/issues/2042).
- Fix `n-drawer-content`'s content doesn't scroll by default, ref [#2003](https://github.com/tusen-ai/naive-ui/issues/2003).
- Fix `n-popover` log warnings to console when manually set same zindex on multile instances and closes them, closes [#2050](https://github.com/tusen-ai/naive-ui/issues/2050).
- Fix `n-transfer` has no scrollbar in virtual scroll mode.
- Fix `n-input-number` cannot input decimals end with 0.

## 2.23.1

`2021-12-20`

### Fixes

- Fix `n-transfer` list doesn't follow container height when style.height is set, closes [#1879](https://github.com/tusen-ai/naive-ui/issues/1879).
- Fix `n-skeleton` & `n-gradient-text` cause runtime error in some old browsers, closes [#1867](https://github.com/tusen-ai/naive-ui/issues/1867).
- Fix `n-data-table` `ellipsis` prop in column doesn't support all `n-ellipsis`'s props, closes [#1891](https://github.com/tusen-ai/naive-ui/issues/1891).
- Fix `n-form`'s `blankHeightXxx` theme var doesn't follow `common.heightXxx`, closes [#1880](https://github.com/tusen-ai/naive-ui/issues/1880).
- Fix `n-date-picker`'s panel doesn't use `dateFormat` in locale, closes [#1793](https://github.com/tusen-ai/naive-ui/issues/1793).
- Fix `n-log` text color transition in theme switching.

### Feats

- `n-back-top` uses `n` as CSS vars prefix.
- `n-steps` uses `n` as CSS vars prefix.
- `n-switch` uses `n` as CSS vars prefix.
- `n-auto-complete` uses `n` as CSS vars prefix.
- `n-log` uses `n` as CSS vars prefix.
- `n-timeline` uses `n` as CSS vars prefix.
- `n-time-picker` uses `n` as CSS vars prefix.
- `n-avatar` uses `n` as CSS vars prefix.
- `n-dynamic-tags` uses `n` as CSS vars prefix.
- `n-tag` uses `n` as CSS vars prefix.
- `n-dialog` uses `n` as CSS vars prefix.
- `n-upload` uses `n` as CSS vars prefix.
- `n-tree` uses `n` as CSS vars prefix.
- `n-tree-select` uses `n` as CSS vars prefix.

## 2.23.0

`2021-12-17`

### Breaking Changes

- `n-switch` can no longer be clicked under `loading` status, closes [#1853](https://github.com/tusen-ai/naive-ui/issues/1853).

### Fixes

- Fix `n-data-table` 's horizontal scrollbar disappears when max-height is not set, closes [#1857](https://github.com/tusen-ai/naive-ui/issues/1857).
- Fix `n-input-number` cannot input negative decimals value, closes [#1858](https://github.com/tusen-ai/naive-ui/issues/1858).
- Fix `n-dialog` open new dialog again when pressing `enter` key, closes [#1559](https://github.com/tusen-ai/naive-ui/issues/1559).

### Feats

- `n-divider` uses `n` as CSS vars prefix.
- `n-typography` uses `n` as CSS vars prefix.
- `n-badge` uses `n` as CSS vars prefix.

## 2.22.0

`2021-12-15`

### Breaking Changes

- `n-button` can no longer be clicked under `loading` status, closes [#1628](https://github.com/tusen-ai/naive-ui/issues/1628).

### Fixes

- Fix `n-alert`'s `header` slot unable to display normally.
- Fix `n-data-table`'s pagination `onUpdatePageSize` prop does't trigger, closes [#1774](https://github.com/tusen-ai/naive-ui/issues/1774).
- Fix `n-data-table` can select rows when table is loading, closes [#1812](https://github.com/tusen-ai/naive-ui/issues/1812).
- Fix `n-tag` line-height is too low that clamps the content.
- Fix `n-select` displays with mistake in input if `filterable` is `true`, closes [#1823](https://github.com/tusen-ai/naive-ui/issues/1823).
- Fix `n-page-header`'s content has margin-top when header is not displayed, closes [#1795](https://github.com/tusen-ai/naive-ui/issues/1795).
- Fix `n-avatar` `color` prop not working.
- Fix `n-avatar`'s inner icon has wrong size.
- Fix `n-image` lacks scoped style's scope-id, closes [#1788](https://github.com/tusen-ai/naive-ui/issues/1788).
- Fix `n-radio` click event will be triggered twice, closes [#1680](https://github.com/tusen-ai/naive-ui/issues/1680).
- Fix `n-data-table` layout display incorrect when the table is empty and min-height set, closes [#1809](https://github.com/tusen-ai/naive-ui/issues/1809).
- Fix `n-data-table`'s summary has hover style.
- Fix `n-data-table` fixed group column box-shadow error and right fixed column order error, closes [#1832](https://github.com/tusen-ai/naive-ui/issues/1832).
- Fix `n-anchor`'s hover & active style.
- Fix `n-data-table`'s header fixed column style on data is empty.

### Feats

- `n-tree-select` adds `menu-props` prop.
- `n-tree-select` adds `action` slot, closes [#1765](https://github.com/tusen-ai/naive-ui/issues/1765).
- `n-tree-select` adds `empty` slot.
- `n-cascader` adds `empty` slot.
- `n-popselect` adds `action` slot.
- `n-popselect` adds `empty` slot.
- `n-data-table` will check all if indeterminate header checkbox is clicked, closes [#1827](https://github.com/tusen-ai/naive-ui/issues/1827).
- `n-button` uses `n` as CSS vars prefix, closes [#1808](https://github.com/tusen-ai/naive-ui/issues/1808).
- `n-date-picker` adds `default-time` prop.
- `n-alert` uses `n` as CSS vars prefix.
- `n-date-picker`'s `type` prop support `quarter` option.
- `n-anchor` uses `n` as CSS vars prefix.

### i18n

- Add zhTW locale.

## 2.21.5

`2021-12-07`

### Fixes

- Fix `n-input` click clear icon does't trigger `change` event, closes [#1754](https://github.com/tusen-ai/naive-ui/issues/1754).
- Fix `n-input-number` the cursor moves when press arrow keys to change value, closes [#1759](https://github.com/tusen-ai/naive-ui/issues/1759).

### Feats

- `n-date-picker`'s default format follows i18n.

### i18n

- Add frFR locale.

## 2.21.4

`2021-12-06`

### Fixes

- Fix `n-date-picker` has no placeholder when `type` is `year`.
- Fix `n-element` doesn't export `NEl` alias name.
- Fix `n-upload` still shows upload trigger when max limit is reached in `image-card` mode, closes [#1744](https://github.com/tusen-ai/naive-ui/issues/1744).
- Fix `n-form`'s `FormValidate` type lacks `shouldRuleBeApplied` parameter, closes [#1747](https://github.com/tusen-ai/naive-ui/issues/1747).
- Fix `n-upload` is displayed vertically in `n-form` in `image-card` mode, closes [#1746](https://github.com/tusen-ai/naive-ui/issues/1746).
- Fix `n-upload`'s file list's top margin if trigger is hidden.
- Fix `n-upload` shows normal file status when response has 4xx status, closes [#1741](https://github.com/tusen-ai/naive-ui/issues/1741).

### Feats

- `n-upload` adds `show-trigger` prop.
- `n-data-table` will ignore `children` with length 0 in tree data mode, closes [#1703](https://github.com/tusen-ai/naive-ui/issues/1703).

## 2.21.3

`2021-12-03`

### Fixes

- Fix `n-theme-editor` throw error when click button component, closes [#1708](https://github.com/tusen-ai/naive-ui/issues/1708).
- Fix `n-input`'s color is abnormal in Android WeChat, closes [#1705](https://github.com/tusen-ai/naive-ui/issues/1705).
- Fix `n-input` 's `borderHover` theme variable doesn't work, closes [#1704](https://github.com/tusen-ai/naive-ui/issues/1704).
- Fix `n-dialog`'s `content` word-break.
- Fix `n-input-number` cannot input decimals value.
- Fix `n-data-table`'s header & body may have wrong border radius, closes [#1712](https://github.com/tusen-ai/naive-ui/issues/1712).
- Fix `n-button`'s `colorOpacityXxx` theme vars are not string typed.

### Feats

- `n-switch` adds `rail-style` prop, closes [#1718](https://github.com/tusen-ai/naive-ui/issues/1718).
- `n-image` adds `preview-disabled` props, closes [#1647](https://github.com/tusen-ai/naive-ui/issues/1647).
- `n-image` adds `on-load` & `on-error` prop.
- `n-image` adds `fallback-src` prop.
- `n-data-table` adds `on-update:expanded-row-keys` prop.
- `n-tree` adds `watch-props` prop.

## 2.21.2

`2021-11-29`

### Fixes

- Fix `n-slider` disabled tooltip at the wrong time.
- Fix `n-slider` incorrect fill color style, closes [#1670](https://github.com/tusen-ai/naive-ui/issues/1670).
- Fix `n-data-table`'s pagination `onUpdatePage` prop trigger twice, closes [#1666](https://github.com/tusen-ai/naive-ui/issues/1666).
- Fix `n-log`'s `trim` prop not being independent when used.
- Fix `n-slider` processing of step value precision.
- Fix `n-date-picker` throw error when `time-picker` input is empty, closes [#1678](https://github.com/tusen-ai/naive-ui/issues/1678).
- Fix `n-popover` not working when `trigger` is `focus`.
- Fix `n-scrollbar`'s scrollbar will vanish if clicked.
- Fix `n-popover` has an invalid line in style.
- Fix `n-popover` `flip=false` doesn't work.
- Fix `n-input-number` can't accept indeterminate input value when `max` or `min` is set, closes [#1664](https://github.com/tusen-ai/naive-ui/issues/1664).
- Fix `n-input-number`'s input value is not changed to a valid value if it's input exceeds min or max multiple times.

### Feats

- `n-input-number` adds `keyboard` prop.
- Add `tableColorStriped` theme variable, closes [#1686](https://github.com/tusen-ai/naive-ui/issues/1686).
- `n-notification-provider` adds `max` & `placement` prop.
- `n-notification` adds `destroyAll` method, closes [#333](https://github.com/tusen-ai/naive-ui/issues/333).
- `n-layout-sider` adds `on-after-enter` and `on-after-leave` props, closes [#1241](https://github.com/tusen-ai/naive-ui/issues/1241).
- `n-upload` adds `custom-request` prop, closes [#1389](https://github.com/tusen-ai/naive-ui/issues/1389).
- `n-data-table` adds `expanded-row-keys` prop.
- `n-popover` provides better auto position adjustment, closes [#1520](https://github.com/tusen-ai/naive-ui/issues/1520), [#1643](https://github.com/tusen-ai/naive-ui/issues/1643).
- `n-input-number` adds `update-value-on-input` prop, closes [#1662](https://github.com/tusen-ai/naive-ui/issues/1662).
- `n-auto-complete` adds `prefix` & `suffix` slot.

## 2.21.1

`2021-11-23`

### Fixes

- Fix `n-image` drag the picture to move the position incorrectly when the zoom is large.
- Fix `n-data-table` style glitches after some rows are expanded.
- Fix `n-data-table` doesn't expand tree data correctly, closes [#1644](https://github.com/tusen-ai/naive-ui/issues/1644).

## 2.21.0

`2021-11-21`

### Breaking Changes

- `NButton.fontWeightText` & `NButton.fontWeightGhost` theme vars are removed. If you want to change font weight, you can use `strong` prop of `n-button` instead.

### Feats

- `n-tag` adds `avatar` slot.
- `n-data-table` adds `striped` prop, closes [#1552](https://github.com/tusen-ai/naive-ui/issues/1552).
- `n-table` adds `striped` prop, closes [#1552](https://github.com/tusen-ai/naive-ui/issues/1552).
- `n-slider` adds `vertical` prop, closes [#1468](https://github.com/tusen-ai/naive-ui/issues/1468).
- `n-slider` adds `reverse` prop.
- `n-slider`'s `step` prop support `mark` option.
- Bypass Vitejs bug on string extrapolation, ref [#636](https://github.com/tusen-ai/naive-ui/issues/636).
- `n-button` adds `strong` prop.
- `n-button` adds `secondary` prop.
- `n-button` adds `tertiary` prop.
- `n-button` adds `quaternary` prop.
- `n-auto-complete` adds `input-props` prop, closes [#1610](https://github.com/tusen-ai/naive-ui/issues/1610).
- `n-avatar` adds `fallback-src` prop, closes [#702](https://github.com/tusen-ai/naive-ui/issues/702).
- `n-avatar` adds `on-error` prop.
- `n-input` adds `select` methods, closes [#1328](https://github.com/tusen-ai/naive-ui/issues/1328).
- Add `n-tab` component, closes [#1630](https://github.com/tusen-ai/naive-ui/issues/1630).
- `n-switch` adds `round` prop, closes [#1469](https://github.com/tusen-ai/naive-ui/issues/1469).
- `n-step` adds `title` slot.
- `n-menu` support `divider` type option.

### Fixes

- Fix the default value of the `suffix` internal component's `loading` property.
- Fix `n-space` is shown when it has no children, closes [#1605](https://github.com/tusen-ai/naive-ui/issues/1605).
- Fix `n-radio` has no `onUpdateChecked` prop.
- Fix `n-dropdown` animation flicker problem, closes [#1600](https://github.com/tusen-ai/naive-ui/issues/1600).
- Fix `n-data-table`’s `clearSorter` method isn't exported properly.
- Fix `n-global-style` throws error in SSR.
- Fix `n-button` will trigger click event twice if pressed, closes [#1626](https://github.com/tusen-ai/naive-ui/issues/1626).

## 2.20.3

`2021-11-15`

### Fixes

- Fix `n-grid` suffix NGridItem does not set right span when collapsed, closes [#1530](https://github.com/tusen-ai/naive-ui/issues/1530).
- Fix `n-button` to shrink abnormally in certain scenarios when using the `circle` prop, closes [#1557](https://github.com/tusen-ai/naive-ui/issues/1557).
- Fix `input-props` does affect `type` prop, closes [#1553](https://github.com/tusen-ai/naive-ui/issues/1553).

### Feats

- `n-menu` adds a color distinction between selected and unselected arrow, closes [#1535](https://github.com/tusen-ai/naive-ui/issues/1535).
- `n-menu` adds `watch-props` prop, closes [#1536](https://github.com/tusen-ai/naive-ui/issues/1536).
- `n-date-picker`'s `type` prop support `year` option.

### i18n

- Add `createLocale` to make locale customizable, closes [#1525](https://github.com/tusen-ai/naive-ui/issues/1525).

## 2.20.2

`2021-11-05`

### Feats

- `n-modal` adds `transform-origin` prop, closes [#1498](https://github.com/tusen-ai/naive-ui/issues/1498).
- `n-tabs` adds `pane-class` prop, closes [#1500](https://github.com/tusen-ai/naive-ui/issues/1500).

### Fixes

- Fix `n-alert` `contentTextColor` and `titleTextColor` type theme variable not working, closes [#1495](https://github.com/tusen-ai/naive-ui/issues/1495).
- Fix `n-time-picker` not trigger blur event when the panel is closed by ok button, closes [#1499](https://github.com/tusen-ai/naive-ui/issues/1499).
- Fix `n-upload` `UploadFileInfo`'s `thumbnailUrl` field not working, closes [#1495](https://github.com/tusen-ai/naive-ui/issues/1245).
- Fix `n-button` `keyboard` prop does not work, closes [#1508](https://github.com/tusen-ai/naive-ui/issues/1508).
- Fix `n-upload` instance misses `openOpenFileDialog` method.

### i18n

- Add deDE locale.
- Add nbNO locale.

## 2.20.1

`2021-11-01`

### Fixes

- Fix `n-tabs` switch tab does not work when adding a new tab, closes [#1417](https://github.com/tusen-ai/naive-ui/issues/1417).
- Fix `n-tree`'s `filter` prop does not work when assigned `children-field` , closes [#1477](https://github.com/tusen-ai/naive-ui/issues/1477).
- Fix `n-cascader` can't remove options when using customized fields in multiple mode.
- Fix `n-select`'s option created by `on-create` doesn't show correct label in trigger, closes [#1482](https://github.com/tusen-ai/naive-ui/issues/1482).
- Fix `n-select` menu height shifts on close in `filterable` mode.

### Feats

- `n-select` adds `menu-props` prop, closes [#1475](https://github.com/tusen-ai/naive-ui/issues/1475).
- `n-image`'s `toolbar` adds close icon, closes [#1412](https://github.com/tusen-ai/naive-ui/issues/1412).
- `n-tree`'s `on-load` prop is triggered when the `expanded-keys` prop changes in `remote` mode, closes [#1339](https://github.com/tusen-ai/naive-ui/issues/1339).

## 2.20.0

`2021-10-28`

### Breaking Changes

- `n-collapsed-transition`'s `collapsed` prop is deprecated, please use `show` instead, closes [#1407](https://github.com/tusen-ai/naive-ui/issues/1407).

### Fixes

- Fix `n-log` `font-size` prop not working, closes [#1416](https://github.com/tusen-ai/naive-ui/issues/1416).
- Fix `n-loading-bar` will show once even if `start` is not called when `loading-bar-style` is set.
- Fix `n-date-picker` `separator` prop not working, closes [#1456](https://github.com/tusen-ai/naive-ui/issues/1456).

### Feats

- `n-data-table` optimize the logic of underlying rendering and improve component performance.
- `n-date-picker`'s `shortcuts` prop supports functional value.
- `n-tab-pane`'s `display-directive` props supports the `show:lazy` option, closes [#1374](https://github.com/tusen-ai/naive-ui/issues/1374).
- `n-input` of text type supports `count` slots, closes [#1440](https://github.com/tusen-ai/naive-ui/issues/1440).

### i18n

- Add idID locale.

## 2.19.11

`2021-10-21`

### Fixes

- Fix `n-upload`'s file can't be removed when file count limit is reached, closes [#1401](https://github.com/tusen-ai/naive-ui/issues/1401).

### Feats

- `n-tabs` adds `on-before-leave` prop, closes [#1337](https://github.com/tusen-ai/naive-ui/issues/1337).
- `n-color-picker` adds `show-preview` prop, closes [#1281](https://github.com/tusen-ai/naive-ui/issues/1281).
- `n-tab-pane`'s `display-directive` prop support `show:lazy` option, closes [#1374](https://github.com/tusen-ai/naive-ui/issues/1374).

## 2.19.9

`2021-10-18`

### Fixes

- Fix `n-collapse`'s expanded status is lost when using `v-if` with `n-collapse-item`, closes [#1387](https://github.com/tusen-ai/naive-ui/issues/1387).
- Fix `n-dialog`'s close button will be overlayed with content, closes [#1381](https://github.com/tusen-ai/naive-ui/issues/1381).
- Fix `n-upload` file is set to `null` after upload failure, closes [#1316](https://github.com/tusen-ai/naive-ui/issues/1316).
- Fix `n-cascader`'s `filter` prop not working.
- Fix `n-cascader`'s `label-field` prop breaks filter.
- Fix `n-cascader`'s `separator` prop isn't appiled to filter select menu.

### Feats

- `n-menu` adds `dropdown-props` prop, closes [#1345](https://github.com/tusen-ai/naive-ui/issues/1345).
- `n-input` adds `count` slot, closes [#1314](https://github.com/tusen-ai/naive-ui/issues/1314).
- `n-time-picker` adds `use-12-hours` prop, closes [#547](https://github.com/tusen-ai/naive-ui/issues/547).
- `n-input-number` adds `focus` & `blur` methods.

## 2.19.8

`2021-10-14`

### Fixes

- Fix `n-data-table` fixed style does not work in group header table, closes [#1341](https://github.com/tusen-ai/naive-ui/issues/1341).
- Fix `n-data-table` has duplicate right border when it has multiple level headers.
- Fix `n-scrollbar` doesn't support `scrollTo`, closes [#1346](https://github.com/tusen-ai/naive-ui/issues/1346).
- Fix `n-ellipsis`'s `expand-trigger` prop not show `pointer` cursor when content is short when `tooltip = false`, closes [#1299](https://github.com/tusen-ai/naive-ui/issues/1299).
- Fix `n-upload`'s `disabled` prop's style not working, closes [#1237](https://github.com/tusen-ai/naive-ui/issues/1237).
- `n-config-provider` adds `breakpoints` prop, closes [#1379](https://github.com/tusen-ai/naive-ui/issues/1379).

### Feats

- `n-auto-complete` adds `get-show` prop, closes [#1292](https://github.com/tusen-ai/naive-ui/issues/1292).
- `n-select` adds `input-props` prop, closes [#1351](https://github.com/tusen-ai/naive-ui/issues/1351).
- `n-color-picker` adds `swatches` prop, ref [#1281](https://github.com/tusen-ai/naive-ui/issues/1281).
- `n-upload` adds `max` prop.

### i18n

- Add jaJP locale.

## 2.19.7

`2021-10-12`

### Fixes

- Fix `n-ellipsis`'s `expand-trigger` prop not show `pointer` cursor when content is short, closes [#1299](https://github.com/tusen-ai/naive-ui/issues/1299).
- Fix `n-select`'s `fallback-option` prop's type, closes [#1327](https://github.com/tusen-ai/naive-ui/issues/1327).
- Fix `n-modal`'s `on-after-enter` prop not working.

## 2.19.6

`2021-10-10`

### Fixes

- Fix `n-menu`'s incorrect warning on `default-expanded-keys`.
- Fix `useThemeVars` is sometimes unusable, closes [#1309](https://github.com/tusen-ai/naive-ui/issues/1309).
- Fix the `list-style` style of the `<ul>` element.

### Feats

- `n-cascader` provide all options paths in `update:value` callback function, closes [#1235](https://github.com/tusen-ai/naive-ui/issues/1235).
- `n-layout` and `n-layout-sider` adds `on-scroll` prop, closes [#1232](https://github.com/tusen-ai/naive-ui/issues/1232).
- `n-config-provider` adds `preflight-style-disabled` prop.

## 2.19.5

`2021-10-07`

### Fixes

- Fix `n-form-item`'s content is too long and the width is incorrect.
- Fix `n-layout-sider`'s `arrow-circle`'s icon style.
- Fix `n-upload`'s `show-preview-button` prop not working, closes [#1238](https://github.com/tusen-ai/naive-ui/issues/1238).
- Fix `n-date-picker`'s `date` type of `action` validate error.
- Fix `n-data-table` throws error when using `selection` and `summary` together, closes [#1276](https://github.com/tusen-ai/naive-ui/issues/1276).
- Fix `n-data-table` selection column's width is collapsed when it is set to fixed, closes [#1283](https://github.com/tusen-ai/naive-ui/issues/1283).
- Fix `n-popconfirm` can't be nested in `n-tooltip`, closes [#872](https://github.com/tusen-ai/naive-ui/issues/872).
- Fix `n-popselect` checkmark overlays on option text, closes [#1282](https://github.com/tusen-ai/naive-ui/issues/1282).
- Fix `n-pagination` `buttonColor` theme variable not working.

### Feats

- `n-breadcrumb-item` adds `href` prop.
- `n-descriptions` adds `separator` prop, closes [#1263](https://github.com/tusen-ai/naive-ui/issues/1263).
- `n-dropdown` adds `key-field` prop.
- `n-dropdown` adds `label-field` prop.
- `n-dropdown` adds `children-field` prop.
- `n-menu` adds `key-field` prop.
- `n-menu` adds `label-field` prop.
- `n-menu` adds `children-field` prop.
- `n-data-table` supports using path of the property to get as column key, closes [#1271](https://github.com/tusen-ai/naive-ui/issues/1271).
- `n-switch` adds `checked-value` prop, closes [#1234](https://github.com/tusen-ai/naive-ui/issues/1234).
- `n-switch` adds `unchecked-value` prop, closes [#1234](https://github.com/tusen-ai/naive-ui/issues/1234).
- `n-checkbox` adds `checked-value` prop, closes [#1234](https://github.com/tusen-ai/naive-ui/issues/1234).
- `n-checkbox` adds `unchecked-value` prop, closes [#1234](https://github.com/tusen-ai/naive-ui/issues/1234).
- Add `n-collapse-transition` component, closes [#829](https://github.com/tusen-ai/naive-ui/issues/829).
- Add `n-scrollbar` component.
- `n-dropdown` support options with `type='render'`.
- `n-data-table` supports multiple column sorting.
- `n-date-picker` adds `first-day-of-week` prop.
- `n-date-picker`'s `type` prop support `month` option.
- `n-popover` adds `to` prop.
- `n-tree`'s `on-update:indeterminateKeys` prop adds option info.
- `n-tree`'s `on-update:expandedKeys` prop adds option info.
- `n-tree`'s `on-update:checkedKeys` prop adds option info.
- `n-tree`'s `on-update:selectedKeys` prop adds option info.

## 2.19.3

`2021-09-28`

### Fixes

- Fix `n-data-table` ellipsis not show when last column not set ellipsis, closes [#934](https://github.com/tusen-ai/naive-ui/issues/934).
- Fix `n-grid-item` won't work with responsive config.
- Fix `n-tabs`'s scroll shadow is not updated when it's resized, closes [#1224](https://github.com/tusen-ai/naive-ui/issues/1224).

### Feats

- `n-grid-item` won't display when `span` is 0, closes [#1220](https://github.com/tusen-ai/naive-ui/issues/1220).
- `n-grid` adds `item-responsive` prop.

## 2.19.2

`2021-09-26`

### i18n

- Add ukUA locale.

### Fixes

- Fix `n-global-style` applies style transition on first mount.
- Fix `n-drawer` border transition, closes [#1211](https://github.com/tusen-ai/naive-ui/issues/1211).
- Fix `n-input-number`'s `value` prop can't be `null` type.
- Fix components with rtl support throws error in SSR.
- Fix components with popover throws error in SSR.
- Fix global theme overrides not working for `n-select` trigger, closes [#1229](https://github.com/tusen-ai/naive-ui/issues/1229).

### Feats

- `n-checkbox` adds aria support.
- `n-alert` aria support.

## 2.19.1

`2021-09-21`

### Fixes

- Fix `DialogReactive` props are readonly.
- Fix `n-tree-select` sets `check-strategy='child'` not working in single select mode.
- Fix `n-upload`'s trigger is compressed in `image-card` mode when it's the only item in the row.
- Fix `n-upload-dragger` has no border transition.
- Fix `n-upload` can't upload files.
- Fix `n-tree`'s `checkable` prop doesn't work when `cascade` is `false`.
- Fix `n-tree-select`'s `checkable` prop doesn't work when `cascade` or `multiple` is `false`.

## 2.19.0

`2021-09-19`

### Breaking Changes

- `n-layout-sider`'s `arrow-circle` trigger is changed into new style.

### Feats

- `n-layout-sider` adds `collapsed-trigger-style` prop.
- `n-menu` adds `accordion` prop , closes [#917](https://github.com/tusen-ai/naive-ui/issues/917).
- `n-input-number` adds `readonly` prop , closes [#1198](https://github.com/tusen-ai/naive-ui/issues/1198).
- `n-spin` adds `description` prop and slot.
- `n-anchor` adds `type` prop.
- `n-upload` adds `abstract` prop, adds `n-upload-trigger` 和 `n-upload-file-list` component, closes [#1102](https://github.com/tusen-ai/naive-ui/issues/1102).
- `n-tree` adds `indeterminate-keys` prop.
- `n-tree-select` adds `indeterminate-keys` prop.
- `n-tree` adds `on-update:indeterminate-keys` prop.
- `n-tree-select` adds `on-update:indeterminate-keys` prop.
- `n-tabs` `type` prop adds `'segment'` option, closes [#1133](https://github.com/tusen-ai/naive-ui/issues/1133).
- `n-popover` adds `z-index` prop, closes [#764](https://github.com/tusen-ai/naive-ui/issues/764).
- `n-modal` adds `on-after-enter` prop.
- `n-modal` adds `on-after-leave` prop.

### Fixes

- Fix `n-select` focus input when closing tag with `filterable` , closes [#1170](https://github.com/tusen-ai/naive-ui/issues/1170).
- Fix `n-button` border on hover conflicts with `n-badge`, closes [#1195](https://github.com/tusen-ai/naive-ui/issues/1195).
- Fix `n-upload` prop `v-model:file-list` dosen't work well when prop `multiple` is `true`, closes [#418](https://github.com/tusen-ai/naive-ui/issues/418).
- Fix `useThemeVars` doesn't apply theme overrides, closes [#1194](https://github.com/tusen-ai/naive-ui/issues/1194), [#1176](https://github.com/tusen-ai/naive-ui/issues/1176).
- Fix `n-tabs`'s left shadow isn't displayed in card type.

## 2.18.2

`2021-09-14`

### Feats

- `n-cascader` show `Empty` component when `options` prop is empty, closes [#1092](https://github.com/tusen-ai/naive-ui/issues/1092).
- `n-cascader`'s `on-update:value` prop adds option info.
- `n-tree` adds `check-strategy` prop.
- `n-date-picker` adds `input-readonly` prop, closes [#1120](https://github.com/tusen-ai/naive-ui/issues/1120).
- `n-time-picker` adds `input-readonly` prop, closes [#1120](https://github.com/tusen-ai/naive-ui/issues/1120).
- `n-config-provider` adds global config of the `Empty` component, closes [#1092](https://github.com/tusen-ai/naive-ui/issues/1092).
- `n-select` adds `on-update:show` prop.
- `n-auto-complete` exports `AutoCompleteOption` and `AutoCompleteGroupOption` types.
- `n-page-header` adds `RTL` support.
- `n-select` support variadic height option rendering.
- `n-tree-select`'s `on-update:value` prop adds option info.
- `n-select`'s `on-update:value` prop adds option info.
- `n-popselect`'s `on-update:value` prop adds option info.
- `n-card` adds `embedded` prop.

### Fixes

- Fix `n-p` warns when `depth` is number.
- Fix `n-date-picker`‘s type of `actions` prop.
- Fix `n-select` can't override `n-empty`'s theme variables.
- Fix `n-dynamic-tags` adds button is not disabled when it is disabled.
- Fix `n-select` closes menu when enter key is pressed in filterable mode without options data.
- Fix `n-auto-complete`'s `children` prop can't use `AutoCompleteOption` type.
- Fix `n-gi`'s `collapsed` does not work in `n-form-item-gi`, closes [#1160](https://github.com/tusen-ai/naive-ui/issues/1160).

## 2.18.1

`2021-09-08`

### Feats

- `useDialog` option adds `style` prop, closes [#1054](https://github.com/tusen-ai/naive-ui/issues/1054).
- `n-timeline` adds `icon` slot, closes [#1096](https://github.com/tusen-ai/naive-ui/issues/1096).
- `n-timeline` adds `icon-size` prop.

### Fixes

- Fix `n-step` doesn't work with `v-for` children.
- Fix `n-input-number` cannot enter decimals when `step` is not a decimal.

## 2.18.0

`2021-09-07`

### Breaking Changes

- `n-form` & `n-form-item` split `show-require-mark` into `show-require-mark` and `require-mark-placement`.

### Feats

- `n-drawer` adds `on-mask-click` prop.
- `n-for` adds `require-mark-placement` prop, closes [#1055](https://github.com/tusen-ai/naive-ui/issues/1055).
- `n-form-item` adds `require-mark-placement` prop, closes [#1055](https://github.com/tusen-ai/naive-ui/issues/1055).

### Fixes

- Fix `n-step` must be passed with `internal-index`.
- Fix `n-radio-group`'s `on-update:value` and `on-update-value` can't be array.
- Fix `n-cascader` `check-strategy="child"` doesn't behaves the same as previous `leaf-only`.

## 2.17.2

`2021-09-06`

### Fixes

- Fix `n-tree-select` shows key not label when `show-path=true`, closes [#1095](https://github.com/tusen-ai/naive-ui/issues/1095).

## 2.17.1

`2021-09-06`

### Fixes

- Fix `n-cascader` menu not showing correct checked keys.

## 2.17.0

`2021-09-05`

### Breaking Changes

- `n-tree-select`'s `leaf-only` prop is deprecated, please use `check-strategy="child"` instead.
- `n-cascader`'s `leaf-only` prop is deprecated, please use `check-strategy="child"` instead.
- `n-input`'s `show-password-toggle` is deprecated, please use `show-password-on="click"` instead.

### Fixes

- Fix `n-cascader` click tag to delete the sub option in multi selection mode, and the tree option is not updated.
- Fix `n-input` chinese input method not correct while mouse leave the input in `clearable` is true, closes [#905](https://github.com/tusen-ai/naive-ui/issues/905).
- Fix `n-description`'s warning caused by `v-if` that should not appear, closes [#1083](https://github.com/tusen-ai/naive-ui/issues/1083).
- Fix `n-layout`'s `sider-placement` doesn't work after build, closes [#978](https://github.com/tusen-ai/naive-ui/issues/978).
- Fix `n-input-number`'s `step` calculate error when the value is decimal, closes [#1007](https://github.com/tusen-ai/naive-ui/issues/1007).
- Fix `n-popselect`' s default placement and padding.
- Fix `n-calendar`'s text color of disabled date.

### Feats

- `n-cascader` adds `onUpdateValue` prop.
- `n-auto-complete` adds `onUpdateValue` prop.
- `n-data-table`'s column's `renderFilterMenu` adds `hide` param.
- `n-tree` adds `key-field` prop.
- `n-tree` adds `label-field` prop.
- `n-tree` adds `children-field` prop.
- `n-tree-select` adds `key-field` prop.
- `n-tree-select` adds `label-field` prop.
- `n-tree-select` adds `children-field` prop.
- `n-cascader` adds `key-field` prop.
- `n-cascader`adds `label-field` prop.
- `n-cascader` adds `children-field` prop.
- `n-dropdown` option adds `props` prop, closes [#813](https://github.com/tusen-ai/naive-ui/issues/813).
- `n-data-table` supports multi-selection by holding down `shift`, closes [#554](https://github.com/tusen-ai/naive-ui/issues/554).
- `n-tree-select` adds `check-strategy` prop, closes [#624](https://github.com/tusen-ai/naive-ui/issues/624).
- `n-cascader` adds `check-strategy` prop.
- `n-message` option adds `keepAliveOnHover`, closes [#1036](https://github.com/tusen-ai/naive-ui/issues/1036).
- `n-message-provider` adds `keep-alive-on-hover` prop, closes [#1036](https://github.com/tusen-ai/naive-ui/issues/1036).
- `n-upload` export `UploadFile` type.
- `n-cascader` export `CascaderOption` type.
- `n-mention` export `MentionOption` type.
- `n-transfer` export `TransferOption` type.
- `n-pagination` export `PaginationInfo` type.
- `n-data-table` export `DataTableCreateSummary` type.
- `n-code` adds `inline` prop, closes [#834](https://github.com/tusen-ai/naive-ui/issues/834).
- `n-collapse` adds `header-extra` slot, closes [#1046](https://github.com/tusen-ai/naive-ui/issues/1046).
- `n-input` adds `show-password-on` prop.
- `n-upload` adds `list-type`, `show-preview-button`, `on-preview` and `create-thumbnail-url` prop.

## 2.16.7

`2021-08-27`

### Feats

- `n-mention` adds `focus` and `blur` methods.

### Fixes

- Fix `n-mention`'s menu is too far from text in input mode.
- Fix `n-tree` node can not expanded.

## 2.16.6

`2021-08-26`

### Feats

- `n-timeline` adds `horizontal` prop, closes [#887](https://github.com/tusen-ai/naive-ui/issues/887).
- `n-image` adds `preview-src` prop, closes [#922](https://github.com/tusen-ai/naive-ui/issues/922).
- `n-dynamic-tags` adds `input` and `add` slot, closes [#499](https://github.com/tusen-ai/naive-ui/issues/499).
- `n-timeline-item` adds `color` prop.

### Fixes

- Fix `n-image` not initializing `rotate` after switching images, closes [#921](https://github.com/tusen-ai/naive-ui/issues/921).
- Fix `n-data-table`'s loading is not centered, closes [#929](https://github.com/tusen-ai/naive-ui/issues/929).
- Fix `n-tree` throws an exception when onLoad callback does not adds children, closes [#772](https://github.com/tusen-ai/naive-ui/issues/772).
- Fix `n-input` will show placeholder and 0 simultaneously while passing `value=ref(0)` in n-input, closes [#914](https://github.com/tusen-ai/naive-ui/issues/914).
- Fix `n-data-table` `flex-height` not working without `scroll-x`, closes [#952](https://github.com/tusen-ai/naive-ui/issues/952).

## 2.16.5

`2021-08-20`

### Feats

- `n-input-number` adds `clearable` prop.
- `n-form` adds `show-label` prop, closes [#858](https://github.com/tusen-ai/naive-ui/issues/858).

### Fixes

- Fix `n-notification`'s exported `NotificationReactive` type is not writable, closes [#876](https://github.com/tusen-ai/naive-ui/issues/876).
- Fix `n-tabs` style glitches when different types tabs are nested, closes [#850](https://github.com/tusen-ai/naive-ui/issues/850).
- Fix `n-dropdown`'s inner link click trigger area is not the entire option, closes [#823](https://github.com/tusen-ai/naive-ui/issues/823).
- Fix `n-popover` arrow's misplacement when placed in nested popovers with different placement, closes [#916](https://github.com/tusen-ai/naive-ui/issues/916).
- Fix `n-ellpisis` doesn't work after content is updated, closes [#776](https://github.com/tusen-ai/naive-ui/issues/776).

## 2.16.4

`2021-08-16`

### Fixes

- Fix ruRU locale exports.

## 2.16.3

`2021-08-16`

### i18n

- Add ruRU locale [#852](https://github.com/tusen-ai/naive-ui/pull/852).

### Feats

- `n-message-provider` adds `container-style` prop.
- `n-message-provider` adds `placement` prop.
- `n-message` adds class to distinguish type.
- `n-date-picker` adds `shortcuts` props, closes [#280](https://github.com/tusen-ai/naive-ui/issues/280).

### Fixes

- Fix `n-rate` half star overlays star background in dark mode.
- Fix `n-menu` renders unexpectly when `render-icon` returns `true`.
- Fix `n-space` render empty placeholder while use `v-if`, closes [#824](https://github.com/tusen-ai/naive-ui/issues/824).

## 2.16.2

`2021-08-09`

### Feats

- `n-message-provider` adds `closable` prop, closes [#795](https://github.com/tusen-ai/naive-ui/issues/795).
- `n-tree-select` adds `show-path` prop, closes[#625](https://github.com/tusen-ai/naive-ui/issues/623).
- `n-layout` adds `sider-placement` prop, closes [#566](https://github.com/tusen-ai/naive-ui/issues/566).

### Fixes

- Fix `n-avatar`'s scale value is incorrect while use v-show, closes [#779](https://github.com/tusen-ai/naive-ui/issues/779).
- Fix `n-menu` show a blue background when click the menu on mobile phone, closes [#799](https://github.com/tusen-ai/naive-ui/issues/799).
- Fix `n-select` filterable select breaks, closes [#510](https://github.com/tusen-ai/naive-ui/issues/510).
- Fix `n-data-table` When selectAll is selected, the state display of selectAll should not contain disabled rows, closes [#778](https://github.com/tusen-ai/naive-ui/issues/778).
- Fix `n-color-picker`'s `on-complete` callback's argument `value` is incorrect, closes [#748](https://github.com/tusen-ai/naive-ui/issues/748).

## 2.16.1

`2021-08-06`

### Feats

- `n-loading-bar-provider` adds `loading-bar-style` props, closes [#457](https://github.com/tusen-ai/naive-ui/issues/457).
- `n-button` adds `text-color` prop.
- `n-form` export `FormValidationError` type.
- `n-popconfirm` support not show action components, closes [#770](https://github.com/tusen-ai/naive-ui/issues/770).

### Fixes

- Fix `n-slider` loss floating point decimal precision, closes [#751](https://github.com/tusen-ai/naive-ui/issues/751).
- Fix `n-data-table` `onUpdatePage` and `onUpdatePageSize` not triggered while using jsx.
- Fix `n-progress`'s `percentage` prop default value doesn't work with different types.
- Fix `n-select` hide close icon when option is disabled.
- Fix `n-modal` can't be closed when using custom content, closes [#788](https://github.com/tusen-ai/naive-ui/issues/788).

## 2.16.0

`2021-08-02`

### Breaking Changes

- `useLoadingBar`'s `finish` method won't work if no `start` is called.
- `n-input`'s `type='input'` is renamed to `type='text'`.

### Feats

- `n-scrollbar` adds `scrollbarWidth`, `scrollbarHeight` and `scrollbarBorderRadius` common theme variables, closes [#649](https://github.com/tusen-ai/naive-ui/issues/649).
- `n-menu` doesn't should icon placeholder when `render-icon` returns falsy value, closes [#722](https://github.com/tusen-ai/naive-ui/issues/722).
- `n-menu` adds `render-extra` prop.
- `n-select` adds `on-clear` prop.
- `n-form` adds `disabled` prop, closes [#538](https://github.com/tusen-ai/naive-ui/issues/538).
- `n-dynamic-tags` adds `max` prop.

### Fixes

- Fix `n-dropdown` click exception when using v-for.
- Fix `n-modal` cannot customize classes when use preset, closes [#744](https://github.com/tusen-ai/naive-ui/issues/744).
- Fix `n-cascader` menu width shifts in virtual scroll mode, closes [#728](https://github.com/tusen-ai/naive-ui/issues/728).

## 2.15.11

`2021-07-29`

### Fixes

- Fix `n-data-table` pagination's error.

## 2.15.10

`2021-07-29`

### Feats

- `n-pagination` adds `prev` and `next` slots, ref [#648](https://github.com/tusen-ai/naive-ui/issues/648).
- `n-tag` adds `color` prop, closes [#693](https://github.com/tusen-ai/naive-ui/issues/693).
- `n-dynamic-tags` adds `color`, closes [#693](https://github.com/tusen-ai/naive-ui/issues/693).
- `n-time-picker` optimization the now button logic, closes [#401](https://github.com/tusen-ai/naive-ui/issues/401).
- `n-pagination` `PaginationInfo` adds `itemCount` prop, closes [#585](https://github.com/tusen-ai/naive-ui/issues/585).
- `n-select` adds `on-clear` prop.

### Fixes

- Fix `n-message`'s `destroyAll` method doesn't work.
- Fix `n-timeline`'s header slot is invalid when using alone.
- Fix `n-select` incorrect style when props has `disabled` and `filterable`, closes [#698](https://github.com/tusen-ai/naive-ui/issues/698).
- Fix `n-upload` operation buttons displayed when has `file-list` & `disabled` props, closes [#668](https://github.com/tusen-ai/naive-ui/issues/668).

## 2.15.9

`2021-07-28`

### Feats

- `n-message` adds `destroyAll` method.
- `n-input-number` adds `prefix`, `suffix` slots, closes [#609](https://github.com/tusen-ai/naive-ui/issues/609).

### Fixes

- Fix `n-message` options' `duration` prop doesn't work.

## 2.15.8

`2021-07-27`

### Feats

- `n-menu` adds `expand-icon` prop, closes [#414](https://github.com/tusen-ai/naive-ui/issues/414).
- `n-descriptions`, `n-descriptions-item` adds `label-style` and `content-style` props, closes [#536](https://github.com/tusen-ai/naive-ui/issues/536).

### Fixes

- Fix `n-data-table` the style penetration of the `n-spin`, closes [#663](https://github.com/tusen-ai/naive-ui/issues/663).

## 2.15.7

`2021-07-25`

### Feats

- `n-dropdown` adds `show-arrow` prop, closes [#647](https://github.com/tusen-ai/naive-ui/issues/647).
- `n-time-picker` adds `actions` prop, closes [#401](https://github.com/tusen-ai/naive-ui/issues/401).
- `n-mention` adds `render-label` prop.
- `n-switch` adds `checked`, `unchecked` slots.
- `n-switch` adds `loading` prop, closes [#301](https://github.com/tusen-ai/naive-ui/issues/301).
- `n-select` pressing arrow down can open menu, ref [#300](https://github.com/tusen-ai/naive-ui/issues/300).
- `n-tree-select` pressing arrow down can open menu, ref [#300](https://github.com/tusen-ai/naive-ui/issues/300).
- `n-cascader` pressing arrow down can open menu, ref [#300](https://github.com/tusen-ai/naive-ui/issues/300).
- `n-popover`'s `trigger` prop support `'focus'`, closes [#477](https://github.com/tusen-ai/naive-ui/issues/477).
- `n-message-provider` adds `duration` and `max` props.
- `n-data-table` adds `flex-height` prop, closes [#596](https://github.com/tusen-ai/naive-ui/issues/596).

### Fixes

- Fix `n-carousel` arrow buttons cannot be displayed in a specific browser, closes [#625](https://github.com/tusen-ai/naive-ui/issues/625).
- Fix `n-layout-sider`'s `width` prop can't be string, closes [#607](https://github.com/tusen-ai/naive-ui/issues/607).
- Fix `n-slider` prop `disabled` doesn't work, closes [#641](https://github.com/tusen-ai/naive-ui/issues/641).
- Fix `n-input` show clear button when readonly.
- Fix `n-data-table` doesn't show scrollbar when table-layout is auto, closes [#518](https://github.com/tusen-ai/naive-ui/issues/518).
- Fix `n-data-table`'s header checkbox always displays checked when data is empty.
- Fix `n-data-table` header and body's scrollings are not sync.

## 2.15.6

`2021-07-23`

### Feats

- `n-menu` adds `render-icon` prop.
- `n-upload` adds `show-file-list` prop.
- `n-dropdown` adds `render-icon` prop.
- `n-checkbox-group` adds `min` and `max` prop.
- `n-mention` adds `empty` slot.
- `useDialog` option adds `on-mask-click` prop, closes [#419](https://github.com/tusen-ai/naive-ui/issues/419).
- `n-space` `justify` prop supports `center`, `space-around` and `space-between`.
- `n-date-picker` adds `close-on-select` prop, closes [#541](https://github.com/tusen-ai/naive-ui/issues/541).
- `n-dialog` adds `action` prop, closes [#550](https://github.com/tusen-ai/naive-ui/issues/550).
- `n-mention`’s `option.label` support render function.
- `n-color-picker` adds `actions` prop, closes [#319](https://github.com/tusen-ai/naive-ui/issues/319).

### Fixes

- Fix `n-space`'s inner `display: grid` element breaks item height, closes `https://github.com/tusen-ai/naive-ui/issues/546`.
- Fix `n-dropdown`'s `render-label` prop is invalid for group type option.
- Fix `n-datatable`'s `scroll-x` prop is setted, the table content width is not full of the container width, closes [#518](https://github.com/tusen-ai/naive-ui/issues/518).
- Fix `n-descriptions` doesn't work with `v-for` children.
- Fix `n-dialog` display an empty button when `positive-text` is not set, closes [#549](https://github.com/tusen-ai/naive-ui/issues/549).
- Fix `n-pagination` `PaginationInfo`'s `endIndex` data error, closes [#584](https://github.com/tusen-ai/naive-ui/issues/584).
- Fix `n-data-table` `rowClassName` doesn't work when type is string, closes [#582](https://github.com/tusen-ai/naive-ui/issues/582).

## 2.15.5

`2021-07-16`

### Feats

- `n-tree` adds `render-label`, `render-prefix` and `render-suffix` props.
- `n-rate` adds `allow-half` prop.
- `n-carousel` adds `show-arrow` prop.
- `n-slider` adds `format-tooltip` prop.
- `n-upload` adds `event` in `on-finish` callback params.
- `n-rate` adds `readonly` prop.
- `n-time-picker` adds `seconds`, `minutes`, `hours` props.
- `n-notification` export `NotificationApi`, `NotificationOptions` and `NotificationReactive` type.
- `n-avatar` adds `on-error` prop, closes [#394](https://github.com/tusen-ai/naive-ui/issues/394).
- `n-image` adds `on-error` prop, closes [#394](https://github.com/tusen-ai/naive-ui/issues/394).
- `n-image` adds `object-fit` prop, closes [#394](https://github.com/tusen-ai/naive-ui/issues/394).
- `n-avatar` adds `object-fit` prop, closes [#394](https://github.com/tusen-ai/naive-ui/issues/394).
- `n-menu` expands all the ascendant of selected item by default, closes [#481](https://github.com/tusen-ai/naive-ui/issues/481).

### Fixes

- Fix `n-calendar`'s `default-value` prop cannot be used.
- Fix `n-pagination` page count is not correct when `item-count` is 0.
- Fix `n-scrollbar` `content-style` can not override the default width of style.
- Fix `n-select` placeholder transition.
- Fix `n-loading-bar` `useLoadingBar`'s return type can be undefined.
- Fix `n-tag`'s `type` prop adds `primary` type.
- Fix `n-dynamic-tags`'s `type` prop adds `primary` type.

## 2.15.4

`2021-07-09`

### Feats

- `n-steps` adds icon customization in `'finish'` and `'error'` status.
- `n-tree` exports `TreeDragInfo` & `TreeDropInfo` type.
- `n-empty` export `icon` slot.
- `useDialog` option adds `maskClosable` prop, closes [#420](https://github.com/tusen-ai/naive-ui/issues/420).

### Fixes

- Fix `n-data-table` fixed column box-shadow doesn't update when there is only on side fixed.
- Fix `n-data-table` fixed column box-shadow doesn't update when `props.scrollX` is not set but each column's width is set.
- Fix `n-result` image doesn't show on Safari and mobile phone.
- Fix `n-drawer-content`'s `header-style` style not applied to header.
- Fix `n-dialog` instance throws error when calling `destroy`.
- Fix `n-image-group` initialize zoom scale when switching a picture [#423](https://github.com/tusen-ai/naive-ui/issues/423).
- Fix `n-select` bug in using custom label, closes [#352](https://github.com/tusen-ai/naive-ui/issues/352).
- Fix `n-carousel` when `autoplay` dot active status isn't displayed correctly, closes [#434](https://github.com/tusen-ai/naive-ui/issues/434).
- Fix `n-input` fixed clearable position, closes [#428](https://github.com/tusen-ai/naive-ui/issues/428).
- Fix `n-image` doesn't accept attributes.
- Fix `n-image` set border-radius not working, closes [#427](https://github.com/tusen-ai/naive-ui/issues/427).
- Fix `n-tab-pane` throws error when there's no children.
- Fix `n-select` clear button is too big in `n-spin`, closes [#454](https://github.com/tusen-ai/naive-ui/issues/454).
- Fix `n-select` options are not updated properly, closes [#441](https://github.com/tusen-ai/naive-ui/issues/441).

## 2.15.3

`2021-07-05`

### Feats

- `n-loading-bar` export `LoadingBarApi` type.
- `n-image` adds `img-props` prop.
- Add native `title` attributes to some components to enhance the experience.
- `n-tree` adds `prefix` and `suffix` in TreeOption.
- `n-carousel` adds `dot-placement` prop.
- `n-auto-complete` adds `loading` prop, closes [#241](https://github.com/tusen-ai/naive-ui/issues/241).
- `n-slider` adds `tooltip` prop, closes [#362](https://github.com/tusen-ai/naive-ui/issues/362).
- `n-input` adds `loading` prop.

### Fixes

- Fix `n-upload` `multiple=false` doesn't work for drag & drop, closes [#363](https://github.com/tusen-ai/naive-ui/issues/363).
- Fix `n-dropdown`'s inner `<a />`'s style.
- Fix `n-menu` tooltip's inner `<a />`'s style, closes [#338](https://github.com/tusen-ai/naive-ui/issues/338).
- Fix `n-carousel` doesn't work with `v-for` children.
- Fix `n-form` `label-align` prop not working, closes [#213](https://github.com/tusen-ai/naive-ui/issues/213).
- Fix `n-data-table` fixed column shadow doesn't work when `max-height` is set, closes [#376](https://github.com/tusen-ai/naive-ui/issues/376).

## 2.15.2

`2021-07-02`

### Feats

- `n-carousel` adds `trigger` prop.
- `n-menu` adds `dropdown-placement` prop.
- `n-upload` adds `before-upload` prop.
- `n-image` adds `alt` prop.
- Support the enter key on the numeric keypad.
- `n-spin` support `icon` slot for icon customizing, closes[#260](https://github.com/tusen-ai/naive-ui/issues/260).
- `n-spin` adds `rotate` prop fro slot icon to rotate.
- `n-form` export `FormItemRule` & `FormRules` type.
- `n-select` adds `render-tag` prop.

### Fixes

- Fix `n-log` warn on highlight.js when no language is set, closes [#327](https://github.com/tusen-ai/naive-ui/issues/327).
- Remove `n-calendar`'s useless `console.log`.
- Fix loading-bar disappears unexpectl, closes [#343](https://github.com/tusen-ai/naive-ui/issues/343).
- Fix `n-select` doesn't scroll to selected item when menu is opened, closes [#346](https://github.com/tusen-ai/naive-ui/issues/346).
- Fix `n-tab-pane` throws error when using v-if.
- Fix `n-modal` still closes when `on-negative-click` returns `false`.
- Fix `n-collapse` `defaultExpandedNames` does not work in accordion mode, closes [#350](https://github.com/tusen-ai/naive-ui/issues/350).
- Fix `n-tag` lacks `on-update-checked` prop.
- Fix `n-menu` `render-label` not working for dropdown in collapsed mode.

## 2.15.1

`2021-06-30`

- Fix no `web-types.json`.

## 2.15.0

`2021-06-29`

### Breaking Changes

- `n-select`'s `SelectOption`'s `render` no longer render label but the entire option.

### Feats

- `n-carousel` supports touch operation, closes [#271](https://github.com/tusen-ai/naive-ui/issues/271).
- `n-input` adds `input-props` prop.
- `n-message` optimize the error message of `useMessage` when there is no `n-message-provider`, adds the related document link.
- Add `web-types.json` for webstorm, however I recommend using VSCode and Volar. `web-types.json` only provides limited information for coding.
- `n-tree-select` adds `leaf-only` prop.
- `n-tree` adds `leaf-only` prop.
- `n-select`'s `SelectOption`'s `label` supports render function.
- `n-select` adds `render-option` prop.
- `n-select` export `SelectOption` & `SelectGroupOption` type.
- `n-popover` adds `header` slot.
- `n-dropdown` adds `render-label` prop.

### Fixes

- Fix `n-date-picker` `n-provider` pass `date-locale` not work, closes [#250](https://github.com/tusen-ai/naive-ui/issues/250).
- Fix `n-input` clear button placeholder prevent clicking on actual component, closes [#288](https://github.com/tusen-ai/naive-ui/issues/288).
- Fix `n-carousel` click the at current item button, the component behaves abnormally.
- Fix `n-menu` `render-label` not working for tooltip in collapsed mode.
- Fix `n-dropdown` can't render `n-popover` in option.

## 2.14.0

`2021-06-23`

### Breaking Changes

- `n-element` removes `abstract` prop.
- `n-element` doesn't return theme variables in default slot. Please use `useThemeVars` instead.

### Feats

- Add `n-carousel` component.
- Add `useThemeVars` composable to provide theme variables.
- `n-upload` adds `on-update:file-list` prop, closes [#135](https://github.com/tusen-ai/naive-ui/issues/135).
- `n-date-picker` adds `update-value-on-close` prop.

### Fixes

- Fix `n-select` can't input in filterable mode in single mode in iOS Safari, closes [#230](https://github.com/tusen-ai/naive-ui/issues/230).
- Fix `n-input-number` lacks `on-update-value` prop.
- Fix `n-input-number`'s value can't be null.
- Fix `n-input-number`'s button doesn't work after value is cleared, closes [#251](https://github.com/tusen-ai/naive-ui/issues/251).
- Fix `n-data-table` expand trigger's cursor is not pointer, closes [#261](https://github.com/tusen-ai/naive-ui/issues/261).

## Refactors

- `n-input-number` will focus directly, closes [#244](https://github.com/tusen-ai/naive-ui/issues/244).

## 2.13.0

`2021-06-21`

### Feats

- `n-dropdown` adds `on-clickoutside` prop, closes [#123](https://github.com/tusen-ai/naive-ui/issues/123).
- `n-menu` adds `render-label` prop, closes [#84](https://github.com/tusen-ai/naive-ui/issues/84).
- `n-tree` supports keyboard operations.
- Add `n-tree-select` component.

### Fixes

- Fix `n-tree` drag over leaf node causes error, closes [#200](https://github.com/tusen-ai/naive-ui/issues/200).
- Fix `n-tree` misses `on-update-expanded-keys`, `on-update-selected-keys`, `on-update-checked-keys` prop.
- Fix `n-tree`'s `selected-keys` prop influences original array.
- Fix `n-select`'s input has useless empty row in multiple filterable mode.
- Fix `n-button`'s loading icon doesn't show on iOS Safari, closes [#219](https://github.com/tusen-ai/naive-ui/issues/219).
- Fix `n-date-picker` doesn't show icon when clearable.
- Fix `n-time-picker` icon mis-aligned when clearable, closes [#222](https://github.com/tusen-ai/naive-ui/issues/222).

## 2.12.2

`2021-06-19`

### Fixes

- Fix `n-form-item` always show require mark.

## 2.12.1

`2021-06-19`

### Feats

- `n-form`, `n-form-item` enhance `show-require-mark` prop, closes [#171](https://github.com/tusen-ai/naive-ui/issues/171).
- `n-dropdown` support class attr, closes [#180](https://github.com/tusen-ai/naive-ui/issues/180).
- `n-input` adds `show-password-toggle` prop.
- `n-popselect` support class attr.
- `n-select` adds `render-label` prop.
- `n-popselect` adds `render-label` prop.

### Fixes

- Fix `n-input` baseline shifts when mix Chinese and English characters in input, closes [#174](https://github.com/tusen-ai/naive-ui/issues/174).
- Fix `n-icon` use setup script, `$parent` is an empty object by default, and access `$parent.$options` will be `undefined`.
- Fix `n-notification` position not correct.
- Fix `n-message` content & option type not correct.

## 2.12.0

`2021-06-16`

### Breaking Changes

- `n-a`'s `to` prop is removed. Now if you want to use `n-a` like a router link, you can follow the doc site.

### Feats

- `n-tree` support `disabled` & `checkboxDisabled` on option.
- `n-input-number` support keyboard events ArrowUp and ArrowDown operations.

### Fixes

- Fix `n-cascader` text blur in win10 Chrome.
- Fix `n-tree` click on indent won't trigger select in block line mode.

## 2.11.12

`2021-06-16`

### Feats

- `n-drawer-content` adds `closable` prop, closes [#139](https://github.com/tusen-ai/naive-ui/issues/139).
- `n-element` pass `themeVars` to default slot.
- `n-element` adds `abstract` prop.

### Fixes

- Fix `n-radio-group` doesn't trigger form item validation.
- Fix `n-auto-complete` customizing input not working.

## 2.11.11

`2021-06-15`

### Feats

- `n-tag` adds `RTL` support.

### Fixes

- Move `vue` & `vue-router` to peer dependencies to avoid redundant bundle.

## 2.11.9

`2021-06-15`

### Feats

- `n-space` supports wai-aria.
- `n-button-group` supports wai-aria.
- `n-progress` supports wai-aria.
- `n-menu` supports use `<a />` and `<router-link />` as label, closes [#84](https://github.com/tusen-ai/naive-ui/issues/84).
- `n-input-number` adds `show-button` prop.
- `n-rate` support `default` slot for icon customizing.
- `n-rate` adds color prop.
- `n-rate` adds size prop.

### Fixes

- Fix `n-card`'s `header-style` it not applied to header, closes [#103](https://github.com/tusen-ai/naive-ui/issues/103).
- Fix `n-dialog` misses `destroyAll` method.
- Fix `n-data-table` misses `on-update-sorter`, `on-update-filters`, `on-update-page` and `on-update-page-size` props.

## 2.11.8

`2021-06-13`

### Feats

- `n-data-table` exports `DataTableCreateRowClassName`, `DataTableCreateRowKey` and `DataTableCreateRowProps` type.

### Fixes

- Fix `n-calendar`'s `on-update:value` prop type.
- Fix `n-form-item`'s style attribute `grid-template-columns` influence on the layout of child elements, closes [#93](https://github.com/tusen-ai/naive-ui/pull/93).
- Fix `n-data-table`'s prop types of `rowKey`, `rowClassName`, `rowProps`, `summary` aren't compatible with expected value.

## 2.11.7

`2021-06-12`

### Fixes

- Fix `n-slider` doesn't prevent scrolling when touchstart.
- Fix `n-color-picker`'s default value doesn't follow modes.
- Fix not `lodash` & `lodash-es` type.

## 2.11.6

`2021-06-11`

### Feats

- `n-spin`'s `size` prop support number.
- `n-date-picker` adds `footer` slot.

### Fixes

- Fix `n-slider` doesn't support touch events.
- Fix `n-button` causes crash when it's imported in script inside head tag, closes [#68](https://github.com/tusen-ai/naive-ui/pull/68).
- Fix `n-spin` animation shifts.
- Fix `n-menu` lack `on-update-value` and `on-update-expanded-keys` props.
- Fix `n-popconfirm` icon slot not working.
- Fix `n-tabs` logs useless info.
- Fix `n-color-picker` set `modes` not working, closes [#77](https://github.com/tusen-ai/naive-ui/issues/77).

## 2.11.5

`2021-06-10`

### Feats

- `n-dropdown` adds `disabled` prop.
- `n-card` adds `:target` style.

### Fixes

- Fix `n-popover` sometimes won't sync position in manual mode.
- Fix `n-transfer`'s empty icon is no toggling transition.
- Fix `n-message` API option is not optional.
- Fix `n-calendar` date calculate incorrectly.
- Fix `n-input` misses the `password` type declaration.
- Fix `n-menu` the type definition of `extra` property of menu and submenu.
- Fix `n-dropdown` mouse cursor is not pointer.

## 2.11.4

`2021-06-07`

### Feats

- `n-button` supports wai-aria.
- `n-card` supports wai-aria.
- `n-switch` supports wai-aria.
- `n-menu` supports basic wai-aria.
- `n-divider` supports basic wai-aria.
- `n-data-table` adds `row-props` prop.
- `n-date-picker` adds `ranges` prop.

### Fixes

- Fix `n-tab-pane` `display-directive` not working.
- Fix `n-drawer` animation.
- Fix `n-scrollbar`'s track may be overlayed in chrome windows.

## 2.11.3

`2021-06-05`

- Fix `n-collapse` `default-expanded-names` not working.

## 2.11.2

`2021-06-05`

### Fixes

- Fix `n-dropdown` default placement is not `bottom`.
- Fix `n-date-picker`'s input theme is not set in `date` & `datetime` type.
- Fix `n-config-provider` doesn't merge inherited theme.

### Feats

- `n-collapse` adds `arrow` slot.

## 2.11.1

`2021-06-05`

Update package.json & README.md.

## 2.11.0

`2021-06-05`

### Breaking Changes

- `n-affix`'s `listen-to` prop is `document` by default (first scrollable parent before).

### Feats

- `n-affix`'s `listen-to` prop support `Window | Document | HTMLElement`.
- `n-anchor` adds `offset-target` prop.
- `n-select` adds `virtual-scroll` prop.
- `n-select` adds `consistent-menu-width` prop.
- `n-date-picker` update value after confirm is clicked.

### Fixes

- Fix `n-date-picker` doesn't disable start date correctly when value is empty.
- Fix `n-input-number` not restore valid value after blur.
- Fix `n-date-picker` display selected date when value is null in date mode.

### Deprecated

- `n-affix`'s `offset-top` prop is deprecated, please use `trigger-top` instead.
- `n-affix`'s `offset-bottom` prop is deprecated, please use `trigger-bottom` instead.
- `n-anchor`'s `listen-to` prop is removed.

## 2.10.0

`2021-05-26`

### Breaking Changes

- `n-popover`'s `placement` prop default value is set to `'top'`.

### Feats

- `n-tabs` adds `on-close` prop.
- `n-tabs` adds `on-add` prop.
- `n-tabs` adds `tab` slot.
- `n-tab-pane`'s `tab` prop support render function & VNode.
- `n-tabs`'s `type` prop support `'line'` option.
- `n-tabs` adds box shadow to indicate scroll status.
- `n-tabs` adds `pane-style` prop.

### Fixes

- Fix `n-layout`'s `scrollTo` not working when using native scrollbar.

### Deprecated

- `n-tab-pane`'s `label` prop is deprecated. Please use `tab` prop instead.

## 2.9.0

`2021-05-25`

### Breaking Changes

- `n-layout-sider` removed `show-content` prop. Please use `show-collapsed-content` instead.

### Feats

- `n-data-table` support tree data.
- `n-data-table` adds `cascade` prop.
- `n-data-table` adds `children-key` prop.
- `n-data-table` adds `indent` prop.
- `n-button` adds `tag` prop.
- `n-data-table` adds `table-layout` prop.
- `n-tree` adds `block-line` prop.
- `n-tree` support drag & drop.
- `n-menu` adds `inverted` prop.
- `n-dropdown` adds `inverted` prop.
- `n-tabs` adds `addable` prop.
- `n-tabs` adds `tab-style` prop.
- `n-tabs` adds `tabs-padding` prop.
- `n-tabs` adds `default-value` prop.
- `n-layout-sider` & `n-layout-footer` & `n-layout-header` adds `inverted` prop.
- `n-data-table`'s `max-height` & `min-height` prop accept CSS value.
- `n-layout` & `n-layout-content` adds `embedded` prop.

### Fixes

- `n-layout` & `n-layout-sider`'s `scrollTo` not working with native scrollbar.
- `n-layout-sider`'s `collapse-mode` not working.
- Internal selection component's theme peers has wrong key for popover.

## 2.8.0

`2021-05-19`

### Perf

- Optimize `n-data-table` init render count.
- Optimize `n-select` open duration after first opening.
- Optimize `n-anchor` scroll performance.

### Feats

- `n-tree` adds `virtual-scroll` prop.
- `n-data-table` adds `virtual-scroll` prop.
- `n-cascader` adds `virtual-scroll` prop.
- `n-pagination` adds `item-count` prop.
- `n-pagination` adds `prefix` prop.
- `n-pagination` adds `prefix` slot.
- `n-pagination` adds `suffix` prop.
- `n-pagination` adds `suffix` slot.
- `n-input` adds `show-count` prop.

### Fixes

- Fix `n-layout-sider` doesn't show menu after collapsed.
- Fix `n-input-number` doesn't reset to origin value when blur with invalid value.
- Fix `n-pagination` doesn't update page in uncontrolled mode.

## 2.7.4

`2021-04-25`

### Feats

- `n-form-item` works without `n-form`.

### Fixes

- Fix `n-checkbox` check mark not displayed.
- Fix `n-date-picker` icon transition style in trigger.
- Fix `n-p`, `n-ol`, `n-ul` margin bottom is not 0 when they are last child.
- Fix `n-checkbox-group` not working in uncontrolled mode.
- Fix `n-data-table` clear check all in table now working.

## 2.7.3

`2021-04-22`

### Feats

- `n-data-table` highlight sorted col.
- `n-data-table` col adds `render-filter` prop.
- `n-data-table` col adds `render-filter-icon` prop.

### Fixes

- `n-data-table` fixed column box-shadow more clear in dark theme.
- Fix `n-color-picker` value has line wrap.
- Fix `n-form` FormRuleItem.trigger types.

## 2.7.2

`2021-04-21`

### Feats

- `n-data-table` adds `summary` prop.
- `n-data-table` adds `options` on `'type=selection'` column.

### Fixes

- Fix `n-layout` overflow on horizontal direction.

## 2.7.1

`2021-04-20`

### Feats

- `n-checkbox` adds `focusable` prop.
- `n-cascader` adds `action` slot.

### Fixes

- Fix `n-cascader` loading triggered when click checkbox.
- Fix `n-cascader` menu mask style.

## 2.7.0

`2021-04-19`

### Breaking Changes

- `n-drawer` doesn't have padding by default. `n-drawer-content` is provided to fill the drawer.

## 2.6.0

`2021-04-19`

### Feats

- `n-drawer` adds `content-style` prop.
- `n-layout` adds `content-style` prop.
- `n-layout-sider` adds `content-style` prop.

### Feats

- `n-config-provider` Add `cls-prefix` prop.

### Fixes

- Fix `n-popover` may influence other popover when static props is hoisted.

## 2.5.1

`2021-04-14`

### Feats

- `n-color-picker` adds `show-alpha` prop.

### Fixes

- Fix `n-select` default `fallback-option` breaks the component.

## 2.5.0

`2021-04-13`

### Feats

- Add `n-skeleton` component.
- Add `n-calendar` component.
- Add `n-color-picker` component.
- `n-date-picker` locale adds `firstDayOfWeek`.
- `n-select` adds `showArrow` prop.

### Fixes

- Fix `n-date-picker` trigger has no focus style in focus is in panel.
- Fix `n-button` loading's fade-in transtion drifts.
- Fix `n-time-picker` close animation drifts in `n-date-picker`.
- Fix detached components in popover should stay in popover.

## 2.4.2

`2021-04-08`

### Feats

- Add `n-form-item-gi` component.

### Fixes

- Fix `n-ellipsis` & `n-data-table` ellpisis cell mis-vertical-aligned.
- Fix `n-select` filterable doesn't work with composite events.

## 2.4.1

`2021-04-07`

### Fixes

- Fix `n-select` caret color in single filter mode.
- Fix `n-select` menu action part can't be focused.

## 2.4.0

`2021-04-07`

### Feats

- Add `n-image` component.
- Add `n-global-style` component.
- Add `n-theme-editor` component.
- Add `n-page-header` component.
- `n-statistic` adds `label` slot.
- `n-breadcrumb-item` adds `separator` slot & prop.
- `n-button` adds `bordered` prop.
- `n-card` adds `footer-style` prop.

### Refactors

- Refactor `n-statistic`'s style.
- `n-menu` adds `options` prop to replace `items` prop, `items` prop is deprecated.

### Fixes

- Fix `n-anchor` `ignore-gap` not working.
- Fix `n-collapse` content is truncated by `overflow: hidden`.
- Fix `n-select` tag text overflow.
- Fix `n-popover` doesn't hide as expected in mobile phone.

## 2.3.1

`2021-03-29`

### Fixes

- Fix `n-layout-sider` horizontal content overflows.

## 2.3.0

`2021-03-29`

### Breaking Changes

- Collapsing won't work for `n-layout-sider` with `position="absolute"`.
- For `n-layout` contains `n-layout-sider` as a direct child `has-sider` must be set.

## 2.2.0

`2021-03-29`

### Feats

- Add `n-mention` component.
- `n-data-table` supports expanding rows.

### Fixes

- Fix `n-input` focused background color not correct in warning & error status in dark theme.
- Fix `n-input` caret color not correct in warning & error status.
- Fix `n-select`'s namespace not correct.
- Fix `n-cascader`'s namespace not correct.
- Fix `n-input` in textarea mode can't select text.
- Fix `n-input` in textarea mode has no box-shadow.
- Fix `n-input` in textarea mode `autosize` line not correct due to inconsistant font family.
- Fix `n-input` in textarea mode `autosize` rows not changed if props.value is changed from outside.

### Refactors

- Change `n-empty`'s icon and make it size larger.

## 2.1.3

`2021-03-25`

### Fixes

- Fix `n-data-table` has no right border of non-last td.
- Fix `n-data-table` header has no enough width when table width is more than `scroll-x`.

## 2.1.2

`2021-03-24`

### Feats

- `n-data-table`'s column adds `colSpan` and `rowSpan` prop.
- `n-data-table`'s column adds `titleColSpan` prop.

### Fixes

- Fix `n-dropdown` with `x` and
Download .txt
gitextract_o125x3e3/

├── .github/
│   ├── FUNDING.yml
│   ├── ISSUE_TEMPLATE/
│   │   ├── bug_report.yml
│   │   ├── bug_report.zh-CN.yml
│   │   ├── config.yml
│   │   ├── feature_request.yml
│   │   └── feature_request.zh-CN.yml
│   ├── dependabot.yml
│   ├── pull_request_template.md
│   └── workflows/
│       ├── node.js.yml
│       └── publish-to-pkg.pr.new.yml
├── .gitignore
├── .husky/
│   └── pre-commit
├── .npmrc
├── .nvmrc
├── .pnpmfile.cjs
├── .prettierignore
├── .prettierrc
├── CHANGELOG.en-US.md
├── CHANGELOG.zh-CN.md
├── CONTRIBUTING.md
├── CONTRIBUTING.zh-CN.md
├── LICENSE
├── README.md
├── README.zh-CN.md
├── babel.config.js
├── build/
│   ├── loaders/
│   │   ├── ComponentDemoTemplate.vue
│   │   ├── convert-md-to-doc.ts
│   │   ├── convert-vue-to-demo.ts
│   │   ├── md-renderer.ts
│   │   ├── naive-ui-demo-loader.ts
│   │   ├── naive-ui-doc-loader.ts
│   │   ├── project-path.ts
│   │   └── test/
│   │       ├── basic.test.md
│   │       ├── component.test.md
│   │       ├── test.md
│   │       ├── testDemoLoader.js
│   │       └── testMdLoader.js
│   ├── utils/
│   │   ├── get-demo-by-path.ts
│   │   ├── handle-merge-code.ts
│   │   ├── terse-cssr.ts
│   │   └── tsToJs.ts
│   ├── vite-plugin-css-render.ts
│   ├── vite-plugin-demo.ts
│   └── vite-plugin-index-tranform.ts
├── demo/
│   ├── Caveat.md
│   ├── Site.vue
│   ├── SiteHeader.vue
│   ├── SiteRoot.vue
│   ├── index.dev.js
│   ├── index.prod.js
│   ├── pages/
│   │   ├── Layout.vue
│   │   ├── docs/
│   │   │   ├── changelog/
│   │   │   │   ├── enUS/
│   │   │   │   │   └── index.vue
│   │   │   │   └── zhCN/
│   │   │   │       └── index.vue
│   │   │   ├── common-issues/
│   │   │   │   ├── enUS/
│   │   │   │   │   └── index.md
│   │   │   │   └── zhCN/
│   │   │   │       └── index.md
│   │   │   ├── community/
│   │   │   │   ├── enUS/
│   │   │   │   │   └── index.md
│   │   │   │   └── zhCN/
│   │   │   │       └── index.md
│   │   │   ├── controlled-uncontrolled/
│   │   │   │   ├── enUS/
│   │   │   │   │   └── index.md
│   │   │   │   └── zhCN/
│   │   │   │       └── index.md
│   │   │   ├── customize-theme/
│   │   │   │   ├── enUS/
│   │   │   │   │   └── index.md
│   │   │   │   └── zhCN/
│   │   │   │       └── index.md
│   │   │   ├── experimental-features/
│   │   │   │   ├── enUS/
│   │   │   │   │   └── index.md
│   │   │   │   └── zhCN/
│   │   │   │       └── index.md
│   │   │   ├── fonts/
│   │   │   │   ├── enUS/
│   │   │   │   │   └── index.md
│   │   │   │   └── zhCN/
│   │   │   │       └── index.md
│   │   │   ├── i18n/
│   │   │   │   ├── enUS/
│   │   │   │   │   └── index.md
│   │   │   │   └── zhCN/
│   │   │   │       └── index.md
│   │   │   ├── import-on-demand/
│   │   │   │   ├── enUS/
│   │   │   │   │   └── index.md
│   │   │   │   └── zhCN/
│   │   │   │       └── index.md
│   │   │   ├── installation/
│   │   │   │   ├── enUS/
│   │   │   │   │   └── index.md
│   │   │   │   └── zhCN/
│   │   │   │       └── index.md
│   │   │   ├── introduction/
│   │   │   │   ├── enUS/
│   │   │   │   │   └── index.md
│   │   │   │   └── zhCN/
│   │   │   │       └── index.md
│   │   │   ├── jsx/
│   │   │   │   ├── enUS/
│   │   │   │   │   └── index.md
│   │   │   │   └── zhCN/
│   │   │   │       └── index.md
│   │   │   ├── nuxtjs/
│   │   │   │   ├── enUS/
│   │   │   │   │   └── index.md
│   │   │   │   └── zhCN/
│   │   │   │       └── index.md
│   │   │   ├── ssr/
│   │   │   │   ├── enUS/
│   │   │   │   │   └── index.md
│   │   │   │   └── zhCN/
│   │   │   │       └── index.md
│   │   │   ├── style-conflict/
│   │   │   │   ├── enUS/
│   │   │   │   │   └── index.md
│   │   │   │   └── zhCN/
│   │   │   │       └── index.md
│   │   │   ├── supported-platforms/
│   │   │   │   ├── enUS/
│   │   │   │   │   └── index.md
│   │   │   │   └── zhCN/
│   │   │   │       └── index.md
│   │   │   ├── theme/
│   │   │   │   ├── enUS/
│   │   │   │   │   ├── element.demo.vue
│   │   │   │   │   ├── index.demo-entry.md
│   │   │   │   │   ├── provide-theme.demo.vue
│   │   │   │   │   └── use-theme-vars.demo.vue
│   │   │   │   └── zhCN/
│   │   │   │       ├── element.demo.vue
│   │   │   │       ├── index.demo-entry.md
│   │   │   │       ├── provide-theme.demo.vue
│   │   │   │       └── use-theme-vars.demo.vue
│   │   │   ├── umd/
│   │   │   │   ├── enUS/
│   │   │   │   │   └── index.md
│   │   │   │   └── zhCN/
│   │   │   │       └── index.md
│   │   │   ├── usage-sfc/
│   │   │   │   ├── enUS/
│   │   │   │   │   └── index.md
│   │   │   │   └── zhCN/
│   │   │   │       └── index.md
│   │   │   ├── vite-ssge/
│   │   │   │   ├── enUS/
│   │   │   │   │   └── index.md
│   │   │   │   └── zhCN/
│   │   │   │       └── index.md
│   │   │   ├── vitepress/
│   │   │   │   ├── enUS/
│   │   │   │   │   └── index.md
│   │   │   │   └── zhCN/
│   │   │   │       └── index.md
│   │   │   └── vue3/
│   │   │       ├── enUS/
│   │   │       │   └── index.vue
│   │   │       └── zhCN/
│   │   │           └── index.vue
│   │   └── home/
│   │       ├── Footer.vue
│   │       ├── Left.vue
│   │       ├── Right.vue
│   │       └── index.vue
│   ├── routes/
│   │   ├── router.js
│   │   └── routes.js
│   ├── setup.js
│   ├── store/
│   │   ├── hljs.js
│   │   ├── index.js
│   │   └── menu-options.js
│   ├── styles/
│   │   ├── Metropolis.css
│   │   └── demo.css
│   └── utils/
│       ├── ComponentDemo.vue
│       ├── ComponentDemos.tsx
│       ├── CopyCodeButton.vue
│       ├── EditInCodeSandboxButton.vue
│       ├── EditInPlaygroundButton.vue
│       ├── EditOnGithubButton.vue
│       ├── EditOnGithubHeader.vue
│       ├── codesandbox.js
│       ├── composables.js
│       ├── composables.ts
│       ├── github-url.js
│       ├── playground.js
│       └── route.js
├── design-notes/
│   ├── design-token-status.md
│   ├── how-to-name-a-style-var.md
│   ├── maintaining.md
│   ├── think.md
│   └── todo.md
├── eslint.config.mjs
├── esm-test/
│   └── index.spec.js
├── generic/
│   ├── AvatarGroup.vue
│   └── index.ts
├── index.html
├── package.json
├── playground/
│   ├── collect-vars.js
│   ├── ssr/
│   │   ├── app.js
│   │   ├── build.sh
│   │   ├── client.js
│   │   ├── pre-build.sh
│   │   ├── readme.md
│   │   ├── server.js
│   │   └── webpack.config.server.js
│   ├── testAsyncValidator.js
│   ├── testColor.js
│   └── uploadServer.js
├── postcss.config.js
├── rollup.config.mjs
├── scripts/
│   ├── gen-component-declaration.ts
│   ├── gen-css-vars-dts.ts
│   ├── gen-version.ts
│   ├── md-to-vue.ts
│   ├── post-build/
│   │   ├── complete-path.ts
│   │   ├── gen-web-types.ts
│   │   ├── index.ts
│   │   └── terse-cssr.ts
│   ├── post-build-site/
│   │   └── post-build-site.sh
│   ├── pre-build/
│   │   └── pre-cjs-build.ts
│   ├── pre-build-site/
│   │   └── pre-build-site.sh
│   ├── release-changelog.ts
│   └── utils/
│       ├── collect-vars.ts
│       ├── index.ts
│       ├── loader.ts
│       └── replace-define.ts
├── src/
│   ├── _internal/
│   │   ├── README.md
│   │   ├── clear/
│   │   │   ├── index.ts
│   │   │   └── src/
│   │   │       ├── Clear.tsx
│   │   │       └── styles/
│   │   │           └── index.cssr.ts
│   │   ├── close/
│   │   │   ├── index.ts
│   │   │   └── src/
│   │   │       ├── Close.tsx
│   │   │       └── styles/
│   │   │           └── index.cssr.ts
│   │   ├── fade-in-expand-transition/
│   │   │   ├── index.ts
│   │   │   └── src/
│   │   │       └── FadeInExpandTransition.ts
│   │   ├── focus-detector/
│   │   │   ├── index.tsx
│   │   │   └── src/
│   │   │       └── FocusDetector.tsx
│   │   ├── icon/
│   │   │   ├── index.ts
│   │   │   └── src/
│   │   │       ├── Icon.tsx
│   │   │       └── styles/
│   │   │           └── index.cssr.ts
│   │   ├── icon-switch-transition/
│   │   │   ├── index.ts
│   │   │   └── src/
│   │   │       └── IconSwitchTransition.tsx
│   │   ├── icons/
│   │   │   ├── Add.tsx
│   │   │   ├── ArrowBack.tsx
│   │   │   ├── ArrowDown.tsx
│   │   │   ├── ArrowUp.tsx
│   │   │   ├── Attach.tsx
│   │   │   ├── Backward.tsx
│   │   │   ├── Cancel.tsx
│   │   │   ├── Checkmark.tsx
│   │   │   ├── ChevronDown.tsx
│   │   │   ├── ChevronDownFilled.tsx
│   │   │   ├── ChevronLeft.tsx
│   │   │   ├── ChevronRight.tsx
│   │   │   ├── Clear.tsx
│   │   │   ├── Close.tsx
│   │   │   ├── Date.tsx
│   │   │   ├── Download.tsx
│   │   │   ├── Empty.tsx
│   │   │   ├── Error.tsx
│   │   │   ├── Eye.tsx
│   │   │   ├── EyeOff.tsx
│   │   │   ├── FastBackward.tsx
│   │   │   ├── FastForward.tsx
│   │   │   ├── File.tsx
│   │   │   ├── Filter.tsx
│   │   │   ├── Forward.tsx
│   │   │   ├── Info.tsx
│   │   │   ├── More.tsx
│   │   │   ├── Photo.tsx
│   │   │   ├── Remove.tsx
│   │   │   ├── ResizeSmall.tsx
│   │   │   ├── Retry.tsx
│   │   │   ├── RotateClockwise.tsx
│   │   │   ├── RotateCounterclockwise.tsx
│   │   │   ├── Search.tsx
│   │   │   ├── Success.tsx
│   │   │   ├── Switcher.tsx
│   │   │   ├── Time.tsx
│   │   │   ├── To.tsx
│   │   │   ├── Trash.tsx
│   │   │   ├── Warning.tsx
│   │   │   ├── ZoomIn.tsx
│   │   │   ├── ZoomOut.tsx
│   │   │   ├── index.ts
│   │   │   └── replaceable.tsx
│   │   ├── index.ts
│   │   ├── loading/
│   │   │   ├── index.ts
│   │   │   └── src/
│   │   │       ├── Loading.tsx
│   │   │       └── styles/
│   │   │           └── index.cssr.ts
│   │   ├── menu-mask/
│   │   │   ├── index.ts
│   │   │   └── src/
│   │   │       ├── MenuMask.tsx
│   │   │       ├── interface.ts
│   │   │       └── styles/
│   │   │           └── index.cssr.ts
│   │   ├── scrollbar/
│   │   │   ├── index.ts
│   │   │   ├── src/
│   │   │   │   ├── Scrollbar.tsx
│   │   │   │   └── styles/
│   │   │   │       ├── index.cssr.ts
│   │   │   │       └── rtl.cssr.ts
│   │   │   ├── styles/
│   │   │   │   ├── common.ts
│   │   │   │   ├── dark.ts
│   │   │   │   ├── index.ts
│   │   │   │   ├── light.ts
│   │   │   │   └── rtl.ts
│   │   │   └── tests/
│   │   │       ├── Scrollbar.spec.ts
│   │   │       └── server.spec.tsx
│   │   ├── select-menu/
│   │   │   ├── index.ts
│   │   │   ├── src/
│   │   │   │   ├── SelectGroupHeader.tsx
│   │   │   │   ├── SelectMenu.tsx
│   │   │   │   ├── SelectOption.tsx
│   │   │   │   ├── interface.ts
│   │   │   │   └── styles/
│   │   │   │       ├── index.cssr.ts
│   │   │   │       └── rtl.cssr.ts
│   │   │   └── styles/
│   │   │       ├── _common.ts
│   │   │       ├── dark.ts
│   │   │       ├── index.ts
│   │   │       ├── light.ts
│   │   │       └── rtl.ts
│   │   ├── selection/
│   │   │   ├── index.ts
│   │   │   ├── src/
│   │   │   │   ├── Selection.tsx
│   │   │   │   ├── interface.ts
│   │   │   │   └── styles/
│   │   │   │       ├── index.cssr.ts
│   │   │   │       └── rtl.cssr.ts
│   │   │   └── styles/
│   │   │       ├── _common.ts
│   │   │       ├── dark.ts
│   │   │       ├── index.ts
│   │   │       ├── light.ts
│   │   │       └── rtl.ts
│   │   ├── slot-machine/
│   │   │   ├── index.ts
│   │   │   └── src/
│   │   │       ├── SlotMachine.tsx
│   │   │       ├── SlotMachineNumber.tsx
│   │   │       └── styles/
│   │   │           └── index.cssr.ts
│   │   ├── suffix/
│   │   │   ├── index.ts
│   │   │   └── src/
│   │   │       └── Suffix.tsx
│   │   └── wave/
│   │       ├── index.ts
│   │       └── src/
│   │           ├── Wave.tsx
│   │           └── styles/
│   │               └── index.cssr.ts
│   ├── _mixins/
│   │   ├── common.ts
│   │   ├── index.ts
│   │   ├── use-config.ts
│   │   ├── use-css-vars-class.ts
│   │   ├── use-form-item.ts
│   │   ├── use-hljs.ts
│   │   ├── use-locale.ts
│   │   ├── use-rtl.ts
│   │   ├── use-style.ts
│   │   └── use-theme.ts
│   ├── _styles/
│   │   ├── common/
│   │   │   ├── _common.ts
│   │   │   ├── dark.ts
│   │   │   ├── index.ts
│   │   │   └── light.ts
│   │   ├── global/
│   │   │   └── index.cssr.ts
│   │   └── transitions/
│   │       ├── fade-down.cssr.ts
│   │       ├── fade-in-height-expand.cssr.ts
│   │       ├── fade-in-scale-up.cssr.ts
│   │       ├── fade-in-width-expand.cssr.ts
│   │       ├── fade-in.cssr.ts
│   │       ├── fade-up-width-expand.cssr.ts
│   │       ├── icon-switch.cssr.ts
│   │       ├── slide-in-from-bottom.ts
│   │       ├── slide-in-from-left.ts
│   │       ├── slide-in-from-right.ts
│   │       └── slide-in-from-top.ts
│   ├── _utils/
│   │   ├── color/
│   │   │   └── index.ts
│   │   ├── composable/
│   │   │   ├── index.ts
│   │   │   ├── use-adjusted-to.ts
│   │   │   ├── use-browser-location.ts
│   │   │   ├── use-collection.ts
│   │   │   ├── use-deferred-true.ts
│   │   │   ├── use-houdini.ts
│   │   │   ├── use-is-composing.ts
│   │   │   ├── use-lock-html-scroll.ts
│   │   │   ├── use-reactivated.ts
│   │   │   └── use-resize.ts
│   │   ├── css/
│   │   │   ├── color-to-class.ts
│   │   │   ├── format-length.ts
│   │   │   ├── index.ts
│   │   │   └── rtl-inset.ts
│   │   ├── cssr/
│   │   │   └── index.ts
│   │   ├── dom/
│   │   │   ├── download.ts
│   │   │   ├── index.ts
│   │   │   └── is-document.ts
│   │   ├── env/
│   │   │   ├── browser.ts
│   │   │   ├── is-browser.ts
│   │   │   ├── is-jsdom.ts
│   │   │   └── is-native-lazy-load.ts
│   │   ├── event/
│   │   │   └── index.ts
│   │   ├── index.ts
│   │   ├── naive/
│   │   │   ├── attribute.ts
│   │   │   ├── extract-public-props.ts
│   │   │   ├── index.ts
│   │   │   ├── mutable.ts
│   │   │   ├── prop.ts
│   │   │   ├── value.ts
│   │   │   └── warn.ts
│   │   ├── tests/
│   │   │   └── index.spec.ts
│   │   ├── ts/
│   │   │   └── ts.ts
│   │   └── vue/
│   │       ├── call.ts
│   │       ├── create-data-key.ts
│   │       ├── create-injection-key.ts
│   │       ├── create-ref-setter.ts
│   │       ├── flatten.ts
│   │       ├── get-first-slot-vnode.ts
│   │       ├── get-slot.ts
│   │       ├── get-v-node-children.ts
│   │       ├── index.ts
│   │       ├── is-node-v-show-false.ts
│   │       ├── keep.ts
│   │       ├── keysOf.ts
│   │       ├── merge-handlers.ts
│   │       ├── omit.ts
│   │       ├── render.ts
│   │       ├── resolve-slot.ts
│   │       └── wrapper.tsx
│   ├── affix/
│   │   ├── demos/
│   │   │   ├── enUS/
│   │   │   │   ├── basic.demo.vue
│   │   │   │   ├── index.demo-entry.md
│   │   │   │   └── position.demo.vue
│   │   │   └── zhCN/
│   │   │       ├── basic.demo.vue
│   │   │       ├── index.demo-entry.md
│   │   │       └── position.demo.vue
│   │   ├── index.ts
│   │   ├── src/
│   │   │   ├── Affix.tsx
│   │   │   ├── styles/
│   │   │   │   └── index.cssr.ts
│   │   │   └── utils.ts
│   │   └── tests/
│   │       ├── Affix.spec.ts
│   │       └── server.spec.tsx
│   ├── alert/
│   │   ├── demos/
│   │   │   ├── enUS/
│   │   │   │   ├── basic.demo.vue
│   │   │   │   ├── bordered.demo.vue
│   │   │   │   ├── closable.demo.vue
│   │   │   │   ├── icon.demo.vue
│   │   │   │   ├── index.demo-entry.md
│   │   │   │   ├── marquee.demo.vue
│   │   │   │   └── no-icon.demo.vue
│   │   │   └── zhCN/
│   │   │       ├── basic.demo.vue
│   │   │       ├── bordered.demo.vue
│   │   │       ├── closable.demo.vue
│   │   │       ├── empty-debug.demo.vue
│   │   │       ├── icon.demo.vue
│   │   │       ├── index.demo-entry.md
│   │   │       ├── marquee.demo.vue
│   │   │       ├── no-icon.demo.vue
│   │   │       └── rtl-debug.demo.vue
│   │   ├── index.ts
│   │   ├── src/
│   │   │   ├── Alert.tsx
│   │   │   └── styles/
│   │   │       ├── index.cssr.ts
│   │   │       └── rtl.cssr.ts
│   │   ├── styles/
│   │   │   ├── _common.ts
│   │   │   ├── dark.ts
│   │   │   ├── index.ts
│   │   │   ├── light.ts
│   │   │   └── rtl.ts
│   │   └── tests/
│   │       ├── Alert.spec.ts
│   │       ├── __snapshots__/
│   │       │   └── Alert.spec.ts.snap
│   │       └── server.spec.tsx
│   ├── anchor/
│   │   ├── demos/
│   │   │   ├── enUS/
│   │   │   │   ├── affix.demo.vue
│   │   │   │   ├── basic.demo.vue
│   │   │   │   ├── ignore-gap.demo.vue
│   │   │   │   ├── index.demo-entry.md
│   │   │   │   └── scrollto.demo.vue
│   │   │   └── zhCN/
│   │   │       ├── affix.demo.vue
│   │   │       ├── basic.demo.vue
│   │   │       ├── ignore-gap.demo.vue
│   │   │       ├── index.demo-entry.md
│   │   │       ├── max-height-debug.demo.vue
│   │   │       └── scrollto.demo.vue
│   │   ├── index.ts
│   │   ├── src/
│   │   │   ├── AnchorAdapter.tsx
│   │   │   ├── BaseAnchor.tsx
│   │   │   ├── Link.tsx
│   │   │   ├── public-types.tsx
│   │   │   ├── styles/
│   │   │   │   └── index.cssr.ts
│   │   │   └── utils.ts
│   │   ├── styles/
│   │   │   ├── _common.ts
│   │   │   ├── dark.ts
│   │   │   ├── index.ts
│   │   │   └── light.ts
│   │   └── tests/
│   │       ├── Anchor.spec.ts
│   │       └── server.spec.tsx
│   ├── auto-complete/
│   │   ├── demos/
│   │   │   ├── enUS/
│   │   │   │   ├── after-select.demo.vue
│   │   │   │   ├── append.demo.vue
│   │   │   │   ├── basic.demo.vue
│   │   │   │   ├── custom-input.demo.vue
│   │   │   │   ├── customized-rendering.demo.vue
│   │   │   │   ├── group.demo.vue
│   │   │   │   ├── index.demo-entry.md
│   │   │   │   ├── show-options-by-value.demo.vue
│   │   │   │   ├── size.demo.vue
│   │   │   │   └── status.demo.vue
│   │   │   └── zhCN/
│   │   │       ├── after-select.demo.vue
│   │   │       ├── append.demo.vue
│   │   │       ├── basic.demo.vue
│   │   │       ├── custom-input.demo.vue
│   │   │       ├── customized-rendering.demo.vue
│   │   │       ├── group.demo.vue
│   │   │       ├── index.demo-entry.md
│   │   │       ├── show-options-by-value.demo.vue
│   │   │       ├── size.demo.vue
│   │   │       └── status.demo.vue
│   │   ├── index.ts
│   │   ├── src/
│   │   │   ├── AutoComplete.tsx
│   │   │   ├── interface.ts
│   │   │   ├── public-types.ts
│   │   │   ├── styles/
│   │   │   │   └── index.cssr.ts
│   │   │   └── utils.ts
│   │   ├── styles/
│   │   │   ├── dark.ts
│   │   │   ├── index.ts
│   │   │   └── light.ts
│   │   └── tests/
│   │       ├── AutoComplete.spec.ts
│   │       ├── __snapshots__/
│   │       │   └── AutoComplete.spec.ts.snap
│   │       └── server.spec.tsx
│   ├── avatar/
│   │   ├── demos/
│   │   │   ├── enUS/
│   │   │   │   ├── badge.demo.vue
│   │   │   │   ├── color.demo.vue
│   │   │   │   ├── fallback.demo.vue
│   │   │   │   ├── group.demo.vue
│   │   │   │   ├── icon.demo.vue
│   │   │   │   ├── index.demo-entry.md
│   │   │   │   ├── lazy.demo.vue
│   │   │   │   ├── name-size.demo.vue
│   │   │   │   ├── shape.demo.vue
│   │   │   │   ├── size.demo.vue
│   │   │   │   └── v-show-debug.demo.vue
│   │   │   └── zhCN/
│   │   │       ├── badge.demo.vue
│   │   │       ├── color.demo.vue
│   │   │       ├── error-placeholder-debug.demo.vue
│   │   │       ├── fallback.demo.vue
│   │   │       ├── group.demo.vue
│   │   │       ├── icon.demo.vue
│   │   │       ├── index.demo-entry.md
│   │   │       ├── lazy.demo.vue
│   │   │       ├── name-size.demo.vue
│   │   │       ├── rtl-debug.demo.vue
│   │   │       ├── shape.demo.vue
│   │   │       ├── size.demo.vue
│   │   │       └── v-show-debug.demo.vue
│   │   ├── index.ts
│   │   ├── src/
│   │   │   ├── Avatar.tsx
│   │   │   ├── context.ts
│   │   │   ├── interface.ts
│   │   │   └── styles/
│   │   │       └── index.cssr.ts
│   │   ├── styles/
│   │   │   ├── dark.ts
│   │   │   ├── index.ts
│   │   │   └── light.ts
│   │   └── tests/
│   │       ├── Avatar.spec.tsx
│   │       ├── __snapshots__/
│   │       │   └── Avatar.spec.tsx.snap
│   │       └── server.spec.tsx
│   ├── avatar-group/
│   │   ├── index.ts
│   │   ├── src/
│   │   │   ├── AvatarGroup.tsx
│   │   │   ├── generic-public-types.ts
│   │   │   ├── public-types.ts
│   │   │   └── styles/
│   │   │       ├── avatar-group-rtl.cssr.ts
│   │   │       └── avatar-group.cssr.ts
│   │   ├── styles/
│   │   │   ├── dark.ts
│   │   │   ├── index.ts
│   │   │   ├── light.ts
│   │   │   └── rtl.ts
│   │   └── tests/
│   │       ├── Avatar.spec.tsx
│   │       └── server.spec.tsx
│   ├── back-top/
│   │   ├── demos/
│   │   │   ├── enUS/
│   │   │   │   ├── basic.demo.vue
│   │   │   │   ├── change-position.demo.vue
│   │   │   │   ├── index.demo-entry.md
│   │   │   │   ├── target-container-selector.demo.vue
│   │   │   │   └── visibility-height.demo.vue
│   │   │   └── zhCN/
│   │   │       ├── basic.demo.vue
│   │   │       ├── change-position.demo.vue
│   │   │       ├── index.demo-entry.md
│   │   │       ├── target-container-selector.demo.vue
│   │   │       └── visibility-height.demo.vue
│   │   ├── index.ts
│   │   ├── src/
│   │   │   ├── BackTop.tsx
│   │   │   ├── BackTopIcon.tsx
│   │   │   └── styles/
│   │   │       └── index.cssr.ts
│   │   ├── styles/
│   │   │   ├── _common.ts
│   │   │   ├── dark.ts
│   │   │   ├── index.ts
│   │   │   └── light.ts
│   │   └── tests/
│   │       ├── BackTop.spec.ts
│   │       └── server.spec.tsx
│   ├── badge/
│   │   ├── demos/
│   │   │   ├── enUS/
│   │   │   │   ├── basic.demo.vue
│   │   │   │   ├── color.demo.vue
│   │   │   │   ├── custom-content.demo.vue
│   │   │   │   ├── index.demo-entry.md
│   │   │   │   ├── manual.demo.vue
│   │   │   │   ├── offset.demo.vue
│   │   │   │   ├── overflow.demo.vue
│   │   │   │   ├── processing.demo.vue
│   │   │   │   ├── raw.demo.vue
│   │   │   │   ├── show-zero.demo.vue
│   │   │   │   └── type.demo.vue
│   │   │   └── zhCN/
│   │   │       ├── basic.demo.vue
│   │   │       ├── color.demo.vue
│   │   │       ├── custom-content.demo.vue
│   │   │       ├── index.demo-entry.md
│   │   │       ├── manual.demo.vue
│   │   │       ├── offset.demo.vue
│   │   │       ├── overflow.demo.vue
│   │   │       ├── processing.demo.vue
│   │   │       ├── raw.demo.vue
│   │   │       ├── rtl-debug.demo.vue
│   │   │       ├── show-zero.demo.vue
│   │   │       └── type.demo.vue
│   │   ├── index.ts
│   │   ├── src/
│   │   │   ├── Badge.tsx
│   │   │   └── styles/
│   │   │       ├── index.cssr.ts
│   │   │       └── rtl.cssr.ts
│   │   ├── styles/
│   │   │   ├── dark.ts
│   │   │   ├── index.ts
│   │   │   ├── light.ts
│   │   │   └── rtl.ts
│   │   └── tests/
│   │       ├── Badge.spec.ts
│   │       └── server.spec.tsx
│   ├── breadcrumb/
│   │   ├── demos/
│   │   │   ├── enUS/
│   │   │   │   ├── basic.demo.vue
│   │   │   │   ├── custom.demo.vue
│   │   │   │   ├── index.demo-entry.md
│   │   │   │   ├── separator-per-item.demo.vue
│   │   │   │   └── separator.demo.vue
│   │   │   └── zhCN/
│   │   │       ├── basic.demo.vue
│   │   │       ├── custom.demo.vue
│   │   │       ├── index.demo-entry.md
│   │   │       ├── separator-per-item.demo.vue
│   │   │       └── separator.demo.vue
│   │   ├── index.ts
│   │   ├── src/
│   │   │   ├── Breadcrumb.tsx
│   │   │   ├── BreadcrumbItem.tsx
│   │   │   └── styles/
│   │   │       └── index.cssr.ts
│   │   ├── styles/
│   │   │   ├── _common.ts
│   │   │   ├── dark.ts
│   │   │   ├── index.ts
│   │   │   └── light.ts
│   │   └── tests/
│   │       ├── Breadcrumb.spec.ts
│   │       └── server.spec.tsx
│   ├── button/
│   │   ├── demos/
│   │   │   ├── enUS/
│   │   │   │   ├── basic.demo.vue
│   │   │   │   ├── color.demo.vue
│   │   │   │   ├── dashed.demo.vue
│   │   │   │   ├── disabled.demo.vue
│   │   │   │   ├── events.demo.vue
│   │   │   │   ├── ghost.demo.vue
│   │   │   │   ├── group.demo.vue
│   │   │   │   ├── icon-button.demo.vue
│   │   │   │   ├── icon.demo.vue
│   │   │   │   ├── index.demo-entry.md
│   │   │   │   ├── loading.demo.vue
│   │   │   │   ├── popover.demo.vue
│   │   │   │   ├── quaternary.demo.vue
│   │   │   │   ├── secondary.demo.vue
│   │   │   │   ├── shape.demo.vue
│   │   │   │   ├── size.demo.vue
│   │   │   │   ├── tag.demo.vue
│   │   │   │   ├── tertiary.demo.vue
│   │   │   │   └── text.demo.vue
│   │   │   └── zhCN/
│   │   │       ├── basic.demo.vue
│   │   │       ├── color.demo.vue
│   │   │       ├── dashed.demo.vue
│   │   │       ├── debug.demo.vue
│   │   │       ├── disabled.demo.vue
│   │   │       ├── events.demo.vue
│   │   │       ├── ghost.demo.vue
│   │   │       ├── group.demo.vue
│   │   │       ├── icon-button.demo.vue
│   │   │       ├── icon.demo.vue
│   │   │       ├── index.demo-entry.md
│   │   │       ├── loading.demo.vue
│   │   │       ├── popover.demo.vue
│   │   │       ├── quaternary.demo.vue
│   │   │       ├── rtl-debug.demo.vue
│   │   │       ├── secondary.demo.vue
│   │   │       ├── shape.demo.vue
│   │   │       ├── size.demo.vue
│   │   │       ├── tag.demo.vue
│   │   │       ├── tertiary.demo.vue
│   │   │       └── text.demo.vue
│   │   ├── index.ts
│   │   ├── src/
│   │   │   ├── Button.tsx
│   │   │   ├── public-types.ts
│   │   │   └── styles/
│   │   │       ├── index.cssr.ts
│   │   │       └── rtl.cssr.ts
│   │   ├── styles/
│   │   │   ├── _common.ts
│   │   │   ├── dark.ts
│   │   │   ├── index.ts
│   │   │   ├── light.ts
│   │   │   └── rtl.ts
│   │   └── tests/
│   │       ├── Button.spec.tsx
│   │       ├── __snapshots__/
│   │       │   └── Button.spec.tsx.snap
│   │       └── server.spec.tsx
│   ├── button-group/
│   │   ├── index.ts
│   │   ├── src/
│   │   │   ├── ButtonGroup.tsx
│   │   │   ├── context.ts
│   │   │   └── styles/
│   │   │       ├── index.cssr.ts
│   │   │       └── rtl.cssr.ts
│   │   ├── styles/
│   │   │   ├── dark.ts
│   │   │   ├── index.ts
│   │   │   ├── light.ts
│   │   │   └── rtl.ts
│   │   └── tests/
│   │       ├── ButtonGroup.spec.tsx
│   │       └── server.spec.tsx
│   ├── calendar/
│   │   ├── demos/
│   │   │   ├── enUS/
│   │   │   │   ├── basic.demo.vue
│   │   │   │   └── index.demo-entry.md
│   │   │   └── zhCN/
│   │   │       ├── basic.demo.vue
│   │   │       └── index.demo-entry.md
│   │   ├── index.ts
│   │   ├── src/
│   │   │   ├── Calendar.tsx
│   │   │   ├── interface.ts
│   │   │   └── styles/
│   │   │       └── index.cssr.ts
│   │   ├── styles/
│   │   │   ├── _common.ts
│   │   │   ├── dark.ts
│   │   │   ├── index.ts
│   │   │   └── light.ts
│   │   └── tests/
│   │       ├── Calendar.spec.tsx
│   │       └── server.spec.tsx
│   ├── card/
│   │   ├── demos/
│   │   │   ├── enUS/
│   │   │   │   ├── basic.demo.vue
│   │   │   │   ├── border.demo.vue
│   │   │   │   ├── closable.demo.vue
│   │   │   │   ├── content-scrollable.demo.vue
│   │   │   │   ├── cover.demo.vue
│   │   │   │   ├── custom-style.demo.vue
│   │   │   │   ├── embedded.demo.vue
│   │   │   │   ├── hoverable.demo.vue
│   │   │   │   ├── index.demo-entry.md
│   │   │   │   ├── loading.demo.vue
│   │   │   │   ├── no-title.demo.vue
│   │   │   │   ├── segment.demo.vue
│   │   │   │   ├── size.demo.vue
│   │   │   │   └── slots.demo.vue
│   │   │   └── zhCN/
│   │   │       ├── basic.demo.vue
│   │   │       ├── border.demo.vue
│   │   │       ├── closable.demo.vue
│   │   │       ├── content-scrollable.demo.vue
│   │   │       ├── cover.demo.vue
│   │   │       ├── custom-style.demo.vue
│   │   │       ├── embedded-debug.demo.vue
│   │   │       ├── embedded.demo.vue
│   │   │       ├── hoverable.demo.vue
│   │   │       ├── index.demo-entry.md
│   │   │       ├── loading.demo.vue
│   │   │       ├── no-title.demo.vue
│   │   │       ├── rtl-debug.demo.vue
│   │   │       ├── segment.demo.vue
│   │   │       ├── size.demo.vue
│   │   │       └── slots.demo.vue
│   │   ├── index.ts
│   │   ├── src/
│   │   │   ├── Card.tsx
│   │   │   ├── public-types.ts
│   │   │   └── styles/
│   │   │       ├── index.cssr.ts
│   │   │       └── rtl.cssr.ts
│   │   ├── styles/
│   │   │   ├── _common.ts
│   │   │   ├── dark.ts
│   │   │   ├── index.ts
│   │   │   ├── light.ts
│   │   │   └── rtl.ts
│   │   └── tests/
│   │       ├── Card.spec.ts
│   │       ├── __snapshots__/
│   │       │   └── Card.spec.ts.snap
│   │       └── server.spec.tsx
│   ├── carousel/
│   │   ├── demos/
│   │   │   ├── enUS/
│   │   │   │   ├── arrow.demo.vue
│   │   │   │   ├── autoplay.demo.vue
│   │   │   │   ├── basic.demo.vue
│   │   │   │   ├── centered.demo.vue
│   │   │   │   ├── custom-arrow-and-dots.demo.vue
│   │   │   │   ├── custom-card.demo.vue
│   │   │   │   ├── custom-dots.demo.vue
│   │   │   │   ├── dots.demo.vue
│   │   │   │   ├── effect.demo.vue
│   │   │   │   ├── hover.demo.vue
│   │   │   │   ├── index.demo-entry.md
│   │   │   │   ├── keyboard.demo.vue
│   │   │   │   ├── mousewheel.demo.vue
│   │   │   │   ├── simulate-drag.demo.vue
│   │   │   │   ├── slides-per-view-auto.demo.vue
│   │   │   │   ├── slides-per-view.demo.vue
│   │   │   │   ├── space-between.demo.vue
│   │   │   │   ├── transition-name.demo.vue
│   │   │   │   └── vertical.demo.vue
│   │   │   └── zhCN/
│   │   │       ├── arrow.demo.vue
│   │   │       ├── autoplay.demo.vue
│   │   │       ├── basic.demo.vue
│   │   │       ├── centered.demo.vue
│   │   │       ├── custom-arrow-and-dots.demo.vue
│   │   │       ├── custom-card.demo.vue
│   │   │       ├── custom-dots.demo.vue
│   │   │       ├── dots.demo.vue
│   │   │       ├── effect.demo.vue
│   │   │       ├── hover.demo.vue
│   │   │       ├── index.demo-entry.md
│   │   │       ├── keyboard.demo.vue
│   │   │       ├── mousewheel.demo.vue
│   │   │       ├── simulate-drag.demo.vue
│   │   │       ├── slides-per-view-auto.demo.vue
│   │   │       ├── slides-per-view.demo.vue
│   │   │       ├── space-between.demo.vue
│   │   │       ├── transition-name.demo.vue
│   │   │       └── vertical.demo.vue
│   │   ├── index.ts
│   │   ├── src/
│   │   │   ├── Carousel.tsx
│   │   │   ├── CarouselArrow.tsx
│   │   │   ├── CarouselContext.ts
│   │   │   ├── CarouselDots.tsx
│   │   │   ├── CarouselItem.tsx
│   │   │   ├── interface.ts
│   │   │   ├── styles/
│   │   │   │   └── index.cssr.ts
│   │   │   └── utils/
│   │   │       ├── duplicatedLogic.ts
│   │   │       ├── event.ts
│   │   │       └── index.ts
│   │   ├── styles/
│   │   │   ├── dark.ts
│   │   │   ├── index.ts
│   │   │   └── light.ts
│   │   └── tests/
│   │       ├── Carousel.spec.tsx
│   │       └── server.spec.tsx
│   ├── cascader/
│   │   ├── demos/
│   │   │   ├── enUS/
│   │   │   │   ├── action.demo.vue
│   │   │   │   ├── check-strategy.demo.vue
│   │   │   │   ├── custom-field.demo.vue
│   │   │   │   ├── custom-render.demo.vue
│   │   │   │   ├── focus.demo.vue
│   │   │   │   ├── index.demo-entry.md
│   │   │   │   ├── multiple-lazy.demo.vue
│   │   │   │   ├── multiple.demo.vue
│   │   │   │   ├── single-lazy.demo.vue
│   │   │   │   ├── single.demo.vue
│   │   │   │   ├── size.demo.vue
│   │   │   │   ├── status.demo.vue
│   │   │   │   └── virtual.demo.vue
│   │   │   └── zhCN/
│   │   │       ├── action.demo.vue
│   │   │       ├── check-strategy.demo.vue
│   │   │       ├── custom-field.demo.vue
│   │   │       ├── custom-render.demo.vue
│   │   │       ├── default-value-debug.demo.vue
│   │   │       ├── focus.demo.vue
│   │   │       ├── index.demo-entry.md
│   │   │       ├── multiple-lazy.demo.vue
│   │   │       ├── multiple.demo.vue
│   │   │       ├── single-lazy.demo.vue
│   │   │       ├── single.demo.vue
│   │   │       ├── size.demo.vue
│   │   │       ├── status.demo.vue
│   │   │       └── virtual.demo.vue
│   │   ├── index.ts
│   │   ├── src/
│   │   │   ├── Cascader.tsx
│   │   │   ├── CascaderMenu.tsx
│   │   │   ├── CascaderOption.tsx
│   │   │   ├── CascaderSelectMenu.tsx
│   │   │   ├── CascaderSubmenu.tsx
│   │   │   ├── interface.ts
│   │   │   ├── public-types.ts
│   │   │   ├── styles/
│   │   │   │   └── index.cssr.ts
│   │   │   └── utils.ts
│   │   ├── styles/
│   │   │   ├── dark.ts
│   │   │   ├── index.ts
│   │   │   └── light.ts
│   │   └── tests/
│   │       ├── Cascader.spec.ts
│   │       ├── __snapshots__/
│   │       │   └── Cascader.spec.ts.snap
│   │       └── server.spec.tsx
│   ├── checkbox/
│   │   ├── demos/
│   │   │   ├── enUS/
│   │   │   │   ├── basic.demo.vue
│   │   │   │   ├── controlled.demo.vue
│   │   │   │   ├── customize-value.demo.vue
│   │   │   │   ├── event.demo.vue
│   │   │   │   ├── focus.demo.vue
│   │   │   │   ├── grid.demo.vue
│   │   │   │   ├── group.demo.vue
│   │   │   │   ├── indeterminate.demo.vue
│   │   │   │   ├── index.demo-entry.md
│   │   │   │   └── size.demo.vue
│   │   │   └── zhCN/
│   │   │       ├── basic.demo.vue
│   │   │       ├── controlled.demo.vue
│   │   │       ├── customize-value.demo.vue
│   │   │       ├── event.demo.vue
│   │   │       ├── focus.demo.vue
│   │   │       ├── grid.demo.vue
│   │   │       ├── group.demo.vue
│   │   │       ├── indeterminate.demo.vue
│   │   │       ├── index.demo-entry.md
│   │   │       ├── rtl-debug.demo.vue
│   │   │       └── size.demo.vue
│   │   ├── index.ts
│   │   ├── src/
│   │   │   ├── CheckMark.tsx
│   │   │   ├── Checkbox.tsx
│   │   │   ├── CheckboxGroup.tsx
│   │   │   ├── LineMark.tsx
│   │   │   ├── interface.ts
│   │   │   ├── public-types.ts
│   │   │   └── styles/
│   │   │       ├── index.cssr.ts
│   │   │       └── rtl.cssr.ts
│   │   ├── styles/
│   │   │   ├── _common.ts
│   │   │   ├── dark.ts
│   │   │   ├── index.ts
│   │   │   ├── light.ts
│   │   │   └── rtl.ts
│   │   └── tests/
│   │       ├── Checkbox.spec.tsx
│   │       ├── __snapshots__/
│   │       │   └── Checkbox.spec.tsx.snap
│   │       └── server.spec.tsx
│   ├── code/
│   │   ├── demos/
│   │   │   ├── enUS/
│   │   │   │   ├── basic.demo.vue
│   │   │   │   ├── index.demo-entry.md
│   │   │   │   ├── inline.demo.vue
│   │   │   │   ├── line-numbers.demo.vue
│   │   │   │   └── softwrap.demo.vue
│   │   │   └── zhCN/
│   │   │       ├── basic.demo.vue
│   │   │       ├── index.demo-entry.md
│   │   │       ├── inline.demo.vue
│   │   │       ├── line-numbers.demo.vue
│   │   │       ├── loop-debug.demo.vue
│   │   │       └── softwrap.demo.vue
│   │   ├── index.ts
│   │   ├── src/
│   │   │   ├── Code.tsx
│   │   │   └── styles/
│   │   │       └── index.cssr.ts
│   │   ├── styles/
│   │   │   ├── dark.ts
│   │   │   ├── index.ts
│   │   │   └── light.ts
│   │   └── tests/
│   │       ├── Code.spec.tsx
│   │       └── server.spec.tsx
│   ├── collapse/
│   │   ├── demos/
│   │   │   ├── enUS/
│   │   │   │   ├── accordion.demo.vue
│   │   │   │   ├── arrow-placement.demo.vue
│   │   │   │   ├── basic.demo.vue
│   │   │   │   ├── customize-icon.demo.vue
│   │   │   │   ├── default-expanded.demo.vue
│   │   │   │   ├── disabled.demo.vue
│   │   │   │   ├── display-directive.demo.vue
│   │   │   │   ├── header-extra.demo.vue
│   │   │   │   ├── index.demo-entry.md
│   │   │   │   ├── item-header-click.demo.vue
│   │   │   │   ├── nested.demo.vue
│   │   │   │   └── trigger-areas.demo.vue
│   │   │   └── zhCN/
│   │   │       ├── accordion.demo.vue
│   │   │       ├── arrow-placement.demo.vue
│   │   │       ├── basic.demo.vue
│   │   │       ├── customize-icon.demo.vue
│   │   │       ├── default-expanded.demo.vue
│   │   │       ├── disabled.demo.vue
│   │   │       ├── display-directive.demo.vue
│   │   │       ├── header-extra.demo.vue
│   │   │       ├── index.demo-entry.md
│   │   │       ├── item-header-click.demo.vue
│   │   │       ├── nested.demo.vue
│   │   │       ├── rtl-debug.demo.vue
│   │   │       └── trigger-areas.demo.vue
│   │   ├── index.ts
│   │   ├── src/
│   │   │   ├── Collapse.tsx
│   │   │   ├── CollapseItem.tsx
│   │   │   ├── CollapseItemContent.tsx
│   │   │   ├── interface.ts
│   │   │   └── styles/
│   │   │       ├── index.cssr.ts
│   │   │       └── rtl.cssr.ts
│   │   ├── styles/
│   │   │   ├── dark.ts
│   │   │   ├── index.ts
│   │   │   ├── light.ts
│   │   │   └── rtl.ts
│   │   └── tests/
│   │       ├── Collapse.spec.tsx
│   │       └── server.spec.tsx
│   ├── collapse-transition/
│   │   ├── demos/
│   │   │   ├── enUS/
│   │   │   │   ├── basic.demo.vue
│   │   │   │   └── index.demo-entry.md
│   │   │   └── zhCN/
│   │   │       ├── basic.demo.vue
│   │   │       ├── index.demo-entry.md
│   │   │       └── rtl-debug.demo.vue
│   │   ├── index.ts
│   │   ├── src/
│   │   │   ├── CollapseTransition.tsx
│   │   │   └── styles/
│   │   │       ├── index.cssr.ts
│   │   │       └── rtl.cssr.ts
│   │   ├── styles/
│   │   │   ├── dark.ts
│   │   │   ├── index.ts
│   │   │   ├── light.ts
│   │   │   └── rtl.ts
│   │   └── tests/
│   │       ├── CollapseTransition.spec.tsx
│   │       └── server.spec.tsx
│   ├── color-picker/
│   │   ├── demos/
│   │   │   ├── enUS/
│   │   │   │   ├── actions.demo.vue
│   │   │   │   ├── alpha.demo.vue
│   │   │   │   ├── basic.demo.vue
│   │   │   │   ├── disabled.demo.vue
│   │   │   │   ├── form.demo.vue
│   │   │   │   ├── index.demo-entry.md
│   │   │   │   ├── modes.demo.vue
│   │   │   │   ├── native.demo.vue
│   │   │   │   ├── size.demo.vue
│   │   │   │   ├── swatches.demo.vue
│   │   │   │   └── trigger.demo.vue
│   │   │   └── zhCN/
│   │   │       ├── actions.demo.vue
│   │   │       ├── alpha.demo.vue
│   │   │       ├── basic.demo.vue
│   │   │       ├── close-debug.demo.vue
│   │   │       ├── disabled.demo.vue
│   │   │       ├── form.demo.vue
│   │   │       ├── index.demo-entry.md
│   │   │       ├── modes.demo.vue
│   │   │       ├── native.demo.vue
│   │   │       ├── size.demo.vue
│   │   │       ├── swatches.demo.vue
│   │   │       └── trigger.demo.vue
│   │   ├── index.ts
│   │   ├── src/
│   │   │   ├── AlphaSlider.tsx
│   │   │   ├── ColorInput.tsx
│   │   │   ├── ColorInputUnit.tsx
│   │   │   ├── ColorPicker.tsx
│   │   │   ├── ColorPickerSwatches.tsx
│   │   │   ├── ColorPickerTrigger.tsx
│   │   │   ├── ColorPreview.tsx
│   │   │   ├── HueSlider.tsx
│   │   │   ├── Pallete.tsx
│   │   │   ├── context.ts
│   │   │   ├── interface.ts
│   │   │   ├── public-types.ts
│   │   │   ├── styles/
│   │   │   │   └── index.cssr.ts
│   │   │   └── utils.ts
│   │   ├── styles/
│   │   │   ├── dark.ts
│   │   │   ├── index.ts
│   │   │   └── light.ts
│   │   └── tests/
│   │       ├── ColorPicker.spec.tsx
│   │       └── server.spec.tsx
│   ├── components.ts
│   ├── composables/
│   │   ├── index.ts
│   │   └── use-theme-vars.ts
│   ├── config-consumer/
│   │   └── demos/
│   │       ├── enUS/
│   │       │   └── index.demo-entry.md
│   │       └── zhCN/
│   │           └── index.demo-entry.md
│   ├── config-provider/
│   │   ├── demos/
│   │   │   ├── enUS/
│   │   │   │   ├── index.demo-entry.md
│   │   │   │   ├── inherit-theme.demo.vue
│   │   │   │   ├── inline-theme-disabled.demo.vue
│   │   │   │   ├── language.demo.vue
│   │   │   │   ├── namespace.demo.vue
│   │   │   │   ├── os-theme.demo.vue
│   │   │   │   ├── size.demo.vue
│   │   │   │   ├── theme.demo.vue
│   │   │   │   └── transparent.demo.vue
│   │   │   └── zhCN/
│   │   │       ├── index.demo-entry.md
│   │   │       ├── inherit-theme.demo.vue
│   │   │       ├── inline-theme-disabled.demo.vue
│   │   │       ├── language.demo.vue
│   │   │       ├── namespace.demo.vue
│   │   │       ├── os-theme.demo.vue
│   │   │       ├── overrides-inherit-debug.demo.vue
│   │   │       ├── size.demo.vue
│   │   │       ├── theme.demo.vue
│   │   │       └── transparent.demo.vue
│   │   ├── index.ts
│   │   ├── src/
│   │   │   ├── ConfigProvider.ts
│   │   │   ├── config.ts
│   │   │   ├── context.ts
│   │   │   ├── interface.ts
│   │   │   ├── internal-interface.ts
│   │   │   └── katex.ts
│   │   └── tests/
│   │       ├── ComponentSize.spec.tsx
│   │       ├── ConfigProvider.spec.ts
│   │       └── server.spec.tsx
│   ├── countdown/
│   │   ├── demos/
│   │   │   ├── enUS/
│   │   │   │   ├── basic.demo.vue
│   │   │   │   ├── index.demo-entry.md
│   │   │   │   ├── precision.demo.vue
│   │   │   │   ├── render.demo.vue
│   │   │   │   └── reset.demo.vue
│   │   │   └── zhCN/
│   │   │       ├── basic.demo.vue
│   │   │       ├── finish-debug.demo.vue
│   │   │       ├── index.demo-entry.md
│   │   │       ├── precision.demo.vue
│   │   │       ├── render.demo.vue
│   │   │       └── reset.demo.vue
│   │   ├── index.ts
│   │   ├── src/
│   │   │   └── Countdown.tsx
│   │   └── tests/
│   │       ├── Countdown.spec.ts
│   │       └── server.spec.tsx
│   ├── create.ts
│   ├── data-table/
│   │   ├── demos/
│   │   │   ├── enUS/
│   │   │   │   ├── ajax-usage.demo.vue
│   │   │   │   ├── async-expand.demo.vue
│   │   │   │   ├── basic.demo.vue
│   │   │   │   ├── border.demo.vue
│   │   │   │   ├── column-draggable.demo.vue
│   │   │   │   ├── context-menu.demo.vue
│   │   │   │   ├── controlled-filter.demo.vue
│   │   │   │   ├── controlled-multiple-sorter.demo.vue
│   │   │   │   ├── controlled-page.demo.vue
│   │   │   │   ├── controlled-sorter.demo.vue
│   │   │   │   ├── custom-filter-menu.demo.vue
│   │   │   │   ├── custom-select.demo.vue
│   │   │   │   ├── custom-sorter.demo.vue
│   │   │   │   ├── custom-style.demo.vue
│   │   │   │   ├── ellipsis-tooltip.demo.vue
│   │   │   │   ├── ellipsis.demo.vue
│   │   │   │   ├── empty.demo.vue
│   │   │   │   ├── expand.demo.vue
│   │   │   │   ├── export-csv.demo.vue
│   │   │   │   ├── filter-and-sorter.demo.vue
│   │   │   │   ├── fixed-header-column.demo.vue
│   │   │   │   ├── fixed-header.demo.vue
│   │   │   │   ├── flex-height.demo.vue
│   │   │   │   ├── group-header.demo.vue
│   │   │   │   ├── index.demo-entry.md
│   │   │   │   ├── merge-cell.demo.vue
│   │   │   │   ├── multiple-sorter.demo.vue
│   │   │   │   ├── pagination-behavior-on-filter.demo.vue
│   │   │   │   ├── render-cell.demo.vue
│   │   │   │   ├── render-header.demo.vue
│   │   │   │   ├── row-props.demo.vue
│   │   │   │   ├── select-single.demo.vue
│   │   │   │   ├── select.demo.vue
│   │   │   │   ├── simple-editable.demo.vue
│   │   │   │   ├── size.demo.vue
│   │   │   │   ├── striped.demo.vue
│   │   │   │   ├── summary.demo.vue
│   │   │   │   ├── switchable-editable.demo.vue
│   │   │   │   ├── tree.demo.vue
│   │   │   │   ├── virtual-x.demo.vue
│   │   │   │   └── virtual.demo.vue
│   │   │   └── zhCN/
│   │   │       ├── ajax-usage.demo.vue
│   │   │       ├── async-expand.demo.vue
│   │   │       ├── basic.demo.vue
│   │   │       ├── border.demo.vue
│   │   │       ├── column-draggable.demo.vue
│   │   │       ├── context-menu.demo.vue
│   │   │       ├── controlled-filter.demo.vue
│   │   │       ├── controlled-multiple-sorter.demo.vue
│   │   │       ├── controlled-page.demo.vue
│   │   │       ├── controlled-sorter.demo.vue
│   │   │       ├── custom-expand-icon-debug.demo.vue
│   │   │       ├── custom-filter-menu.demo.vue
│   │   │       ├── custom-select.demo.vue
│   │   │       ├── custom-sorter.demo.vue
│   │   │       ├── custom-style.demo.vue
│   │   │       ├── debug.demo.vue
│   │   │       ├── ellipsis-debug.demo.vue
│   │   │       ├── ellipsis-tooltip.demo.vue
│   │   │       ├── ellipsis.demo.vue
│   │   │       ├── empty-scroll-debug.demo.vue
│   │   │       ├── empty.demo.vue
│   │   │       ├── expand.demo.vue
│   │   │       ├── expandable-debug.demo.vue
│   │   │       ├── export-csv.demo.vue
│   │   │       ├── filter-and-sorter.demo.vue
│   │   │       ├── fixed-column-debug.demo.vue
│   │   │       ├── fixed-column2-debug.demo.vue
│   │   │       ├── fixed-header-column.demo.vue
│   │   │       ├── fixed-header.demo.vue
│   │   │       ├── flex-height.demo.vue
│   │   │       ├── group-header.demo.vue
│   │   │       ├── height-debug.demo.vue
│   │   │       ├── index.demo-entry.md
│   │   │       ├── keep-alive-debug.demo.vue
│   │   │       ├── merge-cell.demo.vue
│   │   │       ├── multiple-sorter.demo.vue
│   │   │       ├── pagination-behavior-on-filter.demo.vue
│   │   │       ├── render-cell.demo.vue
│   │   │       ├── render-header.demo.vue
│   │   │       ├── row-props.demo.vue
│   │   │       ├── rtl-debug.demo.vue
│   │   │       ├── scroll-debug.demo.vue
│   │   │       ├── select-single.demo.vue
│   │   │       ├── select.demo.vue
│   │   │       ├── simple-editable.demo.vue
│   │   │       ├── size.demo.vue
│   │   │       ├── striped.demo.vue
│   │   │       ├── summary-debug.demo.vue
│   │   │       ├── summary.demo.vue
│   │   │       ├── switchable-editable.demo.vue
│   │   │       ├── tree.demo.vue
│   │   │       ├── virtual-x.demo.vue
│   │   │       └── virtual.demo.vue
│   │   ├── index.ts
│   │   ├── src/
│   │   │   ├── DataTable.tsx
│   │   │   ├── HeaderButton/
│   │   │   │   ├── FilterButton.tsx
│   │   │   │   ├── FilterMenu.tsx
│   │   │   │   ├── RenderFilter.ts
│   │   │   │   ├── RenderSorter.ts
│   │   │   │   ├── ResizeButton.tsx
│   │   │   │   └── SortButton.tsx
│   │   │   ├── MainTable.tsx
│   │   │   ├── TableParts/
│   │   │   │   ├── Body.tsx
│   │   │   │   ├── BodyCheckbox.tsx
│   │   │   │   ├── BodyRadio.tsx
│   │   │   │   ├── Cell.tsx
│   │   │   │   ├── ExpandTrigger.tsx
│   │   │   │   ├── Header.tsx
│   │   │   │   └── SelectionMenu.tsx
│   │   │   ├── interface.ts
│   │   │   ├── public-types.ts
│   │   │   ├── styles/
│   │   │   │   ├── index.cssr.ts
│   │   │   │   └── rtl.cssr.ts
│   │   │   ├── use-check.ts
│   │   │   ├── use-expand.ts
│   │   │   ├── use-group-header.ts
│   │   │   ├── use-resizable.ts
│   │   │   ├── use-scroll.ts
│   │   │   ├── use-sorter.ts
│   │   │   ├── use-table-data.ts
│   │   │   └── utils.ts
│   │   ├── styles/
│   │   │   ├── _common.ts
│   │   │   ├── dark.ts
│   │   │   ├── index.ts
│   │   │   ├── light.ts
│   │   │   └── rtl.ts
│   │   └── tests/
│   │       ├── DataTable.spec.tsx
│   │       ├── __snapshots__/
│   │       │   └── DataTable.spec.tsx.snap
│   │       └── server.spec.tsx
│   ├── date-picker/
│   │   ├── demos/
│   │   │   ├── enUS/
│   │   │   │   ├── actions.demo.vue
│   │   │   │   ├── close-panel-on-select.demo.vue
│   │   │   │   ├── date.demo.vue
│   │   │   │   ├── daterange.demo.vue
│   │   │   │   ├── datetime.demo.vue
│   │   │   │   ├── datetimeformat.demo.vue
│   │   │   │   ├── datetimerange.demo.vue
│   │   │   │   ├── default-time.demo.vue
│   │   │   │   ├── disabled-time.demo.vue
│   │   │   │   ├── disabled.demo.vue
│   │   │   │   ├── events.demo.vue
│   │   │   │   ├── focus.demo.vue
│   │   │   │   ├── footerslot.demo.vue
│   │   │   │   ├── format.demo.vue
│   │   │   │   ├── icon.demo.vue
│   │   │   │   ├── index.demo-entry.md
│   │   │   │   ├── month.demo.vue
│   │   │   │   ├── monthrange.demo.vue
│   │   │   │   ├── panel.demo.vue
│   │   │   │   ├── quarter.demo.vue
│   │   │   │   ├── quarterrange.demo.vue
│   │   │   │   ├── shortcuts.demo.vue
│   │   │   │   ├── size.demo.vue
│   │   │   │   ├── status.demo.vue
│   │   │   │   ├── update-on-close.demo.vue
│   │   │   │   ├── week.demo.vue
│   │   │   │   ├── year.demo.vue
│   │   │   │   └── yearrange.demo.vue
│   │   │   └── zhCN/
│   │   │       ├── actions.demo.vue
│   │   │       ├── close-panel-on-select.demo.vue
│   │   │       ├── date.demo.vue
│   │   │       ├── daterange.demo.vue
│   │   │       ├── datetime.demo.vue
│   │   │       ├── datetimeformat.demo.vue
│   │   │       ├── datetimerange.demo.vue
│   │   │       ├── default-time.demo.vue
│   │   │       ├── disabled-time.demo.vue
│   │   │       ├── disabled.demo.vue
│   │   │       ├── events.demo.vue
│   │   │       ├── focus.demo.vue
│   │   │       ├── footerslot.demo.vue
│   │   │       ├── form-debug.demo.vue
│   │   │       ├── format.demo.vue
│   │   │       ├── icon.demo.vue
│   │   │       ├── index.demo-entry.md
│   │   │       ├── month.demo.vue
│   │   │       ├── monthrange.demo.vue
│   │   │       ├── panel-debug.demo.vue
│   │   │       ├── panel.demo.vue
│   │   │       ├── quarter.demo.vue
│   │   │       ├── quarterrange.demo.vue
│   │   │       ├── shortcuts.demo.vue
│   │   │       ├── size.demo.vue
│   │   │       ├── status.demo.vue
│   │   │       ├── update-on-close.demo.vue
│   │   │       ├── week.demo.vue
│   │   │       ├── year.demo.vue
│   │   │       └── yearrange.demo.vue
│   │   ├── index.ts
│   │   ├── src/
│   │   │   ├── DatePicker.tsx
│   │   │   ├── config.ts
│   │   │   ├── interface.ts
│   │   │   ├── panel/
│   │   │   │   ├── date.tsx
│   │   │   │   ├── daterange.tsx
│   │   │   │   ├── datetime.tsx
│   │   │   │   ├── datetimerange.tsx
│   │   │   │   ├── month.tsx
│   │   │   │   ├── monthrange.tsx
│   │   │   │   ├── panelHeader.tsx
│   │   │   │   ├── use-calendar.ts
│   │   │   │   ├── use-dual-calendar.ts
│   │   │   │   └── use-panel-common.ts
│   │   │   ├── props.ts
│   │   │   ├── public-types.ts
│   │   │   ├── styles/
│   │   │   │   └── index.cssr.ts
│   │   │   ├── utils.ts
│   │   │   └── validation-utils.ts
│   │   ├── styles/
│   │   │   ├── _common.ts
│   │   │   ├── dark.ts
│   │   │   ├── index.ts
│   │   │   └── light.ts
│   │   └── tests/
│   │       ├── DatePicker.spec.tsx
│   │       ├── __snapshots__/
│   │       │   └── DatePicker.spec.tsx.snap
│   │       └── server.spec.tsx
│   ├── descriptions/
│   │   ├── demos/
│   │   │   ├── enUS/
│   │   │   │   ├── basic.demo.vue
│   │   │   │   ├── bordered.demo.vue
│   │   │   │   ├── columns.demo.vue
│   │   │   │   ├── index.demo-entry.md
│   │   │   │   ├── placement.demo.vue
│   │   │   │   ├── size.demo.vue
│   │   │   │   └── span.demo.vue
│   │   │   └── zhCN/
│   │   │       ├── basic.demo.vue
│   │   │       ├── bordered.demo.vue
│   │   │       ├── columns.demo.vue
│   │   │       ├── index.demo-entry.md
│   │   │       ├── placement.demo.vue
│   │   │       ├── single-line-debug.demo.vue
│   │   │       ├── size.demo.vue
│   │   │       └── span.demo.vue
│   │   ├── index.ts
│   │   ├── src/
│   │   │   ├── Descriptions.tsx
│   │   │   ├── DescriptionsItem.ts
│   │   │   ├── public-types.ts
│   │   │   ├── styles/
│   │   │   │   └── index.cssr.ts
│   │   │   └── utils.ts
│   │   ├── styles/
│   │   │   ├── _common.ts
│   │   │   ├── dark.ts
│   │   │   ├── index.ts
│   │   │   └── light.ts
│   │   └── tests/
│   │       ├── Descriptions.spec.ts
│   │       └── server.spec.tsx
│   ├── dialog/
│   │   ├── demos/
│   │   │   ├── enUS/
│   │   │   │   ├── action.demo.vue
│   │   │   │   ├── async.demo.vue
│   │   │   │   ├── basic.demo.vue
│   │   │   │   ├── index.demo-entry.md
│   │   │   │   ├── mask.demo.vue
│   │   │   │   ├── use-component.demo.vue
│   │   │   │   └── use-dialog-reactive-list.demo.vue
│   │   │   └── zhCN/
│   │   │       ├── action.demo.vue
│   │   │       ├── async.demo.vue
│   │   │       ├── basic.demo.vue
│   │   │       ├── focus-debug.demo.vue
│   │   │       ├── index.demo-entry.md
│   │   │       ├── mask.demo.vue
│   │   │       ├── rtl-debug.demo.vue
│   │   │       ├── use-component.demo.vue
│   │   │       └── use-dialog-reactive-list.demo.vue
│   │   ├── index.ts
│   │   ├── src/
│   │   │   ├── Dialog.tsx
│   │   │   ├── DialogEnvironment.tsx
│   │   │   ├── DialogProvider.ts
│   │   │   ├── composables.ts
│   │   │   ├── context.ts
│   │   │   ├── dialogProps.ts
│   │   │   ├── interface.ts
│   │   │   └── styles/
│   │   │       ├── index.cssr.ts
│   │   │       └── rtl.cssr.ts
│   │   ├── styles/
│   │   │   ├── _common.ts
│   │   │   ├── dark.ts
│   │   │   ├── index.ts
│   │   │   ├── light.ts
│   │   │   └── rtl.ts
│   │   └── tests/
│   │       ├── Dialog.spec.tsx
│   │       └── server.spec.tsx
│   ├── discrete/
│   │   ├── demos/
│   │   │   ├── enUS/
│   │   │   │   ├── basic.demo.vue
│   │   │   │   └── index.demo-entry.md
│   │   │   └── zhCN/
│   │   │       ├── basic.demo.vue
│   │   │       └── index.demo-entry.md
│   │   ├── index.ts
│   │   └── src/
│   │       ├── InjectionExtractor.tsx
│   │       ├── discrete.ts
│   │       ├── discreteApp.ts
│   │       └── interface.ts
│   ├── divider/
│   │   ├── demos/
│   │   │   ├── enUS/
│   │   │   │   ├── basic.demo.vue
│   │   │   │   ├── content.demo.vue
│   │   │   │   ├── index.demo-entry.md
│   │   │   │   └── vertical.demo.vue
│   │   │   └── zhCN/
│   │   │       ├── basic.demo.vue
│   │   │       ├── content.demo.vue
│   │   │       ├── index.demo-entry.md
│   │   │       └── vertical.demo.vue
│   │   ├── index.ts
│   │   ├── src/
│   │   │   ├── Divider.tsx
│   │   │   └── styles/
│   │   │       └── index.cssr.ts
│   │   ├── styles/
│   │   │   ├── dark.ts
│   │   │   ├── index.ts
│   │   │   └── light.ts
│   │   └── tests/
│   │       ├── Divider.spec.ts
│   │       └── server.spec.tsx
│   ├── drawer/
│   │   ├── demos/
│   │   │   ├── enUS/
│   │   │   │   ├── basic.demo.vue
│   │   │   │   ├── closable.demo.vue
│   │   │   │   ├── index.demo-entry.md
│   │   │   │   ├── multiple.demo.vue
│   │   │   │   ├── resizable.demo.vue
│   │   │   │   ├── scroll.demo.vue
│   │   │   │   ├── slot.demo.vue
│   │   │   │   └── target.demo.vue
│   │   │   └── zhCN/
│   │   │       ├── a11y-debug.demo.vue
│   │   │       ├── basic.demo.vue
│   │   │       ├── closable.demo.vue
│   │   │       ├── custom-style-debug.demo.vue
│   │   │       ├── dark-1-debug.demo.vue
│   │   │       ├── dark-2-debug.demo.vue
│   │   │       ├── dark-3-debug.demo.vue
│   │   │       ├── dark-4-debug.demo.vue
│   │   │       ├── index.demo-entry.md
│   │   │       ├── multiple.demo.vue
│   │   │       ├── resizable.demo.vue
│   │   │       ├── rtl-debug.demo.vue
│   │   │       ├── scroll.demo.vue
│   │   │       ├── slot.demo.vue
│   │   │       └── target.demo.vue
│   │   ├── index.ts
│   │   ├── src/
│   │   │   ├── Drawer.tsx
│   │   │   ├── DrawerBodyWrapper.tsx
│   │   │   ├── DrawerContent.tsx
│   │   │   ├── interface.ts
│   │   │   └── styles/
│   │   │       ├── index.cssr.ts
│   │   │       └── rtl.cssr.ts
│   │   ├── styles/
│   │   │   ├── dark.ts
│   │   │   ├── index.ts
│   │   │   ├── light.ts
│   │   │   └── rtl.ts
│   │   └── tests/
│   │       ├── Drawer.spec.tsx
│   │       └── server.spec.tsx
│   ├── dropdown/
│   │   ├── demos/
│   │   │   ├── enUS/
│   │   │   │   ├── arrow.demo.vue
│   │   │   │   ├── basic.demo.vue
│   │   │   │   ├── batch-render.demo.vue
│   │   │   │   ├── cascade.demo.vue
│   │   │   │   ├── icon.demo.vue
│   │   │   │   ├── index.demo-entry.md
│   │   │   │   ├── manual-position.demo.vue
│   │   │   │   ├── option-props.demo.vue
│   │   │   │   ├── placement.demo.vue
│   │   │   │   ├── render-option.demo.vue
│   │   │   │   ├── render.demo.vue
│   │   │   │   ├── size.demo.vue
│   │   │   │   └── trigger.demo.vue
│   │   │   └── zhCN/
│   │   │       ├── arrow.demo.vue
│   │   │       ├── basic.demo.vue
│   │   │       ├── batch-render.demo.vue
│   │   │       ├── cascade.demo.vue
│   │   │       ├── group-debug.demo.vue
│   │   │       ├── icon.demo.vue
│   │   │       ├── index.demo-entry.md
│   │   │       ├── manual-position.demo.vue
│   │   │       ├── option-props.demo.vue
│   │   │       ├── placement.demo.vue
│   │   │       ├── render-option.demo.vue
│   │   │       ├── render.demo.vue
│   │   │       ├── scrollable-debug.demo.vue
│   │   │       ├── size.demo.vue
│   │   │       └── trigger.demo.vue
│   │   ├── index.ts
│   │   ├── src/
│   │   │   ├── Dropdown.tsx
│   │   │   ├── DropdownDivider.tsx
│   │   │   ├── DropdownGroup.tsx
│   │   │   ├── DropdownGroupHeader.tsx
│   │   │   ├── DropdownMenu.tsx
│   │   │   ├── DropdownOption.tsx
│   │   │   ├── DropdownRenderOption.tsx
│   │   │   ├── context.ts
│   │   │   ├── interface.ts
│   │   │   ├── public-types.ts
│   │   │   ├── styles/
│   │   │   │   └── index.cssr.ts
│   │   │   └── utils.ts
│   │   ├── styles/
│   │   │   ├── _common.ts
│   │   │   ├── dark.ts
│   │   │   ├── index.ts
│   │   │   └── light.ts
│   │   └── tests/
│   │       ├── Dropdown.spec.tsx
│   │       ├── __snapshots__/
│   │       │   └── Dropdown.spec.tsx.snap
│   │       └── server.spec.tsx
│   ├── dynamic-input/
│   │   ├── demos/
│   │   │   ├── enUS/
│   │   │   │   ├── basic.demo.vue
│   │   │   │   ├── custom-action.demo.vue
│   │   │   │   ├── custom.demo.vue
│   │   │   │   ├── form.demo.vue
│   │   │   │   ├── index.demo-entry.md
│   │   │   │   ├── move.demo.vue
│   │   │   │   └── pair.demo.vue
│   │   │   └── zhCN/
│   │   │       ├── basic.demo.vue
│   │   │       ├── create-debug.demo.vue
│   │   │       ├── custom-action.demo.vue
│   │   │       ├── custom.demo.vue
│   │   │       ├── form.demo.vue
│   │   │       ├── index.demo-entry.md
│   │   │       ├── move.demo.vue
│   │   │       ├── pair.demo.vue
│   │   │       └── rtl-debug.demo.vue
│   │   ├── index.ts
│   │   ├── src/
│   │   │   ├── DynamicInput.tsx
│   │   │   ├── InputPreset.tsx
│   │   │   ├── PairPreset.tsx
│   │   │   ├── interface.ts
│   │   │   └── styles/
│   │   │       ├── index.cssr.ts
│   │   │       └── rtl.cssr.ts
│   │   ├── styles/
│   │   │   ├── _common.ts
│   │   │   ├── dark.ts
│   │   │   ├── index.ts
│   │   │   ├── light.ts
│   │   │   └── rtl.ts
│   │   └── tests/
│   │       ├── DynamicInput.spec.ts
│   │       └── server.spec.tsx
│   ├── dynamic-tags/
│   │   ├── demos/
│   │   │   ├── enUS/
│   │   │   │   ├── basic.demo.vue
│   │   │   │   ├── form.demo.vue
│   │   │   │   ├── index.demo-entry.md
│   │   │   │   ├── max.demo.vue
│   │   │   │   ├── on-create.demo.vue
│   │   │   │   ├── option-format.demo.vue
│   │   │   │   ├── render-tag.demo.vue
│   │   │   │   └── slot.demo.vue
│   │   │   └── zhCN/
│   │   │       ├── basic.demo.vue
│   │   │       ├── form.demo.vue
│   │   │       ├── index.demo-entry.md
│   │   │       ├── max.demo.vue
│   │   │       ├── on-create.demo.vue
│   │   │       ├── option-format.demo.vue
│   │   │       ├── render-tag.demo.vue
│   │   │       └── slot.demo.vue
│   │   ├── index.ts
│   │   ├── src/
│   │   │   ├── DynamicTags.tsx
│   │   │   ├── interface.ts
│   │   │   ├── public-types.ts
│   │   │   └── styles/
│   │   │       └── index.cssr.ts
│   │   ├── styles/
│   │   │   ├── dark.ts
│   │   │   ├── index.ts
│   │   │   └── light.ts
│   │   └── tests/
│   │       ├── DynamicTags.spec.ts
│   │       ├── __snapshots__/
│   │       │   └── DynamicTags.spec.ts.snap
│   │       └── server.spec.tsx
│   ├── element/
│   │   ├── demos/
│   │   │   ├── enUS/
│   │   │   │   ├── basic.demo.vue
│   │   │   │   └── index.demo-entry.md
│   │   │   └── zhCN/
│   │   │       ├── basic.demo.vue
│   │   │       └── index.demo-entry.md
│   │   ├── index.ts
│   │   ├── src/
│   │   │   └── Element.ts
│   │   ├── styles/
│   │   │   ├── dark.ts
│   │   │   ├── index.ts
│   │   │   └── light.ts
│   │   └── tests/
│   │       ├── Element.spec.ts
│   │       └── server.spec.tsx
│   ├── ellipsis/
│   │   ├── demos/
│   │   │   ├── enUS/
│   │   │   │   ├── basic.demo.vue
│   │   │   │   ├── custom-tooltip.demo.vue
│   │   │   │   ├── expand-trigger.demo.vue
│   │   │   │   ├── index.demo-entry.md
│   │   │   │   ├── line-clamp.demo.vue
│   │   │   │   └── performant-ellipsis.demo.vue
│   │   │   └── zhCN/
│   │   │       ├── basic.demo.vue
│   │   │       ├── custom-tooltip.demo.vue
│   │   │       ├── dynamic-debug.demo.vue
│   │   │       ├── expand-trigger.demo.vue
│   │   │       ├── index.demo-entry.md
│   │   │       ├── line-clamp.demo.vue
│   │   │       ├── performant-ellipsis.demo.vue
│   │   │       └── width-debug.demo.vue
│   │   ├── index.ts
│   │   ├── src/
│   │   │   ├── Ellipsis.tsx
│   │   │   ├── PerformantEllipsis.tsx
│   │   │   └── styles/
│   │   │       └── index.cssr.ts
│   │   ├── styles/
│   │   │   ├── dark.ts
│   │   │   ├── index.ts
│   │   │   └── light.ts
│   │   └── tests/
│   │       ├── Ellipsis.spec.tsx
│   │       └── server.spec.tsx
│   ├── empty/
│   │   ├── demos/
│   │   │   ├── enUS/
│   │   │   │   ├── basic.demo.vue
│   │   │   │   ├── icon.demo.vue
│   │   │   │   ├── index.demo-entry.md
│   │   │   │   ├── locale-debug.demo.vue
│   │   │   │   └── size.demo.vue
│   │   │   └── zhCN/
│   │   │       ├── basic.demo.vue
│   │   │       ├── icon.demo.vue
│   │   │       ├── index.demo-entry.md
│   │   │       ├── locale-debug.demo.vue
│   │   │       └── size.demo.vue
│   │   ├── index.ts
│   │   ├── src/
│   │   │   ├── Empty.tsx
│   │   │   └── styles/
│   │   │       └── index.cssr.ts
│   │   ├── styles/
│   │   │   ├── _common.ts
│   │   │   ├── dark.ts
│   │   │   ├── index.ts
│   │   │   └── light.ts
│   │   └── tests/
│   │       ├── Empty.spec.ts
│   │       ├── __snapshots__/
│   │       │   └── Empty.spec.ts.snap
│   │       └── server.spec.tsx
│   ├── equation/
│   │   ├── demos/
│   │   │   ├── enUS/
│   │   │   │   ├── basic.demo.vue
│   │   │   │   ├── index.demo-entry.md
│   │   │   │   └── katex-options.demo.vue
│   │   │   └── zhCN/
│   │   │       ├── basic.demo.vue
│   │   │       ├── index.demo-entry.md
│   │   │       └── katex-options.demo.vue
│   │   ├── index.ts
│   │   ├── src/
│   │   │   └── Equation.tsx
│   │   └── styles/
│   │       ├── dark.ts
│   │       ├── index.ts
│   │       └── light.ts
│   ├── flex/
│   │   ├── demos/
│   │   │   ├── enUS/
│   │   │   │   ├── basic.demo.vue
│   │   │   │   ├── center.demo.vue
│   │   │   │   ├── from-end.demo.vue
│   │   │   │   ├── index.demo-entry.md
│   │   │   │   ├── space-around.demo.vue
│   │   │   │   ├── space-between.demo.vue
│   │   │   │   └── vertical.demo.vue
│   │   │   └── zhCN/
│   │   │       ├── basic.demo.vue
│   │   │       ├── center.demo.vue
│   │   │       ├── from-end.demo.vue
│   │   │       ├── grid-debug.demo.vue
│   │   │       ├── index.demo-entry.md
│   │   │       ├── rtl-debug.demo.vue
│   │   │       ├── space-around.demo.vue
│   │   │       ├── space-between.demo.vue
│   │   │       └── vertical.demo.vue
│   │   ├── index.ts
│   │   ├── src/
│   │   │   ├── Flex.tsx
│   │   │   ├── styles/
│   │   │   │   └── rtl.cssr.ts
│   │   │   └── type.ts
│   │   ├── styles/
│   │   │   ├── _common.ts
│   │   │   ├── dark.ts
│   │   │   ├── index.ts
│   │   │   ├── light.ts
│   │   │   └── rtl.ts
│   │   └── tests/
│   │       ├── Flex.spec.tsx
│   │       ├── __snapshots__/
│   │       │   └── Flex.spec.tsx.snap
│   │       └── server.spec.tsx
│   ├── float-button/
│   │   ├── demos/
│   │   │   ├── enUS/
│   │   │   │   ├── badge.demo.vue
│   │   │   │   ├── basic.demo.vue
│   │   │   │   ├── custom.demo.vue
│   │   │   │   ├── group.demo.vue
│   │   │   │   ├── index.demo-entry.md
│   │   │   │   ├── menu.demo.vue
│   │   │   │   └── tooltip.demo.vue
│   │   │   └── zhCN/
│   │   │       ├── badge.demo.vue
│   │   │       ├── basic.demo.vue
│   │   │       ├── custom.demo.vue
│   │   │       ├── group.demo.vue
│   │   │       ├── index.demo-entry.md
│   │   │       ├── menu.demo.vue
│   │   │       └── tooltip.demo.vue
│   │   ├── index.ts
│   │   ├── src/
│   │   │   ├── FloatButton.tsx
│   │   │   └── styles/
│   │   │       └── index.cssr.ts
│   │   ├── styles/
│   │   │   ├── dark.ts
│   │   │   ├── index.ts
│   │   │   └── light.ts
│   │   └── tests/
│   │       ├── FloatButton.spec.tsx
│   │       ├── __snapshots__/
│   │       │   └── FloatButton.spec.tsx.snap
│   │       └── server.spec.tsx
│   ├── float-button-group/
│   │   ├── index.ts
│   │   ├── src/
│   │   │   ├── FloatButtonGroup.tsx
│   │   │   └── styles/
│   │   │       └── index.cssr.ts
│   │   ├── styles/
│   │   │   ├── dark.ts
│   │   │   ├── index.ts
│   │   │   └── light.ts
│   │   └── tests/
│   │       ├── NFloatButtonGroup.spec.tsx
│   │       ├── __snapshots__/
│   │       │   └── NFloatButtonGroup.spec.tsx.snap
│   │       └── server.spec.tsx
│   ├── form/
│   │   ├── demos/
│   │   │   ├── enUS/
│   │   │   │   ├── abnormal-warning.demo.vue
│   │   │   │   ├── async.demo.vue
│   │   │   │   ├── custom-messages.demo.vue
│   │   │   │   ├── custom-rule.demo.vue
│   │   │   │   ├── custom-validation.demo.vue
│   │   │   │   ├── disabled.demo.vue
│   │   │   │   ├── dynamic.demo.vue
│   │   │   │   ├── feedback-style.demo.vue
│   │   │   │   ├── i18n.demo.vue
│   │   │   │   ├── index.demo-entry.md
│   │   │   │   ├── inline.demo.vue
│   │   │   │   ├── item-only.demo.vue
│   │   │   │   ├── left.demo.vue
│   │   │   │   ├── partially-apply-rules.demo.vue
│   │   │   │   ├── show-label.demo.vue
│   │   │   │   └── top.demo.vue
│   │   │   └── zhCN/
│   │   │       ├── abnormal-warning.demo.vue
│   │   │       ├── async.demo.vue
│   │   │       ├── custom-messages.demo.vue
│   │   │       ├── custom-rule.demo.vue
│   │   │       ├── custom-validation.demo.vue
│   │   │       ├── disabled.demo.vue
│   │   │       ├── dynamic.demo.vue
│   │   │       ├── feedback-style.demo.vue
│   │   │       ├── i18n.demo.vue
│   │   │       ├── index.demo-entry.md
│   │   │       ├── inline.demo.vue
│   │   │       ├── item-only.demo.vue
│   │   │       ├── left.demo.vue
│   │   │       ├── partially-apply-rules.demo.vue
│   │   │       ├── render-feedback.demo.vue
│   │   │       ├── show-label.demo.vue
│   │   │       └── top.demo.vue
│   │   ├── index.ts
│   │   ├── src/
│   │   │   ├── Form.tsx
│   │   │   ├── FormItem.tsx
│   │   │   ├── FormItemCol.ts
│   │   │   ├── FormItemGridItem.ts
│   │   │   ├── FormItemRow.ts
│   │   │   ├── context.ts
│   │   │   ├── interface.ts
│   │   │   ├── public-types.ts
│   │   │   ├── styles/
│   │   │   │   ├── form-item.cssr.ts
│   │   │   │   └── form.cssr.ts
│   │   │   └── utils.ts
│   │   ├── styles/
│   │   │   ├── _common.ts
│   │   │   ├── dark.ts
│   │   │   ├── index.ts
│   │   │   └── light.ts
│   │   └── tests/
│   │       ├── Form.spec.tsx
│   │       └── server.spec.tsx
│   ├── global-style/
│   │   ├── demos/
│   │   │   ├── enUS/
│   │   │   │   └── index.demo-entry.md
│   │   │   └── zhCN/
│   │   │       └── index.demo-entry.md
│   │   ├── index.ts
│   │   ├── src/
│   │   │   └── GlobalStyle.ts
│   │   └── tests/
│   │       └── server.spec.tsx
│   ├── global.d.ts
│   ├── gradient-text/
│   │   ├── demos/
│   │   │   ├── enUS/
│   │   │   │   ├── basic.demo.vue
│   │   │   │   ├── custom.demo.vue
│   │   │   │   ├── index.demo-entry.md
│   │   │   │   └── size.demo.vue
│   │   │   └── zhCN/
│   │   │       ├── basic.demo.vue
│   │   │       ├── custom.demo.vue
│   │   │       ├── index.demo-entry.md
│   │   │       └── size.demo.vue
│   │   ├── index.ts
│   │   ├── src/
│   │   │   ├── GradientText.tsx
│   │   │   └── styles/
│   │   │       └── index.cssr.ts
│   │   ├── styles/
│   │   │   ├── dark.ts
│   │   │   ├── index.ts
│   │   │   └── light.ts
│   │   └── tests/
│   │       ├── GradientText.spec.ts
│   │       ├── __snapshots__/
│   │       │   └── GradientText.spec.ts.snap
│   │       └── server.spec.tsx
│   ├── grid/
│   │   ├── demos/
│   │   │   ├── enUS/
│   │   │   │   ├── basic.demo.vue
│   │   │   │   ├── collapse.demo.vue
│   │   │   │   ├── gap.demo.vue
│   │   │   │   ├── index.demo-entry.md
│   │   │   │   ├── layout-shift-disabled.demo.vue
│   │   │   │   ├── offset.demo.vue
│   │   │   │   ├── responsive-item.demo.vue
│   │   │   │   └── responsive.demo.vue
│   │   │   └── zhCN/
│   │   │       ├── basic.demo.vue
│   │   │       ├── collapse.demo.vue
│   │   │       ├── gap.demo.vue
│   │   │       ├── grid-basic-debug.demo.vue
│   │   │       ├── index.demo-entry.md
│   │   │       ├── layout-shift-disabled.demo.vue
│   │   │       ├── offset.demo.vue
│   │   │       ├── responsive-item.demo.vue
│   │   │       ├── responsive.demo.vue
│   │   │       └── vshow-debug.demo.vue
│   │   ├── index.ts
│   │   ├── src/
│   │   │   ├── Grid.tsx
│   │   │   ├── GridItem.tsx
│   │   │   └── config.ts
│   │   └── tests/
│   │       ├── Grid.spec.tsx
│   │       └── server.spec.tsx
│   ├── heatmap/
│   │   ├── demos/
│   │   │   ├── enUS/
│   │   │   │   ├── basic.demo.vue
│   │   │   │   ├── colors.demo.vue
│   │   │   │   ├── index.demo-entry.md
│   │   │   │   ├── slots.demo.vue
│   │   │   │   └── themes.demo.vue
│   │   │   └── zhCN/
│   │   │       ├── basic.demo.vue
│   │   │       ├── colors.demo.vue
│   │   │       ├── index.demo-entry.md
│   │   │       ├── slots.demo.vue
│   │   │       └── themes.demo.vue
│   │   ├── index.ts
│   │   ├── src/
│   │   │   ├── ColorIndicator.tsx
│   │   │   ├── Heatmap.tsx
│   │   │   ├── Rect.tsx
│   │   │   ├── animationStyle.ts
│   │   │   ├── interface.ts
│   │   │   ├── public-types.ts
│   │   │   ├── styles/
│   │   │   │   ├── index.cssr.ts
│   │   │   │   └── rtl.cssr.ts
│   │   │   ├── theme.ts
│   │   │   └── utils/
│   │   │       └── index.ts
│   │   ├── styles/
│   │   │   ├── dark.ts
│   │   │   ├── index.ts
│   │   │   ├── light.ts
│   │   │   └── rtl.ts
│   │   └── tests/
│   │       ├── Heatmap.spec.tsx
│   │       └── server.spec.tsx
│   ├── highlight/
│   │   ├── demos/
│   │   │   ├── enUS/
│   │   │   │   ├── basic.demo.vue
│   │   │   │   ├── case-sensitive.demo.vue
│   │   │   │   ├── component.demo.vue
│   │   │   │   ├── index.demo-entry.md
│   │   │   │   └── style.demo.vue
│   │   │   └── zhCN/
│   │   │       ├── basic.demo.vue
│   │   │       ├── case-sensitive.demo.vue
│   │   │       ├── component.demo.vue
│   │   │       ├── index.demo-entry.md
│   │   │       └── style.demo.vue
│   │   ├── index.ts
│   │   ├── src/
│   │   │   ├── Highlight.tsx
│   │   │   ├── public-types.ts
│   │   │   └── utils.ts
│   │   └── tests/
│   │       └── utils.spec.ts
│   ├── icon/
│   │   ├── demos/
│   │   │   ├── enUS/
│   │   │   │   ├── basic.demo.vue
│   │   │   │   ├── custom-icon.demo.vue
│   │   │   │   ├── depth.demo.vue
│   │   │   │   ├── icon-wrapper.demo.vue
│   │   │   │   └── index.demo-entry.md
│   │   │   └── zhCN/
│   │   │       ├── basic.demo.vue
│   │   │       ├── custom-icon.demo.vue
│   │   │       ├── depth.demo.vue
│   │   │       ├── icon-wrapper.demo.vue
│   │   │       └── index.demo-entry.md
│   │   ├── index.ts
│   │   ├── src/
│   │   │   ├── Icon.ts
│   │   │   └── styles/
│   │   │       └── index.cssr.ts
│   │   ├── styles/
│   │   │   ├── dark.ts
│   │   │   ├── index.ts
│   │   │   └── light.ts
│   │   └── tests/
│   │       ├── Icon.spec.ts
│   │       ├── __snapshots__/
│   │       │   └── Icon.spec.ts.snap
│   │       └── server.spec.tsx
│   ├── icon-wrapper/
│   │   ├── index.ts
│   │   ├── src/
│   │   │   ├── IconWrapper.tsx
│   │   │   └── styles/
│   │   │       └── index.cssr.ts
│   │   ├── styles/
│   │   │   ├── dark.ts
│   │   │   ├── index.ts
│   │   │   └── light.ts
│   │   └── tests/
│   │       ├── IconWrapper.spec.ts
│   │       └── server.spec.tsx
│   ├── image/
│   │   ├── demos/
│   │   │   ├── enUS/
│   │   │   │   ├── basic.demo.vue
│   │   │   │   ├── component-preview-group.demo.vue
│   │   │   │   ├── component-preview.demo.vue
│   │   │   │   ├── custom-error.demo.vue
│   │   │   │   ├── custom-toolbar.demo.vue
│   │   │   │   ├── custom.demo.vue
│   │   │   │   ├── error.demo.vue
│   │   │   │   ├── group.demo.vue
│   │   │   │   ├── index.demo-entry.md
│   │   │   │   ├── lazy.demo.vue
│   │   │   │   ├── manually-open-preview.demo.vue
│   │   │   │   ├── preview-disabled.demo.vue
│   │   │   │   ├── previewed-img-props.demo.vue
│   │   │   │   └── tooltip.demo.vue
│   │   │   └── zhCN/
│   │   │       ├── basic.demo.vue
│   │   │       ├── component-preview-group-debug.demo.vue
│   │   │       ├── component-preview-group.demo.vue
│   │   │       ├── component-preview.demo.vue
│   │   │       ├── custom-error.demo.vue
│   │   │       ├── custom-toolbar.demo.vue
│   │   │       ├── custom.demo.vue
│   │   │       ├── error.demo.vue
│   │   │       ├── full-debug.demo.vue
│   │   │       ├── group.demo.vue
│   │   │       ├── index.demo-entry.md
│   │   │       ├── lazy.demo.vue
│   │   │       ├── manually-open-preview.demo.vue
│   │   │       ├── preview-disabled.demo.vue
│   │   │       ├── previewed-img-props.demo.vue
│   │   │       └── tooltip.demo.vue
│   │   ├── index.ts
│   │   ├── src/
│   │   │   ├── Image.tsx
│   │   │   ├── ImageGroup.tsx
│   │   │   ├── ImagePreview.tsx
│   │   │   ├── icons.tsx
│   │   │   ├── interface.ts
│   │   │   ├── public-types.ts
│   │   │   ├── styles/
│   │   │   │   └── index.cssr.ts
│   │   │   └── utils.ts
│   │   ├── styles/
│   │   │   ├── dark.ts
│   │   │   ├── index.ts
│   │   │   └── light.ts
│   │   └── tests/
│   │       ├── Image.spec.tsx
│   │       └── server.spec.tsx
│   ├── index.ts
│   ├── infinite-scroll/
│   │   ├── demos/
│   │   │   ├── enUS/
│   │   │   │   ├── basic.demo.vue
│   │   │   │   ├── chat.demo.vue
│   │   │   │   └── index.demo-entry.md
│   │   │   └── zhCN/
│   │   │       ├── basic.demo.vue
│   │   │       ├── chat.demo.vue
│   │   │       └── index.demo-entry.md
│   │   ├── index.ts
│   │   └── src/
│   │       └── InfiniteScroll.tsx
│   ├── input/
│   │   ├── demos/
│   │   │   ├── enUS/
│   │   │   │   ├── autosize.demo.vue
│   │   │   │   ├── basic.demo.vue
│   │   │   │   ├── clearable.demo.vue
│   │   │   │   ├── count.demo.vue
│   │   │   │   ├── disabled.demo.vue
│   │   │   │   ├── event.demo.vue
│   │   │   │   ├── focus.demo.vue
│   │   │   │   ├── graphemes.demo.vue
│   │   │   │   ├── icon.demo.vue
│   │   │   │   ├── index.demo-entry.md
│   │   │   │   ├── input-group.demo.vue
│   │   │   │   ├── input-props.demo.vue
│   │   │   │   ├── loading.demo.vue
│   │   │   │   ├── pair.demo.vue
│   │   │   │   ├── passively-activated.demo.vue
│   │   │   │   ├── password.demo.vue
│   │   │   │   ├── pattern.demo.vue
│   │   │   │   ├── round.demo.vue
│   │   │   │   ├── size.demo.vue
│   │   │   │   ├── status.demo.vue
│   │   │   │   └── trim.demo.vue
│   │   │   └── zhCN/
│   │   │       ├── autosize.demo.vue
│   │   │       ├── basic.demo.vue
│   │   │       ├── clearable.demo.vue
│   │   │       ├── count.demo.vue
│   │   │       ├── disabled.demo.vue
│   │   │       ├── event.demo.vue
│   │   │       ├── focus.demo.vue
│   │   │       ├── graphemes.demo.vue
│   │   │       ├── icon-debug.demo.vue
│   │   │       ├── icon.demo.vue
│   │   │       ├── index.demo-entry.md
│   │   │       ├── input-group.demo.vue
│   │   │       ├── input-props.demo.vue
│   │   │       ├── loading.demo.vue
│   │   │       ├── modal-debug.demo.vue
│   │   │       ├── pair.demo.vue
│   │   │       ├── passively-activated.demo.vue
│   │   │       ├── password.demo.vue
│   │   │       ├── pattern.demo.vue
│   │   │       ├── prefix-debug.demo.vue
│   │   │       ├── round.demo.vue
│   │   │       ├── rtl-debug.demo.vue
│   │   │       ├── size.demo.vue
│   │   │       ├── status.demo.vue
│   │   │       └── textarea-resize-debug.demo.vue
│   │   ├── index.ts
│   │   ├── src/
│   │   │   ├── Input.tsx
│   │   │   ├── InputGroup.tsx
│   │   │   ├── InputGroupLabel.tsx
│   │   │   ├── WordCount.tsx
│   │   │   ├── interface.ts
│   │   │   ├── public-types.ts
│   │   │   ├── styles/
│   │   │   │   ├── input-group-label.cssr.ts
│   │   │   │   ├── input-group.cssr.ts
│   │   │   │   ├── input.cssr.ts
│   │   │   │   └── rtl.cssr.ts
│   │   │   └── utils.ts
│   │   ├── styles/
│   │   │   ├── _common.ts
│   │   │   ├── dark.ts
│   │   │   ├── index.ts
│   │   │   ├── light.ts
│   │   │   └── rtl.ts
│   │   └── tests/
│   │       ├── Input.spec.tsx
│   │       ├── __snapshots__/
│   │       │   └── Input.spec.tsx.snap
│   │       └── server.spec.tsx
│   ├── input-number/
│   │   ├── demos/
│   │   │   ├── enUS/
│   │   │   │   ├── basic.demo.vue
│   │   │   │   ├── button-placement.demo.vue
│   │   │   │   ├── change-timing.demo.vue
│   │   │   │   ├── custom-icon.demo.vue
│   │   │   │   ├── disable-keyboard.demo.vue
│   │   │   │   ├── disabled.demo.vue
│   │   │   │   ├── event.demo.vue
│   │   │   │   ├── icon.demo.vue
│   │   │   │   ├── index.demo-entry.md
│   │   │   │   ├── loading.demo.vue
│   │   │   │   ├── min-max.demo.vue
│   │   │   │   ├── parse.demo.vue
│   │   │   │   ├── precision.demo.vue
│   │   │   │   ├── show-button.demo.vue
│   │   │   │   ├── size.demo.vue
│   │   │   │   ├── status.demo.vue
│   │   │   │   ├── step.demo.vue
│   │   │   │   └── validator.demo.vue
│   │   │   └── zhCN/
│   │   │       ├── basic.demo.vue
│   │   │       ├── button-placement.demo.vue
│   │   │       ├── change-timing.demo.vue
│   │   │       ├── custom-icon.demo.vue
│   │   │       ├── debug.demo.vue
│   │   │       ├── disable-keyboard.demo.vue
│   │   │       ├── disabled.demo.vue
│   │   │       ├── event.demo.vue
│   │   │       ├── icon.demo.vue
│   │   │       ├── index.demo-entry.md
│   │   │       ├── loading.demo.vue
│   │   │       ├── min-max.demo.vue
│   │   │       ├── parse.demo.vue
│   │   │       ├── precision-debug.demo.vue
│   │   │       ├── precision.demo.vue
│   │   │       ├── rtl-debug.demo.vue
│   │   │       ├── show-button.demo.vue
│   │   │       ├── size.demo.vue
│   │   │       ├── status.demo.vue
│   │   │       ├── step.demo.vue
│   │   │       ├── theme-debug.demo.vue
│   │   │       └── validator.demo.vue
│   │   ├── index.ts
│   │   ├── src/
│   │   │   ├── InputNumber.tsx
│   │   │   ├── interface.ts
│   │   │   ├── public-types.ts
│   │   │   ├── styles/
│   │   │   │   ├── input-number.cssr.ts
│   │   │   │   └── rtl.cssr.ts
│   │   │   └── utils.ts
│   │   ├── styles/
│   │   │   ├── dark.ts
│   │   │   ├── index.ts
│   │   │   ├── light.ts
│   │   │   └── rtl.ts
│   │   └── tests/
│   │       ├── InputNumber.spec.tsx
│   │       └── server.spec.tsx
│   ├── input-otp/
│   │   ├── demos/
│   │   │   ├── enUS/
│   │   │   │   ├── basic.demo.vue
│   │   │   │   ├── block.demo.vue
│   │   │   │   ├── form.demo.vue
│   │   │   │   ├── index.demo-entry.md
│   │   │   │   ├── mask.demo.vue
│   │   │   │   ├── pattern.demo.vue
│   │   │   │   ├── size.demo.vue
│   │   │   │   ├── status.demo.vue
│   │   │   │   └── template.demo.vue
│   │   │   └── zhCN/
│   │   │       ├── basic.demo.vue
│   │   │       ├── block.demo.vue
│   │   │       ├── form.demo.vue
│   │   │       ├── index.demo-entry.md
│   │   │       ├── mask.demo.vue
│   │   │       ├── pattern.demo.vue
│   │   │       ├── rtl-debug.demo.vue
│   │   │       ├── size.demo.vue
│   │   │       ├── status.demo.vue
│   │   │       └── template.demo.vue
│   │   ├── index.ts
│   │   ├── src/
│   │   │   ├── InputOtp.tsx
│   │   │   ├── public-types.ts
│   │   │   └── styles/
│   │   │       ├── index.cssr.ts
│   │   │       └── input-otp-rtl.cssr.ts
│   │   ├── styles/
│   │   │   ├── dark.ts
│   │   │   ├── index.ts
│   │   │   ├── light.ts
│   │   │   └── rtl.ts
│   │   └── tests/
│   │       ├── InputOtp.spec.tsx
│   │       └── server.spec.tsx
│   ├── layout/
│   │   ├── demos/
│   │   │   ├── enUS/
│   │   │   │   ├── absolute.demo.vue
│   │   │   │   ├── basic.demo.vue
│   │   │   │   ├── border.demo.vue
│   │   │   │   ├── collapse-right.demo.vue
│   │   │   │   ├── collapse.demo.vue
│   │   │   │   ├── embedded.demo.vue
│   │   │   │   ├── index.demo-entry.md
│   │   │   │   ├── inverted.demo.vue
│   │   │   │   ├── scroll-to.demo.vue
│   │   │   │   ├── scrollbar.demo.vue
│   │   │   │   ├── set-padding.demo.vue
│   │   │   │   └── show-sider-content.demo.vue
│   │   │   └── zhCN/
│   │   │       ├── absolute.demo.vue
│   │   │       ├── basic.demo.vue
│   │   │       ├── border.demo.vue
│   │   │       ├── collapse-right.demo.vue
│   │   │       ├── collapse.demo.vue
│   │   │       ├── embedded.demo.vue
│   │   │       ├── index.demo-entry.md
│   │   │       ├── inverted.demo.vue
│   │   │       ├── keep-alive-debug.demo.vue
│   │   │       ├── scroll-to.demo.vue
│   │   │       ├── scrollbar.demo.vue
│   │   │       ├── set-padding.demo.vue
│   │   │       └── show-sider-content.demo.vue
│   │   ├── index.ts
│   │   ├── src/
│   │   │   ├── Layout.tsx
│   │   │   ├── LayoutContent.tsx
│   │   │   ├── LayoutFooter.tsx
│   │   │   ├── LayoutHeader.tsx
│   │   │   ├── LayoutSider.tsx
│   │   │   ├── ToggleBar.tsx
│   │   │   ├── ToggleButton.tsx
│   │   │   ├── interface.ts
│   │   │   └── styles/
│   │   │       ├── layout-footer.cssr.ts
│   │   │       ├── layout-header.cssr.ts
│   │   │       ├── layout-sider.cssr.ts
│   │   │       └── layout.cssr.ts
│   │   ├── styles/
│   │   │   ├── dark.ts
│   │   │   ├── index.ts
│   │   │   └── light.ts
│   │   └── tests/
│   │       ├── Layout.spec.ts
│   │       ├── __snapshots__/
│   │       │   └── Layout.spec.ts.snap
│   │       └── server.spec.tsx
│   ├── legacy-grid/
│   │   ├── demos/
│   │   │   ├── enUS/
│   │   │   │   ├── basic.demo.vue
│   │   │   │   ├── gutter.demo.vue
│   │   │   │   ├── index.demo-entry.md
│   │   │   │   ├── offset.demo.vue
│   │   │   │   └── push-pull.demo.vue
│   │   │   └── zhCN/
│   │   │       ├── basic.demo.vue
│   │   │       ├── gutter.demo.vue
│   │   │       ├── index.demo-entry.md
│   │   │       ├── offset.demo.vue
│   │   │       ├── push-pull.demo.vue
│   │   │       ├── rtl-debug.demo.vue
│   │   │       └── wrap-debug.demo.vue
│   │   ├── index.ts
│   │   ├── src/
│   │   │   ├── Col.tsx
│   │   │   ├── Row.tsx
│   │   │   ├── interface.ts
│   │   │   └── styles/
│   │   │       ├── index.cssr.ts
│   │   │       └── rtl.cssr.ts
│   │   ├── styles/
│   │   │   ├── dark.ts
│   │   │   ├── index.ts
│   │   │   ├── light.ts
│   │   │   └── rtl.ts
│   │   └── tests/
│   │       ├── Grid.spec.tsx
│   │       └── server.spec.tsx
│   ├── legacy-transfer/
│   │   ├── demos/
│   │   │   ├── enUS/
│   │   │   │   ├── basic.demo.vue
│   │   │   │   ├── filterable.demo.vue
│   │   │   │   ├── index.demo-entry.md
│   │   │   │   ├── large-data.demo.vue
│   │   │   │   └── size.demo.vue
│   │   │   └── zhCN/
│   │   │       ├── basic.demo.vue
│   │   │       ├── filterable.demo.vue
│   │   │       ├── index.demo-entry.md
│   │   │       ├── large-data.demo.vue
│   │   │       └── size.demo.vue
│   │   ├── index.ts
│   │   ├── src/
│   │   │   ├── Transfer.tsx
│   │   │   ├── TransferFilter.tsx
│   │   │   ├── TransferHeader.tsx
│   │   │   ├── TransferList.tsx
│   │   │   ├── TransferListItem.tsx
│   │   │   ├── interface.ts
│   │   │   ├── styles/
│   │   │   │   └── index.cssr.ts
│   │   │   └── use-transfer-data.ts
│   │   ├── styles/
│   │   │   ├── _common.ts
│   │   │   ├── dark.ts
│   │   │   ├── index.ts
│   │   │   └── light.ts
│   │   └── tests/
│   │       ├── Transfer.spec.ts
│   │       ├── __snapshots__/
│   │       │   └── Transfer.spec.ts.snap
│   │       └── server.spec.tsx
│   ├── list/
│   │   ├── demos/
│   │   │   ├── enUS/
│   │   │   │   ├── basic.demo.vue
│   │   │   │   ├── border.demo.vue
│   │   │   │   ├── hoverable.demo.vue
│   │   │   │   └── index.demo-entry.md
│   │   │   └── zhCN/
│   │   │       ├── basic.demo.vue
│   │   │       ├── border.demo.vue
│   │   │       ├── hoverable.demo.vue
│   │   │       ├── index.demo-entry.md
│   │   │       └── rtl-debug.demo.vue
│   │   ├── index.ts
│   │   ├── src/
│   │   │   ├── List.tsx
│   │   │   ├── ListItem.tsx
│   │   │   └── styles/
│   │   │       ├── index.cssr.ts
│   │   │       └── rtl.cssr.ts
│   │   ├── styles/
│   │   │   ├── dark.ts
│   │   │   ├── index.ts
│   │   │   ├── light.ts
│   │   │   └── rtl.ts
│   │   └── tests/
│   │       ├── List.spec.ts
│   │       └── server.spec.tsx
│   ├── loading-bar/
│   │   ├── demos/
│   │   │   ├── enUS/
│   │   │   │   ├── basic.demo.vue
│   │   │   │   ├── container.demo.vue
│   │   │   │   └── index.demo-entry.md
│   │   │   └── zhCN/
│   │   │       ├── basic.demo.vue
│   │   │       ├── container.demo.vue
│   │   │       └── index.demo-entry.md
│   │   ├── index.ts
│   │   ├── src/
│   │   │   ├── LoadingBar.tsx
│   │   │   ├── LoadingBarProvider.tsx
│   │   │   ├── context.ts
│   │   │   ├── styles/
│   │   │   │   └── index.cssr.ts
│   │   │   └── use-loading-bar.ts
│   │   ├── styles/
│   │   │   ├── dark.ts
│   │   │   ├── index.ts
│   │   │   └── light.ts
│   │   └── tests/
│   │       └── LoadingBar.spec.tsx
│   ├── locales/
│   │   ├── __snapshots__/
│   │   │   └── index.spec.tsx.snap
│   │   ├── common/
│   │   │   ├── arDZ.ts
│   │   │   ├── azAZ.ts
│   │   │   ├── csCZ.ts
│   │   │   ├── daDK.ts
│   │   │   ├── deDE.ts
│   │   │   ├── enGB.ts
│   │   │   ├── enUS.ts
│   │   │   ├── eo.ts
│   │   │   ├── esAR.ts
│   │   │   ├── etEE.ts
│   │   │   ├── faIR.ts
│   │   │   ├── frFR.ts
│   │   │   ├── idID.ts
│   │   │   ├── itIT.ts
│   │   │   ├── jaJP.ts
│   │   │   ├── kmKH.ts
│   │   │   ├── koKR.ts
│   │   │   ├── nbNO.ts
│   │   │   ├── nlNL.ts
│   │   │   ├── plPL.ts
│   │   │   ├── ptBR.ts
│   │   │   ├── ruRU.ts
│   │   │   ├── skSK.ts
│   │   │   ├── svSE.ts
│   │   │   ├── thTH.ts
│   │   │   ├── trTR.ts
│   │   │   ├── ugCN.ts
│   │   │   ├── ukUA.ts
│   │   │   ├── uzUZ.ts
│   │   │   ├── viVN.ts
│   │   │   ├── zhCN.ts
│   │   │   └── zhTW.ts
│   │   ├── date/
│   │   │   ├── arDZ.ts
│   │   │   ├── azAZ.ts
│   │   │   ├── csCZ.ts
│   │   │   ├── daDK.ts
│   │   │   ├── deDE.ts
│   │   │   ├── enGB.ts
│   │   │   ├── enUS.ts
│   │   │   ├── eo.ts
│   │   │   ├── esAR.ts
│   │   │   ├── etEE.ts
│   │   │   ├── faIR.ts
│   │   │   ├── frFR.ts
│   │   │   ├── idID.ts
│   │   │   ├── itIT.ts
│   │   │   ├── jaJP.ts
│   │   │   ├── kmKH.ts
│   │   │   ├── koKR.ts
│   │   │   ├── nbNO.ts
│   │   │   ├── nlNL.ts
│   │   │   ├── plPL.ts
│   │   │   ├── ptBR.ts
│   │   │   ├── ruRU.ts
│   │   │   ├── skSK.ts
│   │   │   ├── svSE.ts
│   │   │   ├── thTH.ts
│   │   │   ├── trTR.ts
│   │   │   ├── ugCN.ts
│   │   │   ├── ukUA.ts
│   │   │   ├── uzUZ.ts
│   │   │   ├── viVN.ts
│   │   │   ├── zhCN.ts
│   │   │   └── zhTW.ts
│   │   ├── index.spec.tsx
│   │   ├── index.ts
│   │   └── utils/
│   │       └── index.ts
│   ├── log/
│   │   ├── demos/
│   │   │   ├── enUS/
│   │   │   │   ├── auto-bottom.demo.vue
│   │   │   │   ├── event.demo.vue
│   │   │   │   ├── highlight.demo.vue
│   │   │   │   ├── index.demo-entry.md
│   │   │   │   ├── loading.demo.vue
│   │   │   │   ├── scroll.demo.vue
│   │   │   │   └── size.demo.vue
│   │   │   └── zhCN/
│   │   │       ├── auto-bottom.demo.vue
│   │   │       ├── debug.demo.vue
│   │   │       ├── event.demo.vue
│   │   │       ├── highlight.demo.vue
│   │   │       ├── index.demo-entry.md
│   │   │       ├── loading.demo.vue
│   │   │       ├── scroll.demo.vue
│   │   │       └── size.demo.vue
│   │   ├── index.ts
│   │   ├── src/
│   │   │   ├── Log.tsx
│   │   │   ├── LogLine.tsx
│   │   │   ├── LogLoader.tsx
│   │   │   ├── context.ts
│   │   │   ├── public-types.ts
│   │   │   └── styles/
│   │   │       └── index.cssr.ts
│   │   ├── styles/
│   │   │   ├── dark.ts
│   │   │   ├── index.ts
│   │   │   └── light.ts
│   │   └── tests/
│   │       ├── Log.spec.tsx
│   │       └── server.spec.tsx
│   ├── marquee/
│   │   ├── demos/
│   │   │   ├── enUS/
│   │   │   │   ├── auto-fill.demo.vue
│   │   │   │   ├── basic.demo.vue
│   │   │   │   ├── image.demo.vue
│   │   │   │   └── index.demo-entry.md
│   │   │   └── zhCN/
│   │   │       ├── auto-fill.demo.vue
│   │   │       ├── basic.demo.vue
│   │   │       ├── image.demo.vue
│   │   │       └── index.demo-entry.md
│   │   ├── index.ts
│   │   ├── src/
│   │   │   ├── Marquee.tsx
│   │   │   ├── props.ts
│   │   │   ├── public-types.ts
│   │   │   └── styles/
│   │   │       └── index.cssr.ts
│   │   ├── styles/
│   │   │   ├── dark.ts
│   │   │   ├── index.ts
│   │   │   └── light.ts
│   │   └── tests/
│   │       ├── Marquee.spec.ts
│   │       └── server.spec.tsx
│   ├── mention/
│   │   ├── demos/
│   │   │   ├── enUS/
│   │   │   │   ├── async.demo.vue
│   │   │   │   ├── autosize.demo.vue
│   │   │   │   ├── basic.demo.vue
│   │   │   │   ├── custom-prefix.demo.vue
│   │   │   │   ├── form.demo.vue
│   │   │   │   ├── index.demo-entry.md
│   │   │   │   ├── manual-trigger.demo.vue
│   │   │   │   ├── render-label.demo.vue
│   │   │   │   ├── status.demo.vue
│   │   │   │   └── textarea.demo.vue
│   │   │   └── zhCN/
│   │   │       ├── async.demo.vue
│   │   │       ├── autosize.demo.vue
│   │   │       ├── basic.demo.vue
│   │   │       ├── custom-prefix.demo.vue
│   │   │       ├── form.demo.vue
│   │   │       ├── index.demo-entry.md
│   │   │       ├── manual-trigger.demo.vue
│   │   │       ├── render-label.demo.vue
│   │   │       ├── status.demo.vue
│   │   │       └── textarea.demo.vue
│   │   ├── index.ts
│   │   ├── src/
│   │   │   ├── Mention.tsx
│   │   │   ├── interface.ts
│   │   │   ├── public-types.ts
│   │   │   ├── styles/
│   │   │   │   └── index.cssr.ts
│   │   │   └── utils.ts
│   │   ├── styles/
│   │   │   ├── dark.ts
│   │   │   ├── index.ts
│   │   │   └── light.ts
│   │   └── tests/
│   │       ├── Mention.spec.ts
│   │       └── server.spec.tsx
│   ├── menu/
│   │   ├── demos/
│   │   │   ├── enUS/
│   │   │   │   ├── accordion.demo.vue
│   │   │   │   ├── collapse.demo.vue
│   │   │   │   ├── customize-field.demo.vue
│   │   │   │   ├── default-expanded-keys.demo.vue
│   │   │   │   ├── expand-selected-option.demo.vue
│   │   │   │   ├── horizontal.demo.vue
│   │   │   │   ├── indent.demo.vue
│   │   │   │   ├── index.demo-entry.md
│   │   │   │   ├── inverted.demo.vue
│   │   │   │   ├── long-label.demo.vue
│   │   │   │   ├── render-label.demo.vue
│   │   │   │   ├── router-link.demo.vue
│   │   │   │   ├── select.demo.vue
│   │   │   │   └── show.demo.vue
│   │   │   └── zhCN/
│   │   │       ├── accordion.demo.vue
│   │   │       ├── collapse.demo.vue
│   │   │       ├── customize-field.demo.vue
│   │   │       ├── debug.demo.vue
│   │   │       ├── default-expanded-keys.demo.vue
│   │   │       ├── expand-selected-option.demo.vue
│   │   │       ├── horizontal.demo.vue
│   │   │       ├── indent.demo.vue
│   │   │       ├── index.demo-entry.md
│   │   │       ├── inverted.demo.vue
│   │   │       ├── long-label.demo.vue
│   │   │       ├── render-label.demo.vue
│   │   │       ├── router-link.demo.vue
│   │   │       ├── select.demo.vue
│   │   │       ├── show-debug.demo.vue
│   │   │       └── show.demo.vue
│   │   ├── index.ts
│   │   ├── src/
│   │   │   ├── Menu.tsx
│   │   │   ├── MenuDivider.tsx
│   │   │   ├── MenuOption.tsx
│   │   │   ├── MenuOptionContent.tsx
│   │   │   ├── MenuOptionGroup.tsx
│   │   │   ├── Submenu.tsx
│   │   │   ├── context.ts
│   │   │   ├── interface.ts
│   │   │   ├── styles/
│   │   │   │   └── index.cssr.ts
│   │   │   ├── use-menu-child-props.ts
│   │   │   ├── use-menu-child.ts
│   │   │   ├── useCheckDeprecated.ts
│   │   │   └── utils.tsx
│   │   ├── styles/
│   │   │   ├── dark.ts
│   │   │   ├── index.ts
│   │   │   └── light.ts
│   │   └── tests/
│   │       ├── Menu.spec.tsx
│   │       └── server.spec.tsx
│   ├── message/
│   │   ├── demos/
│   │   │   ├── enUS/
│   │   │   │   ├── about-theme.demo.vue
│   │   │   │   ├── basic.demo.vue
│   │   │   │   ├── closable.demo.vue
│   │   │   │   ├── customize-message.demo.vue
│   │   │   │   ├── icon.demo.vue
│   │   │   │   ├── index.demo-entry.md
│   │   │   │   ├── manually-close.demo.vue
│   │   │   │   ├── modify-content.demo.vue
│   │   │   │   ├── multiple-line.demo.vue
│   │   │   │   ├── no-icon.demo.vue
│   │   │   │   ├── placement.demo.vue
│   │   │   │   └── timing.demo.vue
│   │   │   └── zhCN/
│   │   │       ├── about-theme.demo.vue
│   │   │       ├── basic.demo.vue
│   │   │       ├── closable.demo.vue
│   │   │       ├── customize-message.demo.vue
│   │   │       ├── icon.demo.vue
│   │   │       ├── index.demo-entry.md
│   │   │       ├── manually-close.demo.vue
│   │   │       ├── modify-content.demo.vue
│   │   │       ├── multiple-line.demo.vue
│   │   │       ├── no-icon.demo.vue
│   │   │       ├── placement.demo.vue
│   │   │       ├── rtl-debug.demo.vue
│   │   │       └── timing.demo.vue
│   │   ├── index.ts
│   │   ├── src/
│   │   │   ├── Message.tsx
│   │   │   ├── MessageEnvironment.tsx
│   │   │   ├── MessageProvider.tsx
│   │   │   ├── context.ts
│   │   │   ├── message-props.ts
│   │   │   ├── public-types.ts
│   │   │   ├── styles/
│   │   │   │   ├── index.cssr.ts
│   │   │   │   └── rtl.cssr.ts
│   │   │   ├── types.ts
│   │   │   └── use-message.ts
│   │   ├── styles/
│   │   │   ├── _common.ts
│   │   │   ├── dark.ts
│   │   │   ├── index.ts
│   │   │   ├── light.ts
│   │   │   └── rtl.ts
│   │   └── tests/
│   │       ├── Message.spec.tsx
│   │       └── server.spec.tsx
│   ├── modal/
│   │   ├── demos/
│   │   │   ├── enUS/
│   │   │   │   ├── basic.demo.vue
│   │   │   │   ├── content-scrollable.demo.vue
│   │   │   │   ├── controlled.demo.vue
│   │   │   │   ├── custom-position.demo.vue
│   │   │   │   ├── draggable.demo.vue
│   │   │   │   ├── index.demo-entry.md
│   │   │   │   ├── mask-closable.demo.vue
│   │   │   │   ├── mask-visible.demo.vue
│   │   │   │   ├── preset-card.demo.vue
│   │   │   │   ├── preset-confirm-slot.demo.vue
│   │   │   │   ├── preset-confirm.demo.vue
│   │   │   │   ├── reactive.demo.vue
│   │   │   │   └── transform-origin.demo.vue
│   │   │   └── zhCN/
│   │   │       ├── a11y-debug.demo.vue
│   │   │       ├── basic.demo.vue
│   │   │       ├── content-scrollable.demo.vue
│   │   │       ├── controlled.demo.vue
│   │   │       ├── custom-position.demo.vue
│   │   │       ├── dark-1-debug.demo.vue
│   │   │       ├── dark-10-debug.demo.vue
│   │   │       ├── dark-2-debug.demo.vue
│   │   │       ├── dark-3-debug.demo.vue
│   │   │       ├── dark-4-debug.demo.vue
│   │   │       ├── dark-5-debug.demo.vue
│   │   │       ├── dark-6-debug.demo.vue
│   │   │       ├── dark-7-debug.demo.vue
│   │   │       ├── dark-8-debug.demo.vue
│   │   │       ├── dark-9-debug.demo.vue
│   │   │       ├── draggable.demo.vue
│   │   │       ├── drawer-debug.demo.vue
│   │   │       ├── index.demo-entry.md
│   │   │       ├── mask-click-debug.demo.vue
│   │   │       ├── mask-closable.demo.vue
│   │   │       ├── mask-visible.demo.vue
│   │   │       ├── nested-debug.demo.vue
│   │   │       ├── preset-card.demo.vue
│   │   │       ├── preset-confirm-slot.demo.vue
│   │   │       ├── preset-confirm.demo.vue
│   │   │       ├── raw-debug.demo.vue
│   │   │       ├── reactive.demo.vue
│   │   │       └── transform-origin.demo.vue
│   │   ├── index.ts
│   │   ├── src/
│   │   │   ├── BodyWrapper.tsx
│   │   │   ├── Modal.tsx
│   │   │   ├── ModalEnvironment.tsx
│   │   │   ├── ModalProvider.ts
│   │   │   ├── composables.ts
│   │   │   ├── context.ts
│   │   │   ├── interface.ts
│   │   │   ├── presetProps.ts
│   │   │   └── styles/
│   │   │       └── index.cssr.ts
│   │   ├── styles/
│   │   │   ├── dark.ts
│   │   │   ├── index.ts
│   │   │   └── light.ts
│   │   └── tests/
│   │       ├── Modal.spec.tsx
│   │       └── server.spec.tsx
│   ├── notification/
│   │   ├── demos/
│   │   │   ├── enUS/
│   │   │   │   ├── basic.demo.vue
│   │   │   │   ├── change-content.demo.vue
│   │   │   │   ├── closable.demo.vue
│   │   │   │   ├── duration.demo.vue
│   │   │   │   ├── index.demo-entry.md
│   │   │   │   ├── max.demo.vue
│   │   │   │   ├── placement.demo.vue
│   │   │   │   ├── scrollable.demo.vue
│   │   │   │   └── type.demo.vue
│   │   │   └── zhCN/
│   │   │       ├── basic.demo.vue
│   │   │       ├── change-content.demo.vue
│   │   │       ├── closable.demo.vue
│   │   │       ├── duration.demo.vue
│   │   │       ├── error-debug.demo.vue
│   │   │       ├── index.demo-entry.md
│   │   │       ├── max.demo.vue
│   │   │       ├── placement.demo.vue
│   │   │       ├── rtl-debug.demo.vue
│   │   │       ├── scrollable.demo.vue
│   │   │       └── type.demo.vue
│   │   ├── index.ts
│   │   ├── src/
│   │   │   ├── Notification.tsx
│   │   │   ├── NotificationContainer.tsx
│   │   │   ├── NotificationEnvironment.tsx
│   │   │   ├── NotificationProvider.tsx
│   │   │   ├── context.ts
│   │   │   ├── styles/
│   │   │   │   ├── index.cssr.ts
│   │   │   │   └── rtl.cssr.ts
│   │   │   └── use-notification.ts
│   │   ├── styles/
│   │   │   ├── _common.ts
│   │   │   ├── dark.ts
│   │   │   ├── index.ts
│   │   │   ├── light.ts
│   │   │   └── rtl.ts
│   │   └── tests/
│   │       └── Notification.spec.tsx
│   ├── number-animation/
│   │   ├── demos/
│   │   │   ├── enUS/
│   │   │   │   ├── basic.demo.vue
│   │   │   │   ├── finish.demo.vue
│   │   │   │   ├── index.demo-entry.md
│   │   │   │   ├── intl.demo.vue
│   │   │   │   ├── precision.demo.vue
│   │   │   │   └── separator.demo.vue
│   │   │   └── zhCN/
│   │   │       ├── basic.demo.vue
│   │   │       ├── finish.demo.vue
│   │   │       ├── index.demo-entry.md
│   │   │       ├── intl.demo.vue
│   │   │       ├── precision.demo.vue
│   │   │       └── separator.demo.vue
│   │   ├── index.ts
│   │   ├── src/
│   │   │   ├── NumberAnimation.tsx
│   │   │   └── utils.ts
│   │   └── tests/
│   │       ├── NumericAnimation.spec.ts
│   │       └── server.spec.tsx
│   ├── page-header/
│   │   ├── demos/
│   │   │   ├── enUS/
│   │   │   │   ├── basic.demo.vue
│   │   │   │   └── index.demo-entry.md
│   │   │   └── zhCN/
│   │   │       ├── basic.demo.vue
│   │   │       ├── index.demo-entry.md
│   │   │       └── rtl-debug.demo.vue
│   │   ├── index.ts
│   │   ├── src/
│   │   │   ├── PageHeader.tsx
│   │   │   └── styles/
│   │   │       ├── index.cssr.ts
│   │   │       └── rtl.cssr.ts
│   │   ├── styles/
│   │   │   ├── _common.ts
│   │   │   ├── dark.ts
│   │   │   ├── index.ts
│   │   │   ├── light.ts
│   │   │   └── rtl.ts
│   │   └── tests/
│   │       ├── PageHeader.spec.tsx
│   │       └── server.spec.tsx
│   ├── pagination/
│   │   ├── demos/
│   │   │   ├── enUS/
│   │   │   │   ├── basic.demo.vue
│   │   │   │   ├── disabled.demo.vue
│   │   │   │   ├── index.demo-entry.md
│   │   │   │   ├── item-count.demo.vue
│   │   │   │   ├── page-size-option.demo.vue
│   │   │   │   ├── prefix.demo.vue
│   │   │   │   ├── prev.demo.vue
│   │   │   │   ├── quick-jumper.demo.vue
│   │   │   │   ├── simple.demo.vue
│   │   │   │   ├── size-picker.demo.vue
│   │   │   │   ├── size.demo.vue
│   │   │   │   └── slot.demo.vue
│   │   │   └── zhCN/
│   │   │       ├── basic.demo.vue
│   │   │       ├── disabled.demo.vue
│   │   │       ├── display-order.demo.vue
│   │   │       ├── index.demo-entry.md
│   │   │       ├── item-count.demo.vue
│   │   │       ├── page-size-option.demo.vue
│   │   │       ├── prefix.demo.vue
│   │   │       ├── prev.demo.vue
│   │   │       ├── quick-jumper.demo.vue
│   │   │       ├── rtl-debug.demo.vue
│   │   │       ├── simple.demo.vue
│   │   │       ├── size-picker.demo.vue
│   │   │       ├── size.demo.vue
│   │   │       └── slot.demo.vue
│   │   ├── index.ts
│   │   ├── src/
│   │   │   ├── Pagination.tsx
│   │   │   ├── interface.ts
│   │   │   ├── public-types.ts
│   │   │   ├── styles/
│   │   │   │   ├── index.cssr.ts
│   │   │   │   └── rtl.cssr.ts
│   │   │   └── utils.ts
│   │   ├── styles/
│   │   │   ├── _common.ts
│   │   │   ├── dark.ts
│   │   │   ├── index.ts
│   │   │   ├── light.ts
│   │   │   └── rtl.ts
│   │   └── tests/
│   │       ├── Pagination.spec.tsx
│   │       ├── server.spec.tsx
│   │       └── utils.spec.ts
│   ├── popconfirm/
│   │   ├── demos/
│   │   │   ├── enUS/
│   │   │   │   ├── actions.demo.vue
│   │   │   │   ├── basic.demo.vue
│   │   │   │   ├── custom-action.demo.vue
│   │   │   │   ├── custom-icon.demo.vue
│   │   │   │   ├── event.demo.vue
│   │   │   │   ├── index.demo-entry.md
│   │   │   │   └── no-icon.demo.vue
│   │   │   └── zhCN/
│   │   │       ├── actions.demo.vue
│   │   │       ├── basic.demo.vue
│   │   │       ├── custom-action.demo.vue
│   │   │       ├── custom-icon.demo.vue
│   │   │       ├── event.demo.vue
│   │   │       ├── index.demo-entry.md
│   │   │       └── no-icon.demo.vue
│   │   ├── index.ts
│   │   ├── src/
│   │   │   ├── Popconfirm.tsx
│   │   │   ├── PopconfirmPanel.tsx
│   │   │   ├── interface.ts
│   │   │   └── styles/
│   │   │       └── index.cssr.ts
│   │   ├── styles/
│   │   │   ├── _common.ts
│   │   │   ├── dark.ts
│   │   │   ├── index.ts
│   │   │   └── light.ts
│   │   └── tests/
│   │       ├── Popconfirm.spec.ts
│   │       └── server.spec.tsx
│   ├── popover/
│   │   ├── demos/
│   │   │   ├── enUS/
│   │   │   │   ├── basic.demo.vue
│   │   │   │   ├── delay.demo.vue
│   │   │   │   ├── event.demo.vue
│   │   │   │   ├── flip.demo.vue
│   │   │   │   ├── index.demo-entry.md
│   │   │   │   ├── manual-position.demo.vue
│   │   │   │   ├── no-arrow.demo.vue
│   │   │   │   ├── placement.demo.vue
│   │   │   │   ├── raw-content.demo.vue
│   │   │   │   ├── slots.demo.vue
│   │   │   │   ├── style.demo.vue
│   │   │   │   ├── trigger-width.demo.vue
│   │   │   │   └── trigger.demo.vue
│   │   │   └── zhCN/
│   │   │       ├── basic.demo.vue
│   │   │       ├── center-arrow-debug.demo.vue
│   │   │       ├── delay.demo.vue
│   │   │       ├── event.demo.vue
│   │   │       ├── flip.demo.vue
│   │   │       ├── hoist-debug.demo.vue
│   │   │       ├── index.demo-entry.md
│   │   │       ├── manual-position.demo.vue
│   │   │       ├── nested-debug.demo.vue
│   │   │       ├── nested2-debug.demo.vue
│   │   │       ├── nested3-debug.demo.vue
│   │   │       ├── no-arrow.demo.vue
│   │   │       ├── placement.demo.vue
│   │   │       ├── raw-content.demo.vue
│   │   │       ├── rtl-debug.demo.vue
│   │   │       ├── slots.demo.vue
│   │   │       ├── style.demo.vue
│   │   │       ├── trigger-width.demo.vue
│   │   │       ├── trigger.demo.vue
│   │   │       ├── width-debug.demo.vue
│   │   │       └── zindex-debug.demo.vue
│   │   ├── index.ts
│   │   ├── src/
│   │   │   ├── Popover.tsx
│   │   │   ├── PopoverBody.tsx
│   │   │   ├── interface.ts
│   │   │   └── styles/
│   │   │       ├── index.cssr.ts
│   │   │       └── rtl.cssr.ts
│   │   ├── styles/
│   │   │   ├── _common.ts
│   │   │   ├── dark.ts
│   │   │   ├── index.ts
│   │   │   ├── light.ts
│   │   │   └── rtl.ts
│   │   └── tests/
│   │       ├── Popover.spec.tsx
│   │       └── server.spec.tsx
│   ├── popselect/
│   │   ├── demos/
│   │   │   ├── enUS/
│   │   │   │   ├── basic.demo.vue
│   │   │   │   ├── cancelable.demo.vue
│   │   │   │   ├── index.demo-entry.md
│   │   │   │   ├── multiple.demo.vue
│   │   │   │   ├── scrollable.demo.vue
│   │   │   │   ├── size.demo.vue
│   │   │   │   └── slot.demo.vue
│   │   │   └── zhCN/
│   │   │       ├── basic.demo.vue
│   │   │       ├── cancelable.demo.vue
│   │   │       ├── index.demo-entry.md
│   │   │       ├── multiple.demo.vue
│   │   │       ├── scrollable.demo.vue
│   │   │       ├── size.demo.vue
│   │   │       └── slot.demo.vue
│   │   ├── index.ts
│   │   ├── src/
│   │   │   ├── Popselect.tsx
│   │   │   ├── PopselectPanel.tsx
│   │   │   ├── interface.ts
│   │   │   ├── public-types.ts
│   │   │   └── styles/
│   │   │       └── index.cssr.ts
│   │   ├── styles/
│   │   │   ├── dark.ts
│   │   │   ├── index.ts
│   │   │   └── light.ts
│   │   └── tests/
│   │       ├── Popselect.spec.ts
│   │       └── server.spec.tsx
│   ├── preset.ts
│   ├── progress/
│   │   ├── demos/
│   │   │   ├── enUS/
│   │   │   │   ├── circle-offset.demo.vue
│   │   │   │   ├── circle.demo.vue
│   │   │   │   ├── color.demo.vue
│   │   │   │   ├── custom-indicator.demo.vue
│   │   │   │   ├── dashboard.demo.vue
│   │   │   │   ├── gradient.demo.vue
│   │   │   │   ├── height.demo.vue
│   │   │   │   ├── index.demo-entry.md
│   │   │   │   ├── line.demo.vue
│   │   │   │   ├── multiple-circle.demo.vue
│   │   │   │   ├── no-indicator.demo.vue
│   │   │   │   └── processing.demo.vue
│   │   │   └── zhCN/
│   │   │       ├── circle-offset.demo.vue
│   │   │       ├── circle.demo.vue
│   │   │       ├── color.demo.vue
│   │   │       ├── custom-indicator.demo.vue
│   │   │       ├── dashboard.demo.vue
│   │   │       ├── gradient.demo.vue
│   │   │       ├── height.demo.vue
│   │   │       ├── index.demo-entry.md
│   │   │       ├── line.demo.vue
│   │   │       ├── multiple-circle.demo.vue
│   │   │       ├── no-indicator.demo.vue
│   │   │       └── processing.demo.vue
│   │   ├── index.ts
│   │   ├── src/
│   │   │   ├── Circle.tsx
│   │   │   ├── Line.tsx
│   │   │   ├── MultipleCircle.tsx
│   │   │   ├── Progress.tsx
│   │   │   ├── public-types.ts
│   │   │   └── styles/
│   │   │       └── index.cssr.ts
│   │   ├── styles/
│   │   │   ├── dark.ts
│   │   │   ├── index.ts
│   │   │   └── light.ts
│   │   └── tests/
│   │       ├── Progress.spec.ts
│   │       └── server.spec.tsx
│   ├── qr-code/
│   │   ├── demos/
│   │   │   ├── enUS/
│   │   │   │   ├── basic.demo.vue
│   │   │   │   ├── color.demo.vue
│   │   │   │   ├── download.demo.vue
│   │   │   │   ├── error-correction.demo.vue
│   │   │   │   ├── icon.demo.vue
│   │   │   │   ├── index.demo-entry.md
│   │   │   │   ├── size.demo.vue
│   │   │   │   └── type.demo.vue
│   │   │   └── zhCN/
│   │   │       ├── basic.demo.vue
│   │   │       ├── color.demo.vue
│   │   │       ├── download.demo.vue
│   │   │       ├── error-correction.demo.vue
│   │   │       ├── icon.demo.vue
│   │   │       ├── index.demo-entry.md
│   │   │       ├── size.demo.vue
│   │   │       └── type.demo.vue
│   │   ├── index.ts
│   │   ├── src/
│   │   │   ├── QrCode.tsx
│   │   │   ├── qrcodegen.ts
│   │   │   └── styles/
│   │   │       └── index.cssr.ts
│   │   └── styles/
│   │       ├── dark.ts
│   │       ├── index.ts
│   │       └── light.ts
│   ├── radio/
│   │   ├── demos/
│   │   │   ├── enUS/
│   │   │   │   ├── basic.demo.vue
│   │   │   │   ├── button-group.demo.vue
│   │   │   │   ├── group.demo.vue
│   │   │   │   ├── index.demo-entry.md
│   │   │   │   └── size.demo.vue
│   │   │   └── zhCN/
│   │   │       ├── basic.demo.vue
│   │   │       ├── button-group.demo.vue
│   │   │       ├── group.demo.vue
│   │   │       ├── index.demo-entry.md
│   │   │       ├── radio-focus-debug.demo.vue
│   │   │       ├── rtl-debug.demo.vue
│   │   │       ├── size.demo.vue
│   │   │       ├── tooltip-debug.demo.vue
│   │   │       └── uncontrolled-debug.demo.vue
│   │   ├── index.ts
│   │   ├── src/
│   │   │   ├── Radio.tsx
│   │   │   ├── RadioButton.tsx
│   │   │   ├── RadioGroup.tsx
│   │   │   ├── interface.ts
│   │   │   ├── public-types.ts
│   │   │   ├── styles/
│   │   │   │   ├── radio-group.cssr.ts
│   │   │   │   ├── radio.cssr.ts
│   │   │   │   └── rtl.cssr.ts
│   │   │   └── use-radio.ts
│   │   ├── styles/
│   │   │   ├── _common.ts
│   │   │   ├── dark.ts
│   │   │   ├── index.ts
│   │   │   ├── light.ts
│   │   │   └── rtl.ts
│   │   └── tests/
│   │       ├── Radio.spec.ts
│   │       ├── __snapshots__/
│   │       │   └── Radio.spec.ts.snap
│   │       └── server.spec.tsx
│   ├── rate/
│   │   ├── demos/
│   │   │   ├── enUS/
│   │   │   │   ├── allow-half.demo.vue
│   │   │   │   ├── basic.demo.vue
│   │   │   │   ├── clearable.demo.vue
│   │   │   │   ├── color.demo.vue
│   │   │   │   ├── icon.demo.vue
│   │   │   │   ├── index.demo-entry.md
│   │   │   │   ├── readonly.demo.vue
│   │   │   │   └── size.demo.vue
│   │   │   └── zhCN/
│   │   │       ├── allow-half.demo.vue
│   │   │       ├── basic.demo.vue
│   │   │       ├── clearable.demo.vue
│   │   │       ├── color.demo.vue
│   │   │       ├── icon.demo.vue
│   │   │       ├── index.demo-entry.md
│   │   │       ├── readonly.demo.vue
│   │   │       └── size.demo.vue
│   │   ├── index.ts
│   │   ├── src/
│   │   │   ├── Rate.tsx
│   │   │   ├── StarIcon.tsx
│   │   │   ├── interface.ts
│   │   │   ├── public-types.ts
│   │   │   └── styles/
│   │   │       └── index.cssr.ts
│   │   ├── styles/
│   │   │   ├── dark.ts
│   │   │   ├── index.ts
│   │   │   └── light.ts
│   │   └── tests/
│   │       ├── Rate.spec.ts
│   │       ├── __snapshots__/
│   │       │   └── Rate.spec.ts.snap
│   │       └── server.spec.tsx
│   ├── result/
│   │   ├── demos/
│   │   │   ├── enUS/
│   │   │   │   ├── custom.demo.vue
│   │   │   │   ├── error.demo.vue
│   │   │   │   ├── index.demo-entry.md
│   │   │   │   ├── info.demo.vue
│   │   │   │   ├── s-403.demo.vue
│   │   │   │   ├── s-404.demo.vue
│   │   │   │   ├── s-418.demo.vue
│   │   │   │   ├── s-500.demo.vue
│   │   │   │   ├── size.demo.vue
│   │   │   │   ├── success.demo.vue
│   │   │   │   └── warning.demo.vue
│   │   │   └── zhCN/
│   │   │       ├── custom.demo.vue
│   │   │       ├── error.demo.vue
│   │   │       ├── index.demo-entry.md
│   │   │       ├── info.demo.vue
│   │   │       ├── s-403.demo.vue
│   │   │       ├── s-404.demo.vue
│   │   │       ├── s-418.demo.vue
│   │   │       ├── s-500.demo.vue
│   │   │       ├── size.demo.vue
│   │   │       ├── success.demo.vue
│   │   │       └── warning.demo.vue
│   │   ├── index.ts
│   │   ├── src/
│   │   │   ├── 403.tsx
│   │   │   ├── 404.tsx
│   │   │   ├── 418.tsx
│   │   │   ├── 500.tsx
│   │   │   ├── Result.tsx
│   │   │   ├── public-types.ts
│   │   │   └── styles/
│   │   │       └── index.cssr.ts
│   │   ├── styles/
│   │   │   ├── _common.ts
│   │   │   ├── dark.ts
│   │   │   ├── index.ts
│   │   │   └── light.ts
│   │   └── tests/
│   │       ├── Result.spec.ts
│   │       ├── __snapshots__/
│   │       │   └── Result.spec.ts.snap
│   │       └── server.spec.tsx
│   ├── scrollbar/
│   │   ├── demos/
│   │   │   ├── enUS/
│   │   │   │   ├── basic.demo.vue
│   │   │   │   ├── custom.demo.vue
│   │   │   │   ├── index.demo-entry.md
│   │   │   │   ├── no-sync.demo.vue
│   │   │   │   ├── placement.demo.vue
│   │   │   │   ├── trigger.demo.vue
│   │   │   │   └── x.demo.vue
│   │   │   └── zhCN/
│   │   │       ├── basic.demo.vue
│   │   │       ├── custom.demo.vue
│   │   │       ├── index.demo-entry.md
│   │   │       ├── no-sync.demo.vue
│   │   │       ├── placement.demo.vue
│   │   │       ├── rtl-debug.demo.vue
│   │   │       ├── trigger.demo.vue
│   │   │       └── x.demo.vue
│   │   ├── index.ts
│   │   ├── src/
│   │   │   └── Scrollbar.tsx
│   │   └── tests/
│   │       ├── Scrollbar.spec.ts
│   │       └── server.spec.tsx
│   ├── select/
│   │   ├── demos/
│   │   │   ├── enUS/
│   │   │   │   ├── action.demo.vue
│   │   │   │   ├── add-tooltip.demo.vue
│   │   │   │   ├── basic.demo.vue
│   │   │   │   ├── clearable.demo.vue
│   │   │   │   ├── custom-field.demo.vue
│   │   │   │   ├── custom-option.demo.vue
│   │   │   │   ├── custom-suffix.demo.vue
│   │   │   │   ├── events.demo.vue
│   │   │   │   ├── fallback-option.demo.vue
│   │   │   │   ├── filterable.demo.vue
│   │   │   │   ├── focus.demo.vue
│   │   │   │   ├── group.demo.vue
│   │   │   │   ├── index.demo-entry.md
│   │   │   │   ├── many-options.demo.vue
│   │   │   │   ├── max-tag-count.demo.vue
│   │   │   │   ├── menu-width.demo.vue
│   │   │   │   ├── multiple.demo.vue
│   │   │   │   ├── remote-multiple.demo.vue
│   │   │   │   ├── remote.demo.vue
│   │   │   │   ├── render-person.demo.vue
│   │   │   │   ├── render-tag.demo.vue
│   │   │   │   ├── scroll-event.demo.vue
│   │   │   │   ├── size.demo.vue
│   │   │   │   ├── status.demo.vue
│   │   │   │   ├── tag-input.demo.vue
│   │   │   │   └── tag.demo.vue
│   │   │   └── zhCN/
│   │   │       ├── action.demo.vue
│   │   │       ├── add-tooltip.demo.vue
│   │   │       ├── basic.demo.vue
│   │   │       ├── clearable.demo.vue
│   │   │       ├── create-debug.demo.vue
│   │   │       ├── custom-field.demo.vue
│   │   │       ├── custom-option.demo.vue
│   │   │       ├── custom-suffix.demo.vue
│   │   │       ├── empty-debug.demo.vue
│   │   │       ├── events.demo.vue
│   │   │       ├── fallback-option.demo.vue
│   │   │       ├── filterable-debug.demo.vue
│   │   │       ├── filterable.demo.vue
│   │   │       ├── focus.demo.vue
│   │   │       ├── fullscreen-debug.demo.vue
│   │   │       ├── group.demo.vue
│   │   │       ├── index.demo-entry.md
│   │   │       ├── many-options.demo.vue
│   │   │       ├── max-tag-count.demo.vue
│   │   │       ├── menu-debug.demo.vue
│   │   │       ├── menu-width.demo.vue
│   │   │       ├── multiple.demo.vue
│   │   │       ├── options-change-debug.demo.vue
│   │   │       ├── placeholder-debug.demo.vue
│   │   │       ├── remote-multiple.demo.vue
│   │   │       ├── remote.demo.vue
│   │   │       ├── render-debug.demo.vue
│   │   │       ├── render-person.demo.vue
│   │   │       ├── render-tag.demo.vue
│   │   │       ├── rtl-debug.demo.vue
│   │   │       ├── scroll-event.demo.vue
│   │   │       ├── size.demo.vue
│   │   │       ├── spin-debug.demo.vue
│   │   │       ├── status.demo.vue
│   │   │       ├── tag-input.demo.vue
│   │   │       └── tag.demo.vue
│   │   ├── index.ts
│   │   ├── src/
│   │   │   ├── Select.tsx
│   │   │   ├── interface.ts
│   │   │   ├── public-types.ts
│   │   │   ├── styles/
│   │   │   │   └── index.cssr.ts
│   │   │   └── utils.ts
│   │   ├── styles/
│   │   │   ├── dark.ts
│   │   │   ├── index.ts
│   │   │   ├── light.ts
│   │   │   └── rtl.ts
│   │   └── tests/
│   │       ├── Select.spec.tsx
│   │       ├── __snapshots__/
│   │       │   └── Select.spec.tsx.snap
│   │       └── server.spec.tsx
│   ├── shims-vue.d.ts
│   ├── skeleton/
│   │   ├── demos/
│   │   │   ├── enUS/
│   │   │   │   ├── basic.demo.vue
│   │   │   │   ├── box.demo.vue
│   │   │   │   ├── index.demo-entry.md
│   │   │   │   └── size.demo.vue
│   │   │   └── zhCN/
│   │   │       ├── basic.demo.vue
│   │   │       ├── box.demo.vue
│   │   │       ├── index.demo-entry.md
│   │   │       └── size.demo.vue
│   │   ├── index.ts
│   │   ├── src/
│   │   │   ├── Skeleton.tsx
│   │   │   ├── bug.md
│   │   │   ├── public-types.ts
│   │   │   └── styles/
│   │   │       └── index.cssr.ts
│   │   ├── styles/
│   │   │   ├── dark.ts
│   │   │   ├── index.ts
│   │   │   └── light.ts
│   │   └── tests/
│   │       ├── Skeleton.spec.tsx
│   │       ├── __snapshots__/
│   │       │   └── Skeleton.spec.tsx.snap
│   │       └── server.spec.tsx
│   ├── slider/
│   │   ├── demos/
│   │   │   ├── enUS/
│   │   │   │   ├── basic.demo.vue
│   │   │   │   ├── custom-marks.demo.vue
│   │   │   │   ├── custom-thumb.demo.vue
│   │   │   │   ├── disable-tooltip.demo.vue
│   │   │   │   ├── disabled.demo.vue
│   │   │   │   ├── format.demo.vue
│   │   │   │   ├── index.demo-entry.md
│   │   │   │   ├── mark.demo.vue
│   │   │   │   ├── multiple-debug.demo.vue
│   │   │   │   ├── range.demo.vue
│   │   │   │   ├── restrict-selectable-values.demo.vue
│   │   │   │   ├── reverse.demo.vue
│   │   │   │   ├── show-tooltip.demo.vue
│   │   │   │   └── vertical.demo.vue
│   │   │   └── zhCN/
│   │   │       ├── basic.demo.vue
│   │   │       ├── custom-marks.demo.vue
│   │   │       ├── custom-thumb.demo.vue
│   │   │       ├── disable-tooltip.demo.vue
│   │   │       ├── disabled.demo.vue
│   │   │       ├── format.demo.vue
│   │   │       ├── index.demo-entry.md
│   │   │       ├── keyboard-debug.demo.vue
│   │   │       ├── mark.demo.vue
│   │   │       ├── multiple-debug.demo.vue
│   │   │       ├── range.demo.vue
│   │   │       ├── restrict-selectable-values.demo.vue
│   │   │       ├── reverse.demo.vue
│   │   │       ├── show-tooltip.demo.vue
│   │   │       └── vertical.demo.vue
│   │   ├── index.ts
│   │   ├── src/
│   │   │   ├── Slider.tsx
│   │   │   ├── interface.ts
│   │   │   ├── styles/
│   │   │   │   └── index.cssr.ts
│   │   │   └── utils.ts
│   │   ├── styles/
│   │   │   ├── _common.ts
│   │   │   ├── dark.ts
│   │   │   ├── index.ts
│   │   │   └── light.ts
│   │   └── tests/
│   │       ├── Slider.spec.ts
│   │       └── server.spec.tsx
│   ├── space/
│   │   ├── demos/
│   │   │   ├── enUS/
│   │   │   │   ├── basic.demo.vue
│   │   │   │   ├── center.demo.vue
│   │   │   │   ├── from-end.demo.vue
│   │   │   │   ├── index.demo-entry.md
│   │   │   │   ├── reverse.demo.vue
│   │   │   │   ├── space-around.demo.vue
│   │   │   │   ├── space-between.demo.vue
│   │   │   │   └── vertical.demo.vue
│   │   │   └── zhCN/
│   │   │       ├── basic.demo.vue
│   │   │       ├── center.demo.vue
│   │   │       ├── from-end.demo.vue
│   │   │       ├── grid-debug.demo.vue
│   │   │       ├── index.demo-entry.md
│   │   │       ├── reverse.demo.vue
│   │   │       ├── rtl-debug.demo.vue
│   │   │       ├── space-around.demo.vue
│   │   │       ├── space-between.demo.vue
│   │   │       └── vertical.demo.vue
│   │   ├── index.ts
│   │   ├── src/
│   │   │   ├── Space.tsx
│   │   │   ├── public-types.ts
│   │   │   ├── styles/
│   │   │   │   └── rtl.cssr.ts
│   │   │   └── utils.ts
│   │   ├── styles/
│   │   │   ├── _common.ts
│   │   │   ├── dark.ts
│   │   │   ├── index.ts
│   │   │   ├── light.ts
│   │   │   └── rtl.ts
│   │   └── tests/
│   │       ├── Space.spec.tsx
│   │       ├── __snapshots__/
│   │       │   └── Space.spec.tsx.snap
│   │       └── server.spec.tsx
│   ├── spin/
│   │   ├── demos/
│   │   │   ├── enUS/
│   │   │   │   ├── basic.demo.vue
│   │   │   │   ├── customize-icon.demo.vue
│   │   │   │   ├── delay.demo.vue
│   │   │   │   ├── description.demo.vue
│   │   │   │   ├── index.demo-entry.md
│   │   │   │   └── wrap.demo.vue
│   │   │   └── zhCN/
│   │   │       ├── basic.demo.vue
│   │   │       ├── blocking-debug.demo.vue
│   │   │       ├── customize-icon.demo.vue
│   │   │       ├── delay.demo.vue
│   │   │       ├── description.demo.vue
│   │   │       ├── index.demo-entry.md
│   │   │       └── wrap.demo.vue
│   │   ├── index.ts
│   │   ├── src/
│   │   │   ├── Spin.tsx
│   │   │   └── styles/
│   │   │       └── index.cssr.ts
│   │   ├── styles/
│   │   │   ├── dark.ts
│   │   │   ├── index.ts
│   │   │   └── light.ts
│   │   └── tests/
│   │       ├── Spin.spec.ts
│   │       ├── __snapshots__/
│   │       │   └── Spin.spec.ts.snap
│   │       └── server.spec.tsx
│   ├── split/
│   │   ├── demos/
│   │   │   ├── enUS/
│   │   │   │   ├── basic.demo.vue
│   │   │   │   ├── controlled.demo.vue
│   │   │   │   ├── event.demo.vue
│   │   │   │   ├── index.demo-entry.md
│   │   │   │   ├── nest.demo.vue
│   │   │   │   ├── slot.demo.vue
│   │   │   │   └── vertical.demo.vue
│   │   │   └── zhCN/
│   │   │       ├── basic.demo.vue
│   │   │       ├── controlled.demo.vue
│   │   │       ├── event.demo.vue
│   │   │       ├── index.demo-entry.md
│   │   │       ├── nest.demo.vue
│   │   │       ├── pixel-value.demo.vue
│   │   │       ├── slot.demo.vue
│   │   │       └── vertical.demo.vue
│   │   ├── index.ts
│   │   ├── src/
│   │   │   ├── Split.tsx
│   │   │   ├── styles/
│   │   │   │   └── index.cssr.ts
│   │   │   └── types.ts
│   │   └── styles/
│   │       ├── dark.ts
│   │       ├── index.ts
│   │       └── light.ts
│   ├── statistic/
│   │   ├── demos/
│   │   │   ├── enUS/
│   │   │   │   ├── basic.demo.vue
│   │   │   │   └── index.demo-entry.md
│   │   │   └── zhCN/
│   │   │       ├── basic.demo.vue
│   │   │       ├── index.demo-entry.md
│   │   │       └── rtl-debug.demo.vue
│   │   ├── index.ts
│   │   ├── src/
│   │   │   ├── Statistic.tsx
│   │   │   └── styles/
│   │   │       ├── index.cssr.ts
│   │   │       └── rtl.cssr.ts
│   │   ├── styles/
│   │   │   ├── dark.ts
│   │   │   ├── index.ts
│   │   │   ├── light.ts
│   │   │   └── rtl.ts
│   │   └── tests/
│   │       ├── Statistic.spec.ts
│   │       └── server.spec.tsx
│   ├── steps/
│   │   ├── demos/
│   │   │   ├── enUS/
│   │   │   │   ├── basic.demo.vue
│   │   │   │   ├── click.demo.vue
│   │   │   │   ├── content-placement.demo.vue
│   │   │   │   ├── content.demo.vue
│   │   │   │   ├── custom-icon.demo.vue
│   │   │   │   ├── index.demo-entry.md
│   │   │   │   ├── size.demo.vue
│   │   │   │   └── vertical.demo.vue
│   │   │   └── zhCN/
│   │   │       ├── basic.demo.vue
│   │   │       ├── click.demo.vue
│   │   │       ├── content-placement.demo.vue
│   │   │       ├── content.demo.vue
│   │   │       ├── custom-icon.demo.vue
│   │   │       ├── index.demo-entry.md
│   │   │       ├── rtl-debug.demo.vue
│   │   │       ├── size.demo.vue
│   │   │       ├── vertical-debug.demo.vue
│   │   │       └── vertical.demo.vue
│   │   ├── index.ts
│   │   ├── src/
│   │   │   ├── Step.tsx
│   │   │   ├── Steps.tsx
│   │   │   └── styles/
│   │   │       ├── index.cssr.ts
│   │   │       └── rtl.cssr.ts
│   │   ├── styles/
│   │   │   ├── _common.ts
│   │   │   ├── dark.ts
│   │   │   ├── index.ts
│   │   │   ├── light.ts
│   │   │   └── rtl.ts
│   │   └── tests/
│   │       ├── Steps.spec.ts
│   │       └── server.spec.tsx
│   ├── styles.ts
│   ├── switch/
│   │   ├── demos/
│   │   │   ├── enUS/
│   │   │   │   ├── basic.demo.vue
│   │   │   │   ├── color.demo.vue
│   │   │   │   ├── content.demo.vue
│   │   │   │   ├── customize-value.demo.vue
│   │   │   │   ├── event.demo.vue
│   │   │   │   ├── icon.demo.vue
│   │   │   │   ├── index.demo-entry.md
│   │   │   │   ├── loading.demo.vue
│   │   │   │   ├── shape.demo.vue
│   │   │   │   └── size.demo.vue
│   │   │   └── zhCN/
│   │   │       ├── basic.demo.vue
│   │   │       ├── color.demo.vue
│   │   │       ├── content.demo.vue
│   │   │       ├── customize-value.demo.vue
│   │   │       ├── event.demo.vue
│   │   │       ├── icon.demo.vue
│   │   │       ├── index.demo-entry.md
│   │   │       ├── loading.demo.vue
│   │   │       ├── shape.demo.vue
│   │   │       └── size.demo.vue
│   │   ├── index.ts
│   │   ├── src/
│   │   │   ├── Switch.tsx
│   │   │   ├── interface.ts
│   │   │   ├── public-types.ts
│   │   │   └── styles/
│   │   │       └── index.cssr.ts
│   │   ├── styles/
│   │   │   ├── _common.ts
│   │   │   ├── dark.ts
│   │   │   ├── index.ts
│   │   │   └── light.ts
│   │   └── tests/
│   │       ├── Switch.spec.tsx
│   │       ├── __snapshots__/
│   │       │   └── Switch.spec.tsx.snap
│   │       └── server.spec.tsx
│   ├── table/
│   │   ├── demos/
│   │   │   ├── enUS/
│   │   │   │   ├── basic.demo.vue
│   │   │   │   ├── bordered.demo.vue
│   │   │   │   ├── index.demo-entry.md
│   │   │   │   ├── single-column.demo.vue
│   │   │   │   ├── single-line.demo.vue
│   │   │   │   ├── size.demo.vue
│   │   │   │   └── striped.demo.vue
│   │   │   └── zhCN/
│   │   │       ├── basic.demo.vue
│   │   │       ├── bordered.demo.vue
│   │   │       ├── index.demo-entry.md
│   │   │       ├── rtl-debug.demo.vue
│   │   │       ├── single-column.demo.vue
│   │   │       ├── single-line.demo.vue
│   │   │       ├── size.demo.vue
│   │   │       └── striped.demo.vue
│   │   ├── index.ts
│   │   ├── src/
│   │   │   ├── Table.tsx
│   │   │   ├── Tbody.tsx
│   │   │   ├── Td.tsx
│   │   │   ├── Th.tsx
│   │   │   ├── Thead.tsx
│   │   │   ├── Tr.tsx
│   │   │   ├── public-types.ts
│   │   │   └── styles/
│   │   │       ├── index.cssr.ts
│   │   │       └── rtl.cssr.ts
│   │   ├── styles/
│   │   │   ├── _common.ts
│   │   │   ├── dark.ts
│   │   │   ├── index.ts
│   │   │   ├── light.ts
│   │   │   └── rtl.ts
│   │   └── tests/
│   │       ├── Table.spec.ts
│   │       ├── __snapshots__/
│   │       │   └── Table.spec.ts.snap
│   │       └── server.spec.tsx
│   ├── tabs/
│   │   ├── demos/
│   │   │   ├── enUS/
│   │   │   │   ├── addable.demo.vue
│   │   │   │   ├── bar-width.demo.vue
│   │   │   │   ├── basic.demo.vue
│   │   │   │   ├── before-leave.demo.vue
│   │   │   │   ├── card.demo.vue
│   │   │   │   ├── display-directive.demo.vue
│   │   │   │   ├── flex-label.demo.vue
│   │   │   │   ├── index.demo-entry.md
│   │   │   │   ├── no-pane.demo.vue
│   │   │   │   ├── placement.demo.vue
│   │   │   │   ├── prefix.demo.vue
│   │   │   │   ├── segment.demo.vue
│   │   │   │   ├── size.demo.vue
│   │   │   │   ├── trigger.demo.vue
│   │   │   │   └── update-bar-manually.demo.vue
│   │   │   └── zhCN/
│   │   │       ├── addable-debug.demo.vue
│   │   │       ├── addable.demo.vue
│   │   │       ├── animation-debug.demo.vue
│   │   │       ├── animationx-debug.demo.vue
│   │   │       ├── bar-width.demo.vue
│   │   │       ├── basic.demo.vue
│   │   │       ├── before-leave.demo.vue
│   │   │       ├── card.demo.vue
│   │   │       ├── display-directive.demo.vue
│   │   │       ├── flex-label.demo.vue
│   │   │       ├── index.demo-entry.md
│   │   │       ├── line-debug.demo.vue
│   │   │       ├── modal-debug.demo.vue
│   │   │       ├── no-pane.demo.vue
│   │   │       ├── none-debug.demo.vue
│   │   │       ├── placement.demo.vue
│   │   │       ├── prefix.demo.vue
│   │   │       ├── segment.demo.vue
│   │   │       ├── shadow-debug.demo.vue
│   │   │       ├── size.demo.vue
│   │   │       ├── style-inherit-debug.demo.vue
│   │   │       ├── trigger.demo.vue
│   │   │       ├── unkeyed-debug.demo.vue
│   │   │       └── update-bar-manually.demo.vue
│   │   ├── index.ts
│   │   ├── src/
│   │   │   ├── Tab.tsx
│   │   │   ├── TabPane.tsx
│   │   │   ├── Tabs.tsx
│   │   │   ├── interface.ts
│   │   │   ├── public-types.ts
│   │   │   └── styles/
│   │   │       └── index.cssr.ts
│   │   ├── styles/
│   │   │   ├── _common.ts
│   │   │   ├── dark.ts
│   │   │   ├── index.ts
│   │   │   └── light.ts
│   │   └── tests/
│   │       ├── Tabs.spec.tsx
│   │       ├── __snapshots__/
│   │       │   └── Tabs.spec.tsx.snap
│   │       └── server.spec.tsx
│   ├── tag/
│   │   ├── demos/
│   │   │   ├── enUS/
│   │   │   │   ├── avatar.demo.vue
│   │   │   │   ├── basic.demo.vue
│   │   │   │   ├── bordered.demo.vue
│   │   │   │   ├── checkable.demo.vue
│   │   │   │   ├── closable.demo.vue
│   │   │   │   ├── color.demo.vue
│   │   │   │   ├── disabled.demo.vue
│   │   │   │   ├── icon.demo.vue
│   │   │   │   ├── index.demo-entry.md
│   │   │   │   ├── shape.demo.vue
│   │   │   │   └── size.demo.vue
│   │   │   └── zhCN/
│   │   │       ├── avatar.demo.vue
│   │   │       ├── basic.demo.vue
│   │   │       ├── bordered.demo.vue
│   │   │       ├── checkable.demo.vue
│   │   │       ├── closable.demo.vue
│   │   │       ├── color.demo.vue
│   │   │       ├── disabled.demo.vue
│   │   │       ├── icon.demo.vue
│   │   │       ├── index.demo-entry.md
│   │   │       ├── rtl-debug.demo.vue
│   │   │       ├── shape.demo.vue
│   │   │       └── size.demo.vue
│   │   ├── index.ts
│   │   ├── src/
│   │   │   ├── Tag.tsx
│   │   │   ├── common-props.ts
│   │   │   ├── public-types.ts
│   │   │   └── styles/
│   │   │       ├── index.cssr.ts
│   │   │       └── rtl.cssr.ts
│   │   ├── styles/
│   │   │   ├── _common.ts
│   │   │   ├── dark.ts
│   │   │   ├── index.ts
│   │   │   ├── light.ts
│   │   │   └── rtl.ts
│   │   └── tests/
│   │       ├── Tag.spec.ts
│   │       ├── __snapshots__/
│   │       │   └── Tag.spec.ts.snap
│   │       └── server.spec.tsx
│   ├── theme-editor/
│   │   ├── index.ts
│   │   └── src/
│   │       ├── MaximizeIcon.tsx
│   │       ├── MinimizeIcon.tsx
│   │       └── ThemeEditor.tsx
│   ├── themes/
│   │   ├── dark.ts
│   │   ├── index.ts
│   │   ├── interface.ts
│   │   ├── light.ts
│   │   └── utils.ts
│   ├── thing/
│   │   ├── demos/
│   │   │   ├── enUS/
│   │   │   │   ├── basic.demo.vue
│   │   │   │   ├── indent.demo.vue
│   │   │   │   └── index.demo-entry.md
│   │   │   └── zhCN/
│   │   │       ├── basic.demo.vue
│   │   │       ├── indent.demo.vue
│   │   │       ├── index.demo-entry.md
│   │   │       └── rtl-debug.demo.vue
│   │   ├── index.ts
│   │   ├── src/
│   │   │   ├── Thing.tsx
│   │   │   └── styles/
│   │   │       ├── index.cssr.ts
│   │   │       └── rtl.cssr.ts
│   │   ├── styles/
│   │   │   ├── dark.ts
│   │   │   ├── index.ts
│   │   │   ├── light.ts
│   │   │   └── rtl.ts
│   │   └── tests/
│   │       ├── Thing.spec.ts
│   │       └── server.spec.tsx
│   ├── time/
│   │   ├── demos/
│   │   │   ├── enUS/
│   │   │   │   ├── basic.demo.vue
│   │   │   │   ├── format.demo.vue
│   │   │   │   ├── index.demo-entry.md
│   │   │   │   ├── relative.demo.vue
│   │   │   │   ├── timezone.demo.vue
│   │   │   │   ├── type.demo.vue
│   │   │   │   └── unix.demo.vue
│   │   │   └── zhCN/
│   │   │       ├── basic.demo.vue
│   │   │       ├── format.demo.vue
│   │   │       ├── index.demo-entry.md
│   │   │       ├── relative.demo.vue
│   │   │       ├── timezone-debug.demo.vue
│   │   │       ├── timezone.demo.vue
│   │   │       ├── type.demo.vue
│   │   │       └── unix.demo.vue
│   │   ├── index.ts
│   │   ├── src/
│   │   │   └── Time.ts
│   │   └── tests/
│   │       ├── Time.spec.ts
│   │       └── server.spec.tsx
│   ├── time-picker/
│   │   ├── demos/
│   │   │   ├── enUS/
│   │   │   │   ├── actions.demo.vue
│   │   │   │   ├── basic.demo.vue
│   │   │   │   ├── confirm.demo.vue
│   │   │   │   ├── disabled-time.demo.vue
│   │   │   │   ├── focus.demo.vue
│   │   │   │   ├── format.demo.vue
│   │   │   │   ├── formatted.demo.vue
│   │   │   │   ├── hours12.demo.vue
│   │   │   │   ├── index.demo-entry.md
│   │   │   │   ├── size.demo.vue
│   │   │   │   ├── status.demo.vue
│   │   │   │   ├── step-time.demo.vue
│   │   │   │   └── timezone.demo.vue
│   │   │   └── zhCN/
│   │   │       ├── actions.demo.vue
│   │   │       ├── basic.demo.vue
│   │   │       ├── confirm.demo.vue
│   │   │       ├── disabled-time.demo.vue
│   │   │       ├── focus.demo.vue
│   │   │       ├── format.demo.vue
│   │   │       ├── formatted.demo.vue
│   │   │       ├── hours12.demo.vue
│   │   │       ├── index.demo-entry.md
│   │   │       ├── size.demo.vue
│   │   │       ├── status.demo.vue
│   │   │       ├── step-time.demo.vue
│   │   │       ├── timezone-debug.demo.vue
│   │   │       └── timezone.demo.vue
│   │   ├── index.ts
│   │   ├── src/
│   │   │   ├── Panel.tsx
│   │   │   ├── PanelCol.tsx
│   │   │   ├── TimePicker.tsx
│   │   │   ├── interface.ts
│   │   │   ├── public-types.ts
│   │   │   ├── styles/
│   │   │   │   └── index.cssr.ts
│   │   │   └── utils.ts
│   │   ├── styles/
│   │   │   ├── _common.ts
│   │   │   ├── dark.ts
│   │   │   ├── index.ts
│   │   │   └── light.ts
│   │   └── tests/
│   │       ├── TimePicker.spec.ts
│   │       ├── __snapshots__/
│   │       │   └── TimePicker.spec.ts.snap
│   │       └── server.spec.tsx
│   ├── timeline/
│   │   ├── demos/
│   │   │   ├── enUS/
│   │   │   │   ├── basic.demo.vue
│   │   │   │   ├── customize-icon.demo.vue
│   │   │   │   ├── horizontal.demo.vue
│   │   │   │   ├── index.demo-entry.md
│   │   │   │   ├── item-placement.demo.vue
│   │   │   │   └── size.demo.vue
│   │   │   └── zhCN/
│   │   │       ├── basic.demo.vue
│   │   │       ├── customize-icon.demo.vue
│   │   │       ├── horizontal.demo.vue
│   │   │       ├── index.demo-entry.md
│   │   │       ├── item-placement.demo.vue
│   │   │       ├── nested-debug.demo.vue
│   │   │       └── size.demo.vue
│   │   ├── index.ts
│   │   ├── src/
│   │   │   ├── Timeline.tsx
│   │   │   ├── TimelineItem.tsx
│   │   │   └── styles/
│   │   │       └── index.cssr.ts
│   │   ├── styles/
│   │   │   ├── _common.ts
│   │   │   ├── dark.ts
│   │   │   ├── index.ts
│   │   │   └── light.ts
│   │   └── tests/
│   │       ├── Timeline.spec.ts
│   │       └── server.spec.tsx
│   ├── tooltip/
│   │   ├── demos/
│   │   │   ├── enUS/
│   │   │   │   ├── arrow.demo.vue
│   │   │   │   ├── basic.demo.vue
│   │   │   │   ├── body-style.demo.vue
│   │   │   │   ├── event.demo.vue
│   │   │   │   ├── index.demo-entry.md
│   │   │   │   ├── placement.demo.vue
│   │   │   │   └── trigger.demo.vue
│   │   │   └── zhCN/
│   │   │       ├── arrow.demo.vue
│   │   │       ├── basic.demo.vue
│   │   │       ├── body-style.demo.vue
│   │   │       ├── event.demo.vue
│   │   │       ├── index.demo-entry.md
│   │   │       ├── placement.demo.vue
│   │   │       ├── rtl-debug.demo.vue
│   │   │       └── trigger.demo.vue
│   │   ├── index.ts
│   │   ├── src/
│   │   │   └── Tooltip.ts
│   │   ├── styles/
│   │   │   ├── _common.ts
│   │   │   ├── dark.ts
│   │   │   ├── index.ts
│   │   │   └── light.ts
│   │   └── tests/
│   │       ├── Tooltip.spec.ts
│   │       └── server.spec.tsx
│   ├── transfer/
│   │   ├── demos/
│   │   │   ├── enUS/
│   │   │   │   ├── basic.demo.vue
│   │   │   │   ├── filterable.demo.vue
│   │   │   │   ├── index.demo-entry.md
│   │   │   │   ├── large-data.demo.vue
│   │   │   │   ├── render-label.demo.vue
│   │   │   │   ├── render-source-list.demo.vue
│   │   │   │   └── size.demo.vue
│   │   │   └── zhCN/
│   │   │       ├── asynchronous-options-debug.demo.vue
│   │   │       ├── basic.demo.vue
│   │   │       ├── filterable.demo.vue
│   │   │       ├── index.demo-entry.md
│   │   │       ├── large-data.demo.vue
│   │   │       ├── render-label.demo.vue
│   │   │       ├── render-source-list.demo.vue
│   │   │       ├── size.demo.vue
│   │   │       └── value-debug.demo.vue
│   │   ├── index.ts
│   │   ├── src/
│   │   │   ├── Transfer.tsx
│   │   │   ├── TransferFilter.tsx
│   │   │   ├── TransferHeader.tsx
│   │   │   ├── TransferList.tsx
│   │   │   ├── TransferListItem.tsx
│   │   │   ├── interface.ts
│   │   │   ├── public-types.ts
│   │   │   ├── styles/
│   │   │   │   └── index.cssr.ts
│   │   │   └── use-transfer-data.ts
│   │   ├── styles/
│   │   │   ├── _common.ts
│   │   │   ├── dark.ts
│   │   │   ├── index.ts
│   │   │   └── light.ts
│   │   └── tests/
│   │       ├── Transfer.spec.ts
│   │       ├── __snapshots__/
│   │       │   └── Transfer.spec.ts.snap
│   │       └── server.spec.tsx
│   ├── tree/
│   │   ├── demos/
│   │   │   ├── enUS/
│   │   │   │   ├── async.demo.vue
│   │   │   │   ├── basic.demo.vue
│   │   │   │   ├── batch-render.demo.vue
│   │   │   │   ├── cascade.demo.vue
│   │   │   │   ├── checkbox-placement.demo.vue
│   │   │   │   ├── custom-field.demo.vue
│   │   │   │   ├── disabled.demo.vue
│   │   │   │   ├── drag-drop.demo.vue
│   │   │   │   ├── file-tree.demo.vue
│   │   │   │   ├── filter.demo.vue
│   │   │   │   ├── index.demo-entry.md
│   │   │   │   ├── multiple.demo.vue
│   │   │   │   ├── node-props.demo.vue
│   │   │   │   ├── override-click-behavior.demo.vue
│   │   │   │   ├── prefix-and-suffix.demo.vue
│   │   │   │   ├── show-line.demo.vue
│   │   │   │   ├── switcher-icon.demo.vue
│   │   │   │   └── virtual.demo.vue
│   │   │   └── zhCN/
│   │   │       ├── async.demo.vue
│   │   │       ├── basic.demo.vue
│   │   │       ├── batch-render.demo.vue
│   │   │       ├── cascade.demo.vue
│   │   │       ├── change-debug.demo.vue
│   │   │       ├── check-strategy-debug.demo.vue
│   │   │       ├── checkbox-placement.demo.vue
│   │   │       ├── custom-field.demo.vue
│   │   │       ├── disabled.demo.vue
│   │   │       ├── drag-drop.demo.vue
│   │   │       ├── ellipsis.demo.vue
│   │   │       ├── expand-debug.demo.vue
│   │   │       ├── file-tree.demo.vue
│   │   │       ├── filter.demo.vue
│   │   │       ├── index.demo-entry.md
│   │   │       ├── multiple.demo.vue
│   │   │       ├── node-props.demo.vue
│   │   │       ├── override-click-behavior.demo.vue
│   │   │       ├── prefix-and-suffix.demo.vue
│   │   │       ├── rtl-debug.demo.vue
│   │   │       ├── scroll-debug.demo.vue
│   │   │       ├── scrollbar-debug.demo.vue
│   │   │       ├── show-line.demo.vue
│   │   │       ├── switcher-icon.demo.vue
│   │   │       └── virtual.demo.vue
│   │   ├── index.ts
│   │   ├── src/
│   │   │   ├── MotionWrapper.tsx
│   │   │   ├── Tree.tsx
│   │   │   ├── TreeNode.tsx
│   │   │   ├── TreeNodeCheckbox.tsx
│   │   │   ├── TreeNodeContent.tsx
│   │   │   ├── TreeNodeSwitcher.tsx
│   │   │   ├── dnd.tsx
│   │   │   ├── interface.ts
│   │   │   ├── keyboard.tsx
│   │   │   ├── public-types.ts
│   │   │   ├── styles/
│   │   │   │   ├── index.cssr.ts
│   │   │   │   └── rtl.cssr.ts
│   │   │   └── utils.ts
│   │   ├── styles/
│   │   │   ├── dark.ts
│   │   │   ├── index.ts
│   │   │   ├── light.ts
│   │   │   └── rtl.ts
│   │   └── tests/
│   │       ├── Tree.spec.ts
│   │       └── server.spec.tsx
│   ├── tree-select/
│   │   ├── demos/
│   │   │   ├── enUS/
│   │   │   │   ├── action.demo.vue
│   │   │   │   ├── async.demo.vue
│   │   │   │   ├── basic.demo.vue
│   │   │   │   ├── check-strategy.demo.vue
│   │   │   │   ├── checkbox.demo.vue
│   │   │   │   ├── custom-field.demo.vue
│   │   │   │   ├── debug.demo.vue
│   │   │   │   ├── file-picker.demo.vue
│   │   │   │   ├── filterable.demo.vue
│   │   │   │   ├── index.demo-entry.md
│   │   │   │   ├── multiple.demo.vue
│   │   │   │   ├── show-line.demo.vue
│   │   │   │   └── status.demo.vue
│   │   │   └── zhCN/
│   │   │       ├── action.demo.vue
│   │   │       ├── async.demo.vue
│   │   │       ├── basic.demo.vue
│   │   │       ├── check-strategy-debug.demo.vue
│   │   │       ├── check-strategy.demo.vue
│   │   │       ├── checkbox.demo.vue
│   │   │       ├── custom-field.demo.vue
│   │   │       ├── debug.demo.vue
│   │   │       ├── field-search-debug.demo.vue
│   │   │       ├── file-picker.demo.vue
│   │   │       ├── filterable.demo.vue
│   │   │       ├── index.demo-entry.md
│   │   │       ├── multiple.demo.vue
│   │   │       ├── render-debug.demo.vue
│   │   │       ├── rtl-debug.demo.vue
│   │   │       ├── show-line.demo.vue
│   │   │       └── status.demo.vue
│   │   ├── index.ts
│   │   ├── src/
│   │   │   ├── TreeSelect.tsx
│   │   │   ├── interface.ts
│   │   │   ├── public-types.ts
│   │   │   ├── styles/
│   │   │   │   └── index.cssr.ts
│   │   │   └── utils.ts
│   │   ├── styles/
│   │   │   ├── dark.ts
│   │   │   ├── index.ts
│   │   │   ├── light.ts
│   │   │   └── rtl.ts
│   │   └── tests/
│   │       ├── TreeSelect.spec.ts
│   │       └── server.spec.tsx
│   ├── tsconfig.cjs.json
│   ├── tsconfig.demo.json
│   ├── tsconfig.esm.json
│   ├── typography/
│   │   ├── demos/
│   │   │   ├── enUS/
│   │   │   │   ├── header.demo.vue
│   │   │   │   ├── index.demo-entry.md
│   │   │   │   ├── router-link.demo.vue
│   │   │   │   ├── tags.demo.vue
│   │   │   │   └── text.demo.vue
│   │   │   └── zhCN/
│   │   │       ├── header.demo.vue
│   │   │       ├── index.demo-entry.md
│   │   │       ├── router-link.demo.vue
│   │   │       ├── tags.demo.vue
│   │   │       └── text.demo.vue
│   │   ├── index.ts
│   │   ├── src/
│   │   │   ├── a.tsx
│   │   │   ├── blockquote.tsx
│   │   │   ├── create-header.ts
│   │   │   ├── headers.ts
│   │   │   ├── hr.tsx
│   │   │   ├── li.tsx
│   │   │   ├── ol.tsx
│   │   │   ├── p.tsx
│   │   │   ├── styles/
│   │   │   │   ├── a.cssr.ts
│   │   │   │   ├── blockquote.cssr.ts
│   │   │   │   ├── header.cssr.ts
│   │   │   │   ├── hr.cssr.ts
│   │   │   │   ├── list.cssr.ts
│   │   │   │   ├── p.cssr.ts
│   │   │   │   └── text.cssr.ts
│   │   │   ├── text.tsx
│   │   │   └── ul.tsx
│   │   ├── styles/
│   │   │   ├── _common.ts
│   │   │   ├── dark.ts
│   │   │   ├── index.ts
│   │   │   └── light.ts
│   │   └── tests/
│   │       ├── Typography.spec.ts
│   │       ├── __snapshots__/
│   │       │   └── Typography.spec.ts.snap
│   │       └── server.spec.tsx
│   ├── upload/
│   │   ├── demos/
│   │   │   ├── enUS/
│   │   │   │   ├── abstract.demo.vue
│   │   │   │   ├── basic.demo.vue
│   │   │   │   ├── before-upload.demo.vue
│   │   │   │   ├── controlled.demo.vue
│   │   │   │   ├── custom-download.demo.vue
│   │   │   │   ├── custom-request.demo.vue
│   │   │   │   ├── default-files.demo.vue
│   │   │   │   ├── download.demo.vue
│   │   │   │   ├── drag.demo.vue
│   │   │   │   ├── image-card-style.demo.vue
│   │   │   │   ├── image-style.demo.vue
│   │   │   │   ├── index.demo-entry.md
│   │   │   │   ├── on-finish.demo.vue
│   │   │   │   └── submit-manually.demo.vue
│   │   │   └── zhCN/
│   │   │       ├── abstract.demo.vue
│   │   │       ├── basic.demo.vue
│   │   │       ├── before-upload.demo.vue
│   │   │       ├── controlled.demo.vue
│   │   │       ├── custom-download.demo.vue
│   │   │       ├── custom-request.demo.vue
│   │   │       ├── debug.demo.vue
│   │   │       ├── default-files.demo.vue
│   │   │       ├── download.demo.vue
│   │   │       ├── drag.demo.vue
│   │   │       ├── image-card-style.demo.vue
│   │   │       ├── image-style.demo.vue
│   │   │       ├── index.demo-entry.md
│   │   │       ├── on-finish.demo.vue
│   │   │       ├── rtl-debug.demo.vue
│   │   │       └── submit-manually.demo.vue
│   │   ├── index.ts
│   │   ├── src/
│   │   │   ├── Upload.tsx
│   │   │   ├── UploadDragger.tsx
│   │   │   ├── UploadFile.tsx
│   │   │   ├── UploadFileList.tsx
│   │   │   ├── UploadProgress.tsx
│   │   │   ├── UploadTrigger.tsx
│   │   │   ├── icons.tsx
│   │   │   ├── interface.ts
│   │   │   ├── public-types.ts
│   │   │   ├── styles/
│   │   │   │   ├── index.cssr.ts
│   │   │   │   └── rtl.cssr.ts
│   │   │   └── utils.ts
│   │   ├── styles/
│   │   │   ├── dark.ts
│   │   │   ├── index.ts
│   │   │   ├── light.ts
│   │   │   └── rtl.ts
│   │   └── tests/
│   │       ├── Upload.spec.tsx
│   │       └── server.spec.tsx
│   ├── version.ts
│   ├── virtual-list/
│   │   ├── demos/
│   │   │   ├── enUS/
│   │   │   │   ├── basic.demo.vue
│   │   │   │   ├── dynamic-size.demo.vue
│   │   │   │   ├── index.demo-entry.md
│   │   │   │   ├── keep-alive.demo.vue
│   │   │   │   └── scroll.demo.vue
│   │   │   └── zhCN/
│   │   │       ├── basic.demo.vue
│   │   │       ├── dynamic-size.demo.vue
│   │   │       ├── index.demo-entry.md
│   │   │       ├── keep-alive.demo.vue
│   │   │       └── scroll.demo.vue
│   │   ├── index.ts
│   │   └── src/
│   │       └── VirtualList.tsx
│   ├── vitest-setup.ts
│   └── watermark/
│       ├── demos/
│       │   ├── enUS/
│       │   │   ├── basic.demo.vue
│       │   │   ├── custom.demo.vue
│       │   │   ├── fullscreen.demo.vue
│       │   │   ├── image.demo.vue
│       │   │   ├── index.demo-entry.md
│       │   │   └── multiline.demo.vue
│       │   └── zhCN/
│       │       ├── basic.demo.vue
│       │       ├── custom.demo.vue
│       │       ├── fullscreen.demo.vue
│       │       ├── image.demo.vue
│       │       ├── index.demo-entry.md
│       │       └── multiline.demo.vue
│       ├── index.ts
│       ├── src/
│       │   ├── Watermark.tsx
│       │   └── styles/
│       │       └── index.cssr.ts
│       ├── styles/
│       │   ├── dark.ts
│       │   ├── index.ts
│       │   └── light.ts
│       └── tests/
│           ├── Watermark.spec.ts
│           └── server.spec.tsx
├── test.html
├── themes/
│   └── tusimple/
│       ├── .npmignore
│       ├── README.md
│       ├── package.json
│       ├── src/
│       │   ├── TsConfigProvider.tsx
│       │   ├── data-table.tsx
│       │   ├── icons.tsx
│       │   ├── index.ts
│       │   ├── theme-overrides-dark.ts
│       │   ├── theme-overrides-light.ts
│       │   ├── unconfigurable-style-dark.ts
│       │   ├── unconfigurable-style-light.ts
│       │   ├── use-ts-dialog.ts
│       │   ├── use-ts-message.ts
│       │   └── vars.ts
│       ├── tsconfig.cjs.json
│       └── tsconfig.esm.json
├── tsconfig.cjs.json
├── tsconfig.esbuild.json
├── tsconfig.esm.json
├── tsconfig.json
├── tsconfig.scripts.json
├── tsconfig.test.json
├── umd-test/
│   ├── index.spec.js
│   └── setupVue.js
├── vite.config.mts
├── volar.d.ts
└── vue3.md
Download .txt
SYMBOL INDEX (2402 symbols across 731 files)

FILE: .pnpmfile.cjs
  function readPackage (line 19) | function readPackage(pkg) {

FILE: build/loaders/convert-md-to-doc.ts
  type DemoInfo (line 11) | interface DemoInfo {
  type ComponentInfo (line 20) | interface ComponentInfo {
  function resolveDemoTitle (line 25) | async function resolveDemoTitle(
  function resolveDemoInfos (line 39) | async function resolveDemoInfos(
  function genDemosTemplate (line 74) | function genDemosTemplate(demoInfos: DemoInfo[], colSpan: number): string {
  function genAnchorTemplate (line 80) | function genAnchorTemplate(
  function genDemosApiAnchorTemplate (line 100) | function genDemosApiAnchorTemplate(
  function genDemosAnchorTemplate (line 124) | function genDemosAnchorTemplate(
  function genPageAnchorTemplate (line 145) | function genPageAnchorTemplate(tokens: Token[]): string {
  function genScript (line 159) | function genScript(
  function convertMd2ComponentDocumentation (line 213) | async function convertMd2ComponentDocumentation(

FILE: build/loaders/convert-vue-to-demo.ts
  type Parts (line 10) | interface Parts {
  type MergedParts (line 20) | interface MergedParts extends Parts {
  type MergePartsOptions (line 25) | interface MergePartsOptions {
  type ConvertVue2DemoOptions (line 30) | interface ConvertVue2DemoOptions {
  function mergeParts (line 48) | function mergeParts({ parts, isVue }: MergePartsOptions): MergedParts {
  function genStyle (line 69) | function genStyle(sourceStyle: string): string | null {
  function genVueComponent (line 93) | function genVueComponent(
  function getFileName (line 148) | function getFileName(resourcePath: string): [string, string] {
  function getPartsOfDemo (line 154) | function getPartsOfDemo(text: string): Parts {
  function convertVue2Demo (line 194) | function convertVue2Demo(options: ConvertVue2DemoOptions): string {

FILE: build/loaders/md-renderer.ts
  function createRenderer (line 4) | function createRenderer(wrapCodeWithCard = true): Renderer {

FILE: build/utils/get-demo-by-path.ts
  function getTransformedVueSrc (line 5) | async function getTransformedVueSrc(

FILE: build/utils/handle-merge-code.ts
  type Parts (line 3) | interface Parts {
  type MergedParts (line 11) | interface MergedParts {
  type MergeCodeOptions (line 16) | interface MergeCodeOptions {
  function handleMergeCode (line 22) | function handleMergeCode(options: MergeCodeOptions): void {

FILE: build/utils/terse-cssr.ts
  function terseCssr (line 5) | function terseCssr(code: string): string {

FILE: build/utils/tsToJs.ts
  function tsToJs (line 3) | function tsToJs(content: string | null): string {

FILE: build/vite-plugin-css-render.ts
  function cssRenderPlugin (line 4) | function cssRenderPlugin(): Plugin {

FILE: build/vite-plugin-demo.ts
  function createDemoPlugin (line 13) | function createDemoPlugin(): Plugin[] {

FILE: build/vite-plugin-index-tranform.ts
  function transformIndexHtml (line 4) | function transformIndexHtml(code: string): string {

FILE: demo/routes/router.js
  function createDemoRouter (line 7) | function createDemoRouter(app, routes) {

FILE: demo/setup.js
  function installDemoComponents (line 9) | function installDemoComponents(app) {

FILE: demo/store/index.js
  function initRouter (line 31) | function initRouter(_router, _route) {
  method get (line 66) | get() {
  method set (line 69) | set(value) {
  function siteSetup (line 125) | function siteSetup() {
  function changeLangInPath (line 141) | function changeLangInPath(path, lang) {
  function changeThemeInPath (line 146) | function changeThemeInPath(path, theme) {
  function push (line 151) | function push(partialPath) {
  function useDisplayMode (line 158) | function useDisplayMode() {
  function useLocaleName (line 162) | function useLocaleName() {
  function useThemeName (line 166) | function useThemeName() {
  function useDocOptions (line 170) | function useDocOptions() {
  function useComponentOptions (line 174) | function useComponentOptions() {
  function useFlattenedDocOptions (line 178) | function useFlattenedDocOptions() {
  function useConfigProviderName (line 182) | function useConfigProviderName() {

FILE: demo/store/menu-options.js
  function renderMenuLabel (line 7) | function renderMenuLabel(option) {
  function renderNewTag (line 20) | function renderNewTag(isZh) {
  function renderItemExtra (line 34) | function renderItemExtra(rawItem, isZh) {
  function getItemExtraString (line 46) | function getItemExtraString(rawItem, isZh) {
  function appendCounts (line 55) | function appendCounts(item) {
  function createItems (line 71) | function createItems(lang, theme, prefix, items) {
  function createDocumentationMenuOptions (line 92) | function createDocumentationMenuOptions({ lang, theme }) {
  function createComponentMenuOptions (line 225) | function createComponentMenuOptions({ lang, theme }) {

FILE: demo/utils/ComponentDemos.tsx
  method setup (line 12) | setup(props) {
  method render (line 25) | render() {

FILE: demo/utils/codesandbox.js
  function getDeps (line 55) | function getDeps(code) {
  function getCodeSandboxParams (line 64) | function getCodeSandboxParams(code) {

FILE: demo/utils/composables.js
  function useIsMobile (line 4) | function useIsMobile() {
  function useIsTablet (line 11) | function useIsTablet() {
  function useIsSmallDesktop (line 18) | function useIsSmallDesktop() {
  function i18n (line 25) | function i18n(data) {

FILE: demo/utils/composables.ts
  function useIsMobile (line 4) | function useIsMobile() {
  function useIsTablet (line 11) | function useIsTablet() {
  function useIsSmallDesktop (line 18) | function useIsSmallDesktop() {
  function i18n (line 25) | function i18n(data: Record<string, Record<string, string>>) {

FILE: demo/utils/route.js
  function findMenuValue (line 1) | function findMenuValue(options, path) {

FILE: playground/collect-vars.js
  function getVars (line 3) | function getVars (input) {

FILE: playground/ssr/app.js
  method setup (line 5) | setup () {
  method render (line 10) | render () {

FILE: scripts/gen-component-declaration.ts
  constant TYPE_ROOT (line 7) | const TYPE_ROOT = process.cwd()
  function exist (line 12) | function exist(path: string): boolean {
  function parseComponentsDeclaration (line 16) | function parseComponentsDeclaration(code: string): Record<string, string> {
  function generateComponentsType (line 27) | async function generateComponentsType(): Promise<void> {

FILE: scripts/md-to-vue.ts
  function translateMdToVue (line 4) | async function translateMdToVue(): Promise<void> {

FILE: scripts/post-build/complete-path.ts
  type FormatConfig (line 7) | interface FormatConfig {
  method parse (line 15) | async parse(code: string, filePath: string, currentDir: string) {
  method parse (line 59) | async parse(code: string, filePath: string, currentDir: string) {
  function completePath (line 92) | async function completePath(formats: ('es' | 'lib')[]): Promise<void> {
  function parseSource (line 111) | function parseSource(
  function replaceExtname (line 129) | function replaceExtname(filePath: string, ext: string): string {
  function joinPath (line 138) | function joinPath(firstPath: string, ...restPath: string[]): string {

FILE: scripts/post-build/gen-web-types.ts
  type WebTypesScaffold (line 10) | interface WebTypesScaffold {
  type VueComponent (line 23) | interface VueComponent {
  type Slot (line 38) | interface Slot {
  type Prop (line 48) | interface Prop {
  type Event (line 59) | interface Event {
  function genWebTypes (line 69) | function genWebTypes(): void {

FILE: scripts/post-build/terse-cssr.ts
  function terseCssr (line 6) | async function terseCssr(): Promise<void> {

FILE: scripts/release-changelog.ts
  function releaseChangelogToDingTalk (line 22) | async function releaseChangelogToDingTalk(): Promise<void> {
  function releaseChangelogToDiscord (line 80) | async function releaseChangelogToDiscord(): Promise<void> {

FILE: scripts/utils/collect-vars.ts
  function collectVars (line 5) | function collectVars(code: string): string[] {
  function genDts (line 24) | function genDts(vars: string[]): string {

FILE: scripts/utils/loader.ts
  type DemoParts (line 9) | interface DemoParts {
  type FileInfo (line 17) | interface FileInfo {
  function getPartsOfMdDemo (line 24) | function getPartsOfMdDemo(tokens: TokensList): DemoParts {
  function createBlockTemplate (line 65) | function createBlockTemplate(
  function loadFile (line 78) | async function loadFile(filepath: string): Promise<string | undefined> {
  function loadAllMdFile (line 85) | async function loadAllMdFile(filePathArr: string[]): Promise<FileInfo[]> {
  function updateIndexEntryDemo (line 108) | async function updateIndexEntryDemo(file: FileInfo): Promise<void> {
  constant LINE_SPACE (line 123) | const LINE_SPACE = '\n\n'
  function transformMdToVueAndUpdateEntryFile (line 124) | async function transformMdToVueAndUpdateEntryFile(
  constant COMPONENT_ROOT (line 166) | const COMPONENT_ROOT = path.resolve(process.cwd(), 'src')
  function convertFilesByComponentName (line 168) | async function convertFilesByComponentName(

FILE: scripts/utils/replace-define.ts
  function replaceDefine (line 4) | async function replaceDefine(

FILE: src/_internal/clear/src/Clear.tsx
  method setup (line 20) | setup(props) {
  method render (line 28) | render() {

FILE: src/_internal/close/src/Close.tsx
  method setup (line 31) | setup(props) {

FILE: src/_internal/fade-in-expand-transition/src/FadeInExpandTransition.ts
  method setup (line 18) | setup(props, { slots }) {

FILE: src/_internal/focus-detector/src/FocusDetector.tsx
  method setup (line 9) | setup(props) {

FILE: src/_internal/icon-switch-transition/src/IconSwitchTransition.tsx
  method setup (line 6) | setup(_, { slots }) {

FILE: src/_internal/icon/src/Icon.tsx
  method setup (line 27) | setup(props) {
  method render (line 30) | render() {

FILE: src/_internal/icons/Add.tsx
  method render (line 5) | render() {

FILE: src/_internal/icons/ArrowBack.tsx
  method render (line 5) | render() {

FILE: src/_internal/icons/ArrowDown.tsx
  method render (line 5) | render() {

FILE: src/_internal/icons/ArrowUp.tsx
  method render (line 5) | render() {

FILE: src/_internal/icons/Backward.tsx
  method render (line 5) | render() {

FILE: src/_internal/icons/Checkmark.tsx
  method render (line 5) | render() {

FILE: src/_internal/icons/ChevronDown.tsx
  method render (line 5) | render() {

FILE: src/_internal/icons/ChevronDownFilled.tsx
  method render (line 5) | render() {

FILE: src/_internal/icons/ChevronLeft.tsx
  method render (line 5) | render() {

FILE: src/_internal/icons/ChevronRight.tsx
  method render (line 5) | render() {

FILE: src/_internal/icons/Empty.tsx
  method render (line 5) | render() {

FILE: src/_internal/icons/Eye.tsx
  method render (line 5) | render() {

FILE: src/_internal/icons/EyeOff.tsx
  method render (line 5) | render() {

FILE: src/_internal/icons/FastBackward.tsx
  method render (line 5) | render() {

FILE: src/_internal/icons/FastForward.tsx
  method render (line 5) | render() {

FILE: src/_internal/icons/File.tsx
  method render (line 5) | render() {

FILE: src/_internal/icons/Filter.tsx
  method render (line 5) | render() {

FILE: src/_internal/icons/Forward.tsx
  method render (line 5) | render() {

FILE: src/_internal/icons/More.tsx
  method render (line 5) | render() {

FILE: src/_internal/icons/Photo.tsx
  method render (line 5) | render() {

FILE: src/_internal/icons/Remove.tsx
  method render (line 5) | render() {

FILE: src/_internal/icons/ResizeSmall.tsx
  method render (line 5) | render() {

FILE: src/_internal/icons/Search.tsx
  method render (line 5) | render() {

FILE: src/_internal/icons/Switcher.tsx
  method render (line 5) | render() {

FILE: src/_internal/icons/replaceable.tsx
  function replaceable (line 7) | function replaceable(name: keyof GlobalIconConfig, icon: () => VNode) {

FILE: src/_internal/loading/src/Loading.tsx
  type SharedSpinProps (line 28) | type SharedSpinProps = ExtractPublicPropTypes<typeof exposedLoadingProps>
  method setup (line 43) | setup(props) {
  method render (line 46) | render() {

FILE: src/_internal/menu-mask/src/MenuMask.tsx
  method setup (line 21) | setup(props) {
  method render (line 49) | render() {

FILE: src/_internal/menu-mask/src/interface.ts
  type MenuMaskRef (line 1) | interface MenuMaskRef {

FILE: src/_internal/scrollbar/src/Scrollbar.tsx
  type MergedScrollOptions (line 29) | interface MergedScrollOptions {
  type ScrollTo (line 40) | interface ScrollTo {
  type ScrollBy (line 66) | interface ScrollBy {
  type ScrollbarInstMethods (line 71) | interface ScrollbarInstMethods {
  type ScrollbarInst (line 80) | interface ScrollbarInst extends ScrollbarInstMethods {
  type ScrollbarProps (line 131) | type ScrollbarProps = ExtractPublicPropTypes<typeof scrollbarProps>
  type ScrollbarInternalProps (line 132) | type ScrollbarInternalProps = ExtractInternalPropTypes<
  method setup (line 140) | setup(props) {
  method render (line 811) | render() {
  type NativeScrollbarProps (line 987) | type NativeScrollbarProps = Omit<HTMLAttributes, keyof ScrollbarInternal...
  type MergedProps (line 988) | type MergedProps = Partial<ScrollbarInternalProps & NativeScrollbarProps>

FILE: src/_internal/scrollbar/styles/light.ts
  function self (line 6) | function self(vars: ThemeCommonVars) {
  type ScrollbarThemeVars (line 24) | type ScrollbarThemeVars = ReturnType<typeof self>
  type ScrollbarTheme (line 33) | type ScrollbarTheme = typeof scrollbarLight

FILE: src/_internal/select-menu/src/SelectGroupHeader.tsx
  method setup (line 21) | setup() {
  method render (line 31) | render() {

FILE: src/_internal/select-menu/src/SelectMenu.tsx
  method setup (line 121) | setup(props) {
  method render (line 464) | render() {

FILE: src/_internal/select-menu/src/SelectOption.tsx
  function renderCheckMark (line 12) | function renderCheckMark(show: boolean, clsPrefix: string): VNode {
  method setup (line 44) | setup(props) {
  method render (line 118) | render() {

FILE: src/_internal/select-menu/src/interface.ts
  type Size (line 10) | type Size = 'tiny' | 'small' | 'medium' | 'large' | 'huge'
  type RenderLabel (line 12) | type RenderLabel = (
  type RenderLabelImpl (line 17) | type RenderLabelImpl = (
  type RenderOption (line 22) | type RenderOption = (info: {
  type RenderOptionImpl (line 28) | type RenderOptionImpl = (info: {
  type NodeProps (line 34) | type NodeProps = (
  type InternalSelectMenuInjection (line 38) | interface InternalSelectMenuInjection {
  type InternalExposedProps (line 56) | interface InternalExposedProps {
  type InternalSelectMenuRef (line 70) | type InternalSelectMenuRef = UnwrapRef<InternalExposedProps>

FILE: src/_internal/select-menu/styles/light.ts
  function self (line 8) | function self(vars: ThemeCommonVars) {
  type InternalSelectMenuThemeVars (line 61) | type InternalSelectMenuThemeVars = ReturnType<typeof self>
  type InternalSelectMenuTheme (line 74) | type InternalSelectMenuTheme = typeof internalSelectMenuLight

FILE: src/_internal/selection/src/Selection.tsx
  type InternalSelectionInst (line 42) | interface InternalSelectionInst {
  method setup (line 116) | setup(props) {
  method render (line 602) | render() {

FILE: src/_internal/selection/src/interface.ts
  type RenderTag (line 4) | type RenderTag = (props: {

FILE: src/_internal/selection/styles/dark.ts
  method self (line 13) | self(vars) {

FILE: src/_internal/selection/styles/light.ts
  function self (line 8) | function self(vars: ThemeCommonVars) {
  type InternalSelectionThemeVars (line 108) | type InternalSelectionThemeVars = ReturnType<typeof self>
  type InternalSelectionTheme (line 120) | type InternalSelectionTheme = typeof internalSelectionLight

FILE: src/_internal/slot-machine/src/SlotMachine.tsx
  method setup (line 35) | setup(props) {

FILE: src/_internal/slot-machine/src/SlotMachineNumber.tsx
  method setup (line 25) | setup(props) {

FILE: src/_internal/suffix/src/Suffix.tsx
  method setup (line 30) | setup(props, { slots }) {

FILE: src/_internal/wave/src/Wave.tsx
  type BaseWaveRef (line 5) | interface BaseWaveRef {
  method setup (line 17) | setup(props) {
  method render (line 47) | render() {

FILE: src/_mixins/use-config.ts
  type UseConfigProps (line 10) | type UseConfigProps = Readonly<{
  function useConfig (line 17) | function useConfig(
  function useMergedClsPrefix (line 57) | function useMergedClsPrefix(): Ref<string> {

FILE: src/_mixins/use-css-vars-class.ts
  function useThemeClass (line 9) | function useThemeClass(

FILE: src/_mixins/use-form-item.ts
  type AllowedSize (line 9) | type AllowedSize = 'tiny' | 'small' | 'medium' | 'large' | 'huge' | number
  type FormItemInjection (line 11) | interface FormItemInjection {
  type UseFormItemOptions (line 26) | interface UseFormItemOptions<T> {
  type UseFormItemProps (line 32) | interface UseFormItemProps<T> {
  type UseFormItem (line 38) | interface UseFormItem<T> {
  function useFormItem (line 48) | function useFormItem<T extends AllowedSize = FormItemSize>(

FILE: src/_mixins/use-hljs.ts
  type UseHljsProps (line 7) | interface UseHljsProps {
  type Hljs (line 12) | interface Hljs {
  function useHljs (line 16) | function useHljs(

FILE: src/_mixins/use-locale.ts
  function useLocale (line 8) | function useLocale<T extends keyof NLocale>(

FILE: src/_mixins/use-rtl.ts
  function useRtl (line 12) | function useRtl(

FILE: src/_mixins/use-style.ts
  function useStyle (line 10) | function useStyle(

FILE: src/_mixins/use-theme.ts
  type Theme (line 12) | interface Theme<N, T = Record<string, unknown>, R = any> {
  type ThemeProps (line 19) | interface ThemeProps<T> {
  type ThemePropsReactive (line 25) | interface ThemePropsReactive<T> {
  type ExtractThemeVars (line 31) | type ExtractThemeVars<T>
  type ExtractPeerOverrides (line 38) | type ExtractPeerOverrides<T>
  type ExtractMergedPeerOverrides (line 48) | type ExtractMergedPeerOverrides<T>
  type ExtractThemeOverrides (line 55) | type ExtractThemeOverrides<T> = Partial<ExtractThemeVars<T>>
  function createTheme (line 58) | function createTheme<N extends string, T, R>(
  type UseThemeProps (line 64) | type UseThemeProps<T> = Readonly<{
  type MergedTheme (line 70) | type MergedTheme<T>
  function useTheme (line 80) | function useTheme<N, T, R>(

FILE: src/_styles/common/dark.ts
  function overlay (line 76) | function overlay(alpha: number | string): string {
  function neutral (line 79) | function neutral(alpha: number | string): string {

FILE: src/_styles/common/light.ts
  function overlay (line 74) | function overlay(alpha: string | number) {
  function neutral (line 77) | function neutral(alpha: string | number) {
  type ThemeCommonVars (line 202) | type ThemeCommonVars = typeof derived

FILE: src/_styles/transitions/fade-down.cssr.ts
  type FadeDownTransitionOptions (line 7) | interface FadeDownTransitionOptions {
  function fadeDownTransition (line 16) | function fadeDownTransition({

FILE: src/_styles/transitions/fade-in-height-expand.cssr.ts
  type FadeInHeightExpandTransitionOption (line 11) | interface FadeInHeightExpandTransitionOption {
  function fadeInHeightExpandTransition (line 22) | function fadeInHeightExpandTransition({

FILE: src/_styles/transitions/fade-in-scale-up.cssr.ts
  type FadeInScaleUpTransitionOptions (line 10) | interface FadeInScaleUpTransitionOptions {
  function fadeInScaleUpTransition (line 18) | function fadeInScaleUpTransition({

FILE: src/_styles/transitions/fade-in-width-expand.cssr.ts
  type FadeInWidthExpandTransition (line 7) | interface FadeInWidthExpandTransition {
  function fadeInWidthExpandTransition (line 12) | function fadeInWidthExpandTransition({

FILE: src/_styles/transitions/fade-in.cssr.ts
  type FadeInTransitionOptions (line 7) | interface FadeInTransitionOptions {
  function fadeInTransition (line 15) | function fadeInTransition({

FILE: src/_styles/transitions/fade-up-width-expand.cssr.ts
  type FadeUpWidthExpandTransition (line 7) | interface FadeUpWidthExpandTransition {
  function fadeUpWidthExpandTransition (line 11) | function fadeUpWidthExpandTransition({

FILE: src/_styles/transitions/icon-switch.cssr.ts
  type IconSwitchTransitionOptions (line 9) | interface IconSwitchTransitionOptions {
  function iconSwitchTransition (line 16) | function iconSwitchTransition({

FILE: src/_styles/transitions/slide-in-from-bottom.ts
  type SlideInFromBottomTransitionOptions (line 7) | interface SlideInFromBottomTransitionOptions {
  function slideInFromBottomTransition (line 13) | function slideInFromBottomTransition({

FILE: src/_styles/transitions/slide-in-from-left.ts
  type SlideInFromLeftTransitionOptions (line 7) | interface SlideInFromLeftTransitionOptions {
  function slideInFromLeftTransition (line 13) | function slideInFromLeftTransition({

FILE: src/_styles/transitions/slide-in-from-right.ts
  type SlideInFromRightTransitionOptions (line 7) | interface SlideInFromRightTransitionOptions {
  function slideInFromRightTransition (line 13) | function slideInFromRightTransition({

FILE: src/_styles/transitions/slide-in-from-top.ts
  type SlideInFromTopTransitionOptions (line 7) | interface SlideInFromTopTransitionOptions {
  function slideInFromTopTransition (line 13) | function slideInFromTopTransition({

FILE: src/_utils/color/index.ts
  function createHoverColor (line 3) | function createHoverColor(rgb: string): string {
  function createPressedColor (line 7) | function createPressedColor(rgb: string): string {

FILE: src/_utils/composable/use-adjusted-to.ts
  type UseAdjustedToProps (line 10) | interface UseAdjustedToProps {
  function useAdjustedTo (line 16) | function useAdjustedTo(

FILE: src/_utils/composable/use-browser-location.ts
  type IWindowLocation (line 5) | interface IWindowLocation {
  function useBrowserLocation (line 17) | function useBrowserLocation(

FILE: src/_utils/composable/use-collection.ts
  function useInjectionInstanceCollection (line 14) | function useInjectionInstanceCollection(
  function useInjectionCollection (line 64) | function useInjectionCollection(
  function useInjectionElementCollection (line 99) | function useInjectionElementCollection(

FILE: src/_utils/composable/use-deferred-true.ts
  function useDeferredTrue (line 4) | function useDeferredTrue(

FILE: src/_utils/composable/use-houdini.ts
  function useHoudini (line 5) | function useHoudini(): void {

FILE: src/_utils/composable/use-is-composing.ts
  function compositionStartHandler (line 6) | function compositionStartHandler(): void {
  function compositionEndHandler (line 9) | function compositionEndHandler(): void {
  function useIsComposing (line 14) | function useIsComposing(): Ref<boolean> {

FILE: src/_utils/composable/use-lock-html-scroll.ts
  function useLockHtmlScroll (line 11) | function useLockHtmlScroll(lockRef: Ref<boolean>): void {

FILE: src/_utils/composable/use-reactivated.ts
  function useReactivated (line 3) | function useReactivated(callback: () => void): {

FILE: src/_utils/composable/use-resize.ts
  function useOnResize (line 5) | function useOnResize(

FILE: src/_utils/css/color-to-class.ts
  function color2Class (line 1) | function color2Class(color: string): string {

FILE: src/_utils/css/format-length.ts
  type FormatLengthOptions (line 4) | interface FormatLengthOptions {
  function formatLength (line 10) | function formatLength<

FILE: src/_utils/css/rtl-inset.ts
  function rtlInset (line 3) | function rtlInset(inset: string): string {

FILE: src/_utils/cssr/index.ts
  function insideModal (line 20) | function insideModal(style: CNode): CNode {
  function insidePopover (line 28) | function insidePopover(style: CNode): CNode {
  function asModal (line 32) | function asModal(style: CProperties): CNode {
  function createKey (line 41) | function createKey<P extends string, S extends string>(

FILE: src/_utils/dom/download.ts
  function download (line 1) | function download(url: string | null, name: string | undefined): void {
  function publicDownload (line 14) | function publicDownload(url: string, name: string | undefined): void {

FILE: src/_utils/dom/is-document.ts
  function isDocument (line 1) | function isDocument(node: Node): node is Document {

FILE: src/_utils/env/is-jsdom.ts
  function isJsdom (line 3) | function isJsdom(): boolean {

FILE: src/_utils/event/index.ts
  function markEventEffectPerformed (line 3) | function markEventEffectPerformed(event: Event): void {
  function eventEffectNotPerformed (line 7) | function eventEffectNotPerformed(event: Event): boolean {

FILE: src/_utils/naive/attribute.ts
  function getTitleAttribute (line 3) | function getTitleAttribute(value: unknown): HTMLAttributes['title'] {

FILE: src/_utils/naive/extract-public-props.ts
  type themePropKeys (line 4) | type themePropKeys = keyof typeof useTheme.props
  type RemoveReadonly (line 6) | type RemoveReadonly<T> = {
  type ExtractPublicPropTypes (line 10) | type ExtractPublicPropTypes<T> = Omit<
  type ExtractInternalPropTypes (line 16) | type ExtractInternalPropTypes<T> = Partial<ExtractPropTypes<T>>

FILE: src/_utils/naive/mutable.ts
  type Mutable (line 1) | type Mutable<T>

FILE: src/_utils/naive/prop.ts
  type SmallerSizeMap (line 16) | type SmallerSizeMap = typeof smallerSizeMap
  type SmallerSize (line 17) | type SmallerSize = keyof SmallerSizeMap
  type LargerSizeMap (line 19) | type LargerSizeMap = typeof largerSizeMap
  type LargerSize (line 20) | type LargerSize = keyof LargerSizeMap
  function largerSize (line 22) | function largerSize<T extends LargerSize>(size: T): LargerSizeMap[T] {
  function smallerSize (line 32) | function smallerSize<T extends SmallerSize>(size: T): SmallerSizeMap[T] {

FILE: src/_utils/naive/value.ts
  function isArrayShallowEqual (line 1) | function isArrayShallowEqual<T extends Array<any>>(

FILE: src/_utils/naive/warn.ts
  function warnOnce (line 3) | function warnOnce(location: string, message: string): void {
  function warn (line 11) | function warn(location: string, message: string): void {
  function error (line 15) | function error(location: string, message: string, error: unknown): void {
  function throwError (line 19) | function throwError(location: string, message: string): never {

FILE: src/_utils/tests/index.spec.ts
  function testFunction1 (line 74) | function testFunction1(): void {
  function testFunction2 (line 77) | function testFunction2(v: number): void {
  function testFunction3 (line 80) | function testFunction3(v: number): void {
  function testFunction (line 134) | function testFunction(value: string): VNode {

FILE: src/_utils/ts/ts.ts
  type ThemeRelatedProps (line 1) | type ThemeRelatedProps
  type Equal (line 5) | type Equal<X, Y>
  type Expect (line 9) | type Expect<T extends true> = T

FILE: src/_utils/vue/call.ts
  type AnyFunction (line 1) | type AnyFunction = (...args: any[]) => any
  function call (line 23) | function call<A extends any[]>(
  type MaybeArray (line 37) | type MaybeArray<T> = T | T[]

FILE: src/_utils/vue/create-data-key.ts
  function createDataKey (line 1) | function createDataKey(key: string | number): string {

FILE: src/_utils/vue/create-injection-key.ts
  function createInjectionKey (line 3) | function createInjectionKey<T>(key: string): InjectionKey<T> {

FILE: src/_utils/vue/create-ref-setter.ts
  function createRefSetter (line 3) | function createRefSetter(ref: Ref<HTMLElement | null>): any {

FILE: src/_utils/vue/flatten.ts
  function flatten (line 5) | function flatten(

FILE: src/_utils/vue/get-first-slot-vnode.ts
  function getFirstSlotVNode (line 5) | function getFirstSlotVNode(
  function getFirstSlotVNodeWithTypedProps (line 26) | function getFirstSlotVNodeWithTypedProps<T>(

FILE: src/_utils/vue/get-slot.ts
  function getSlot (line 3) | function getSlot(

FILE: src/_utils/vue/get-v-node-children.ts
  function getVNodeChildren (line 3) | function getVNodeChildren(

FILE: src/_utils/vue/is-node-v-show-false.ts
  function isNodeVShowFalse (line 4) | function isNodeVShowFalse(vNode: VNode): boolean {

FILE: src/_utils/vue/keep.ts
  function keep (line 1) | function keep<T, K, R>(

FILE: src/_utils/vue/keysOf.ts
  function keysOf (line 1) | function keysOf<T extends Record<string, unknown>>(

FILE: src/_utils/vue/merge-handlers.ts
  function mergeEventHandlers (line 1) | function mergeEventHandlers<T>(

FILE: src/_utils/vue/omit.ts
  function omit (line 1) | function omit<T, K extends keyof T, R extends Record<string, any>>(

FILE: src/_utils/vue/render.ts
  function render (line 4) | function render<T extends any[]>(

FILE: src/_utils/vue/resolve-slot.ts
  function ensureValidVNode (line 4) | function ensureValidVNode(
  function resolveSlot (line 29) | function resolveSlot(
  function resolveSlotWithTypedProps (line 36) | function resolveSlotWithTypedProps<T>(
  function resolveWrappedSlot (line 47) | function resolveWrappedSlot(
  function resolveWrappedSlotWithProps (line 58) | function resolveWrappedSlotWithProps(
  function isSlotEmpty (line 67) | function isSlotEmpty(slot: Slot | undefined): boolean {

FILE: src/_utils/vue/wrapper.tsx
  method render (line 4) | render() {

FILE: src/affix/src/Affix.tsx
  type AffixProps (line 71) | type AffixProps = ExtractPublicPropTypes<typeof affixProps>
  method setup (line 76) | setup(props) {
  method render (line 206) | render() {

FILE: src/affix/src/utils.ts
  type ScrollTarget (line 1) | type ScrollTarget = Window | Document | HTMLElement
  function getScrollTop (line 3) | function getScrollTop(target: ScrollTarget): number {
  function getRect (line 7) | function getRect(target: ScrollTarget): { top: number, bottom: number } {

FILE: src/affix/tests/Affix.spec.ts
  function makeScroll (line 6) | async function makeScroll(

FILE: src/alert/src/Alert.tsx
  type AlertProps (line 49) | type AlertProps = ExtractPublicPropTypes<typeof alertProps>
  type AlertSlots (line 51) | interface AlertSlots {
  method setup (line 62) | setup(props) {
  method render (line 185) | render() {

FILE: src/alert/styles/dark.ts
  method self (line 9) | self(vars) {

FILE: src/alert/styles/light.ts
  function self (line 7) | function self(vars: ThemeCommonVars) {
  type AlertThemeVars (line 106) | type AlertThemeVars = ReturnType<typeof self>
  type AlertTheme (line 115) | type AlertTheme = typeof alertLight

FILE: src/anchor/src/AnchorAdapter.tsx
  type AnchorInst (line 15) | interface AnchorInst {
  type AnchorProps (line 26) | type AnchorProps = ExtractPublicPropTypes<typeof anchorProps>
  method setup (line 31) | setup(props, { slots }) {
  method render (line 101) | render() {

FILE: src/anchor/src/BaseAnchor.tsx
  type LinkInfo (line 22) | interface LinkInfo {
  type BaseAnchorInst (line 28) | interface BaseAnchorInst {
  method setup (line 67) | setup(props) {
  method render (line 303) | render() {

FILE: src/anchor/src/Link.tsx
  type AnchorInjection (line 16) | interface AnchorInjection {
  type AnchorLinkProps (line 33) | type AnchorLinkProps = ExtractPublicPropTypes<typeof anchorLinkProps>
  method setup (line 39) | setup(props, { slots }) {

FILE: src/anchor/src/public-types.tsx
  type AnchorLinkSlots (line 3) | interface AnchorLinkSlots {

FILE: src/anchor/src/utils.ts
  type OffsetTarget (line 1) | type OffsetTarget = Window | Document | HTMLElement
  function getOffset (line 3) | function getOffset(

FILE: src/anchor/styles/light.ts
  function self (line 7) | function self(vars: ThemeCommonVars) {
  type AnchorThemeVars (line 29) | type AnchorThemeVars = ReturnType<typeof self>
  type AnchorTheme (line 38) | type AnchorTheme = typeof anchorLight

FILE: src/anchor/tests/Anchor.spec.ts
  method default (line 84) | default() {

FILE: src/auto-complete/src/AutoComplete.tsx
  type AutoCompleteProps (line 121) | type AutoCompleteProps = ExtractPublicPropTypes<typeof autoCompleteProps>
  type AutoCompleteSlots (line 123) | interface AutoCompleteSlots {
  method setup (line 134) | setup(props) {
  method render (line 376) | render() {

FILE: src/auto-complete/src/interface.ts
  type AutoCompleteOption (line 6) | type AutoCompleteOption = SelectBaseOption<string, string>
  type AutoCompleteGroupOption (line 7) | interface AutoCompleteGroupOption
  type AutoCompleteOptions (line 12) | type AutoCompleteOptions = Array<
  type OnUpdateValue (line 16) | type OnUpdateValue = (value: string & (string | null)) => void
  type OnUpdateImpl (line 17) | type OnUpdateImpl = (value: string | null) => void
  type OnSelect (line 18) | type OnSelect = (value: string & number) => void
  type OnSelectImpl (line 19) | type OnSelectImpl = (value: string | number) => void
  type AutoCompleteInst (line 21) | interface AutoCompleteInst {
  type AutoCompleteDefaultSlotProps (line 26) | interface AutoCompleteDefaultSlotProps {

FILE: src/auto-complete/src/public-types.ts
  type AutoCompleteSize (line 1) | type AutoCompleteSize = 'small' | 'medium' | 'large'

FILE: src/auto-complete/src/utils.ts
  function mapAutoCompleteOptionsToSelectOptions (line 12) | function mapAutoCompleteOptionsToSelectOptions(
  function convertAutoCompleteOptionToSelectOption (line 18) | function convertAutoCompleteOptionToSelectOption(

FILE: src/auto-complete/styles/light.ts
  function self (line 7) | function self(vars: ThemeCommonVars) {
  type AutoCompleteTheme (line 25) | type AutoCompleteTheme = typeof autoCompleteLight
  type AutoCompleteThemeVars (line 26) | type AutoCompleteThemeVars = ReturnType<typeof self>

FILE: src/avatar-group/src/AvatarGroup.tsx
  type AvatarGroupInjection (line 19) | interface AvatarGroupInjection {
  type AvatarGroupProps (line 36) | type AvatarGroupProps = ExtractPublicPropTypes<typeof avatarGroupProps>
  type AvatarGroupSlots (line 38) | interface AvatarGroupSlots {
  method setup (line 48) | setup(props) {
  method render (line 96) | render() {

FILE: src/avatar-group/src/generic-public-types.ts
  type ResolvableAvatarGroupProps (line 11) | interface ResolvableAvatarGroupProps<
  type _ (line 24) | type _
  type GAvatarGroupProps (line 30) | type GAvatarGroupProps<T extends AvatarGroupOption>
  type GAvatarGroupSlots (line 33) | interface GAvatarGroupSlots<T extends AvatarGroupOption> {

FILE: src/avatar-group/src/public-types.ts
  type AvatarGroupAvatarSlotProps (line 1) | interface AvatarGroupAvatarSlotProps<
  type AvatarGroupRestSlotProps (line 7) | interface AvatarGroupRestSlotProps<
  type AvatarGroupOption (line 14) | interface AvatarGroupOption {

FILE: src/avatar-group/styles/light.ts
  type AvatarGroupThemeVars (line 5) | type AvatarGroupThemeVars = Record<string, unknown>
  function self (line 7) | function self() {
  type AvatarGroupTheme (line 23) | type AvatarGroupTheme = typeof avatarGroupLight

FILE: src/avatar/src/Avatar.tsx
  type AvatarProps (line 68) | type AvatarProps = ExtractPublicPropTypes<typeof avatarProps>
  type AvatarSlots (line 70) | interface AvatarSlots {
  method setup (line 80) | setup(props) {
  method render (line 269) | render() {

FILE: src/avatar/src/interface.ts
  type Size (line 1) | type Size = number | 'small' | 'medium' | 'large'
  type ObjectFit (line 2) | type ObjectFit = 'fill' | 'contain' | 'cover' | 'none' | 'scale-down'

FILE: src/avatar/styles/light.ts
  function self (line 6) | function self(vars: ThemeCommonVars) {
  type AvatarThemeVars (line 35) | type AvatarThemeVars = ReturnType<typeof self>
  type AvatarTheme (line 44) | type AvatarTheme = typeof avatarLight
  type AvatarGroupTheme (line 45) | type AvatarGroupTheme = typeof avatarLight

FILE: src/avatar/tests/Avatar.spec.tsx
  method get (line 22) | get() {
  method get (line 30) | get() {
  method data (line 118) | data() {
  method render (line 123) | render() {

FILE: src/back-top/src/BackTop.tsx
  type BackTopProps (line 71) | type BackTopProps = ExtractPublicPropTypes<typeof backTopProps>
  method setup (line 78) | setup(props) {
  method render (line 269) | render() {

FILE: src/back-top/styles/dark.ts
  method self (line 8) | self(vars) {

FILE: src/back-top/styles/light.ts
  function self (line 6) | function self(vars: ThemeCommonVars) {
  type BackTopThemeVars (line 22) | type BackTopThemeVars = ReturnType<typeof self>
  type BackTopTheme (line 31) | type BackTopTheme = typeof backTopLight

FILE: src/badge/src/Badge.tsx
  type BadgeProps (line 42) | type BadgeProps = ExtractPublicPropTypes<typeof badgeProps>
  method setup (line 47) | setup(props, { slots }) {
  method render (line 142) | render() {

FILE: src/badge/styles/dark.ts
  method self (line 7) | self(vars) {

FILE: src/badge/styles/light.ts
  function self (line 5) | function self(vars: ThemeCommonVars) {
  type BadgeThemeVars (line 18) | type BadgeThemeVars = ReturnType<typeof self>
  type BadgeTheme (line 27) | type BadgeTheme = typeof badgeLight

FILE: src/breadcrumb/src/Breadcrumb.tsx
  type BreadcrumbInjection (line 11) | interface BreadcrumbInjection {
  type BreadcrumbProps (line 27) | type BreadcrumbProps = ExtractPublicPropTypes<typeof breadcrumbProps>
  method setup (line 32) | setup(props) {
  method render (line 88) | render() {

FILE: src/breadcrumb/src/BreadcrumbItem.tsx
  type BreadcrumbItemProps (line 21) | type BreadcrumbItemProps = Partial<
  type BreadcrumbItemSlots (line 25) | interface BreadcrumbItemSlots {
  method setup (line 34) | setup(props, { slots }) {

FILE: src/breadcrumb/styles/light.ts
  function self (line 6) | function self(vars: ThemeCommonVars) {
  type BreadcrumbThemeVars (line 30) | type BreadcrumbThemeVars = ReturnType<typeof self>
  type BreadcrumbTheme (line 39) | type BreadcrumbTheme = typeof breadcrumbLight

FILE: src/button-group/src/ButtonGroup.tsx
  type ButtonGroupInjection (line 10) | interface ButtonGroupInjection {
  type ButtonGroupProps (line 19) | type ButtonGroupProps = ExtractPublicPropTypes<typeof buttonGroupProps>
  method setup (line 24) | setup(props) {
  method render (line 38) | render() {

FILE: src/button-group/src/styles/index.cssr.ts
  function createLeftBorderStyle (line 8) | function createLeftBorderStyle(type: ButtonType): CNode {
  function createTopBorderStyle (line 25) | function createTopBorderStyle(type: ButtonType): CNode {

FILE: src/button-group/src/styles/rtl.cssr.ts
  function createRightBorderStyle (line 6) | function createRightBorderStyle(type: ButtonType): CNode {

FILE: src/button-group/styles/light.ts
  type ButtonGroupThemeVars (line 4) | interface ButtonGroupThemeVars {}
  type ButtonGroupTheme (line 12) | type ButtonGroupTheme = typeof buttonGroupLight

FILE: src/button/src/Button.tsx
  type ButtonProps (line 94) | type ButtonProps = ExtractPublicPropTypes<typeof buttonProps>
  type ButtonSlots (line 96) | interface ButtonSlots {
  method setup (line 105) | setup(props) {
  method render (line 583) | render() {
  type InternalButtonProps (line 685) | type InternalButtonProps = ExtractPropTypes<typeof buttonProps>
  type NativeButtonProps (line 686) | type NativeButtonProps = Omit<ButtonHTMLAttributes, keyof InternalButton...
  type MergedProps (line 687) | type MergedProps = Partial<InternalButtonProps & NativeButtonProps>

FILE: src/button/src/public-types.ts
  type ButtonSize (line 3) | type ButtonSize = 'tiny' | 'small' | 'medium' | 'large'
  type ButtonSpinProps (line 4) | type ButtonSpinProps = SharedSpinProps
  type ButtonType (line 5) | type ButtonType

FILE: src/button/styles/dark.ts
  method self (line 8) | self(vars) {

FILE: src/button/styles/light.ts
  function self (line 6) | function self(vars: ThemeCommonVars) {
  type ButtonThemeVars (line 242) | type ButtonThemeVars = ReturnType<typeof self>
  type ButtonTheme (line 251) | type ButtonTheme = typeof buttonLight

FILE: src/calendar/src/Calendar.tsx
  type CalendarProps (line 45) | type CalendarProps = ExtractPublicPropTypes<typeof calendarProps>
  type CalendarSlots (line 47) | interface CalendarSlots {
  method setup (line 56) | setup(props) {
  method render (line 197) | render() {

FILE: src/calendar/src/interface.ts
  type OnUpdateValue (line 1) | type OnUpdateValue = (value: number, time: DateItem) => void
  type DateItem (line 3) | interface DateItem {
  type OnPanelChange (line 9) | type OnPanelChange = (info: { year: number, month: number }) => void
  type CalendarDefaultSlotProps (line 11) | interface CalendarDefaultSlotProps {
  type CalendarHeaderSlotProps (line 17) | interface CalendarHeaderSlotProps {

FILE: src/calendar/styles/light.ts
  function self (line 8) | function self(vars: ThemeCommonVars) {
  type CalendarThemeVars (line 49) | type CalendarThemeVars = ReturnType<typeof self>
  type CalendarTheme (line 61) | type CalendarTheme = typeof calendarLight

FILE: src/calendar/tests/Calendar.spec.tsx
  function disableFunction (line 50) | function disableFunction(timestamp: number): boolean {

FILE: src/card/src/Card.tsx
  type CardSegmented (line 16) | interface CardSegmented {
  type CardProps (line 66) | type CardProps = ExtractPublicPropTypes<typeof cardProps>
  type CardSlots (line 68) | interface CardSlots {
  method setup (line 81) | setup(props) {
  method render (line 199) | render() {

FILE: src/card/src/public-types.ts
  type CardSize (line 1) | type CardSize = 'small' | 'medium' | 'large' | 'huge'

FILE: src/card/styles/dark.ts
  method self (line 8) | self(vars) {

FILE: src/card/styles/light.ts
  function self (line 6) | function self(vars: ThemeCommonVars) {
  type CardThemeVars (line 57) | type CardThemeVars = ReturnType<typeof self>
  type CardTheme (line 66) | type CardTheme = typeof cardLight

FILE: src/carousel/src/Carousel.tsx
  type TransitionStyle (line 69) | type TransitionStyle = Partial<
  type CarouselProps (line 147) | type CarouselProps = ExtractPublicPropTypes<typeof carouselProps>
  type CarouselSlots (line 149) | interface CarouselSlots {
  method setup (line 162) | setup(props) {
  method render (line 956) | render() {
  function filterCarouselItem (line 1065) | function filterCarouselItem(vnodes: VNode[]): VNode[] {

FILE: src/carousel/src/CarouselArrow.tsx
  function renderBackwardIcon (line 5) | function renderBackwardIcon() {
  function renderForwardIcon (line 19) | function renderForwardIcon() {
  method setup (line 35) | setup(props) {
  method render (line 48) | render() {

FILE: src/carousel/src/CarouselContext.ts
  type CarouselContextValue (line 5) | interface CarouselContextValue {
  function provideCarouselContext (line 29) | function provideCarouselContext(
  function useCarouselContext (line 35) | function useCarouselContext(

FILE: src/carousel/src/CarouselDots.tsx
  type CarouselDotsProps (line 28) | type CarouselDotsProps = ExtractPublicPropTypes<typeof carouselDotsProps>
  method setup (line 33) | setup(props) {
  method render (line 100) | render() {

FILE: src/carousel/src/CarouselItem.tsx
  function isCarouselItem (line 16) | function isCarouselItem(child: VNode): boolean {
  method setup (line 22) | setup(props) {
  method render (line 60) | render() {

FILE: src/carousel/src/interface.ts
  type CarouselInst (line 3) | interface CarouselInst {
  type ArrowScopedSlotProps (line 10) | interface ArrowScopedSlotProps
  type DotScopedSlotProps (line 19) | interface DotScopedSlotProps extends Pick<CarouselContextValue, 'to'> {
  type Size (line 24) | interface Size {
  type CarouselArrowSlotProps (line 29) | interface CarouselArrowSlotProps {
  type CarouselDotSlotProps (line 37) | interface CarouselDotSlotProps {

FILE: src/carousel/src/utils/duplicatedLogic.ts
  function addDuplicateSlides (line 10) | function addDuplicateSlides(slides: VNode[]): VNode[] {
  function duplicateSlide (line 20) | function duplicateSlide(
  function getDisplayIndex (line 31) | function getDisplayIndex(
  function getRealIndex (line 47) | function getRealIndex(
  function getPrevIndex (line 54) | function getPrevIndex(
  function getNextIndex (line 64) | function getNextIndex(
  function getDisplayTotalView (line 74) | function getDisplayTotalView(

FILE: src/carousel/src/utils/event.ts
  function isTouchEvent (line 1) | function isTouchEvent(e: MouseEvent | TouchEvent): e is TouchEvent {

FILE: src/carousel/src/utils/index.ts
  function calculateSize (line 6) | function calculateSize(element: HTMLElement, innerOnly?: boolean): Size {
  function clampValue (line 22) | function clampValue(value: number, min: number, max: number): number {
  function resolveSpeed (line 26) | function resolveSpeed(value?: string | number): number {

FILE: src/carousel/styles/light.ts
  function self (line 4) | function self() {
  type CarouselThemeVars (line 16) | type CarouselThemeVars = ReturnType<typeof self>
  type CarouselTheme (line 25) | type CarouselTheme = typeof carouselLight

FILE: src/cascader/src/Cascader.tsx
  type CascaderProps (line 192) | type CascaderProps = ExtractPublicPropTypes<typeof cascaderProps>
  type CascaderSlots (line 194) | interface CascaderSlots {
  method setup (line 205) | setup(props, { slots }) {
  method render (line 1099) | render() {

FILE: src/cascader/src/CascaderMenu.tsx
  method setup (line 63) | setup(props) {
  method render (line 132) | render() {

FILE: src/cascader/src/CascaderOption.tsx
  method setup (line 19) | setup(props) {
  method render (line 186) | render() {

FILE: src/cascader/src/CascaderSelectMenu.tsx
  method setup (line 60) | setup(props) {
  method render (line 188) | render() {

FILE: src/cascader/src/CascaderSubmenu.tsx
  method setup (line 24) | setup() {
  method render (line 67) | render() {

FILE: src/cascader/src/interface.ts
  type ValueAtom (line 10) | type ValueAtom = string | number
  type Value (line 11) | type Value = ValueAtom | ValueAtom[]
  type Key (line 13) | type Key = ValueAtom
  type CascaderOption (line 15) | interface CascaderOption {
  type ExpandTrigger (line 23) | type ExpandTrigger = 'hover' | 'click'
  type TmNode (line 25) | type TmNode = TreeNode<CascaderOption>
  type Filter (line 27) | type Filter = (
  type OnLoad (line 33) | type OnLoad = (option: CascaderOption) => Promise<void>
  type OnUpdateValue (line 35) | type OnUpdateValue = (
  type OnUpdateValueImpl (line 53) | type OnUpdateValueImpl = (
  type MenuModel (line 59) | type MenuModel = TmNode[][]
  type CascaderInjection (line 61) | interface CascaderInjection {
  type CascaderSubmenuInstance (line 122) | interface CascaderSubmenuInstance {
  type CascaderMenuExposedMethods (line 126) | interface CascaderMenuExposedMethods {
  type CascaderMenuInstance (line 131) | type CascaderMenuInstance = {
  type SelectMenuInstance (line 135) | interface SelectMenuInstance {
  type CascaderInst (line 144) | interface CascaderInst {

FILE: src/cascader/src/public-types.ts
  type CascaderSize (line 3) | type CascaderSize = 'small' | 'medium' | 'large'
  type CascaderSpinProps (line 4) | type CascaderSpinProps = SharedSpinProps

FILE: src/cascader/src/utils.ts
  function getRawNodePath (line 6) | function getRawNodePath(
  function createSelectOptions (line 16) | function createSelectOptions(
  function getPathLabel (line 52) | function getPathLabel(

FILE: src/cascader/styles/light.ts
  function self (line 10) | function self(vars: ThemeCommonVars) {
  type CascaderThemeVars (line 43) | type CascaderThemeVars = ReturnType<typeof self>
  type CascaderTheme (line 59) | type CascaderTheme = typeof cascaderLight

FILE: src/cascader/tests/Cascader.spec.ts
  function getOptions (line 6) | function getOptions(depth = 3, iterator = 1, prefix = ''): CascaderOptio...

FILE: src/checkbox/src/Checkbox.tsx
  type CheckboxProps (line 75) | type CheckboxProps = ExtractPublicPropTypes<typeof checkboxProps>
  method setup (line 80) | setup(props) {
  method render (line 321) | render() {

FILE: src/checkbox/src/CheckboxGroup.tsx
  type CheckboxGroupInjection (line 16) | interface CheckboxGroupInjection {
  type CheckboxGroupProps (line 70) | type CheckboxGroupProps = ExtractPublicPropTypes<
  method setup (line 77) | setup(props) {
  method render (line 221) | render() {

FILE: src/checkbox/src/interface.ts
  type OnUpdateChecked (line 1) | type OnUpdateChecked = (
  type OnUpdateCheckedImpl (line 5) | type OnUpdateCheckedImpl = (
  type CheckboxInst (line 10) | interface CheckboxInst {

FILE: src/checkbox/src/public-types.ts
  type CheckboxSize (line 1) | type CheckboxSize = 'small' | 'medium' | 'large'

FILE: src/checkbox/styles/dark.ts
  method self (line 8) | self(vars) {

FILE: src/checkbox/styles/light.ts
  function self (line 7) | function self(vars: ThemeCommonVars) {
  type CheckboxThemeVars (line 52) | type CheckboxThemeVars = ReturnType<typeof self>
  type CheckboxTheme (line 61) | type CheckboxTheme = typeof checkboxLight

FILE: src/checkbox/tests/Checkbox.spec.tsx
  function expectChecked (line 7) | function expectChecked(wrapper: VueWrapper<any>, value: boolean): void {

FILE: src/code/src/Code.tsx
  type CodeProps (line 31) | type CodeProps = ExtractPublicPropTypes<typeof codeProps>
  method setup (line 36) | setup(props, { slots }) {
  method render (line 195) | render() {

FILE: src/code/styles/dark.ts
  method self (line 7) | self(vars) {

FILE: src/code/styles/light.ts
  function self (line 5) | function self(vars: ThemeCommonVars) {
  type CodeThemeVars (line 26) | type CodeThemeVars = ReturnType<typeof self>
  type CodeTheme (line 35) | type CodeTheme = typeof codeLight

FILE: src/collapse-transition/src/CollapseTransition.tsx
  type CollapseTransitionProps (line 30) | type CollapseTransitionProps = ExtractPublicPropTypes<
  method setup (line 38) | setup(props) {
  method render (line 93) | render() {

FILE: src/collapse-transition/styles/light.ts
  function self (line 5) | function self(vars: ThemeCommonVars) {
  type CollapseTransitionThemeVars (line 12) | type CollapseTransitionThemeVars = ReturnType<typeof self>
  type CollapseTransitionTheme (line 24) | type CollapseTransitionTheme = typeof collapseTransitionLight

FILE: src/collapse/src/Collapse.tsx
  type CollapseProps (line 84) | type CollapseProps = ExtractPublicPropTypes<typeof collapseProps>
  type CollapseSlots (line 86) | interface CollapseSlots {
  type NCollapseInjection (line 93) | interface NCollapseInjection {
  method setup (line 112) | setup(props, { slots }) {
  method render (line 250) | render() {

FILE: src/collapse/src/CollapseItem.tsx
  type CollapseItemProps (line 33) | type CollapseItemProps = ExtractPublicPropTypes<typeof collapseItemProps>
  type CollapseItemSlots (line 35) | interface CollapseItemSlots {
  method setup (line 45) | setup(props) {
  method render (line 114) | render() {

FILE: src/collapse/src/CollapseItemContent.tsx
  method setup (line 19) | setup(props) {
  method render (line 25) | render() {

FILE: src/collapse/src/interface.ts
  type OnUpdateExpandedNames (line 1) | type OnUpdateExpandedNames = <
  type OnUpdateExpandedNamesImpl (line 12) | type OnUpdateExpandedNamesImpl = <
  type OnItemHeaderClick (line 24) | type OnItemHeaderClick = <T extends string & number & (string | number)>(
  type OnItemHeaderClickImpl (line 28) | type OnItemHeaderClickImpl = <
  type HeaderClickInfo (line 34) | interface HeaderClickInfo<T> {
  type CollapseArrowSlotProps (line 40) | interface CollapseArrowSlotProps {
  type CollapseItemHeaderSlotProps (line 44) | interface CollapseItemHeaderSlotProps {
  type CollapseItemHeaderExtraSlotProps (line 48) | interface CollapseItemHeaderExtraSlotProps {
  type CollapseItemArrowSlotProps (line 52) | interface CollapseItemArrowSlotProps {

FILE: src/collapse/styles/light.ts
  function self (line 5) | function self(vars: ThemeCommonVars) {
  type CollapseThemeVars (line 29) | type CollapseThemeVars = ReturnType<typeof self>
  type CollapseTheme (line 38) | type CollapseTheme = typeof collapseLight

FILE: src/color-picker/src/AlphaSlider.tsx
  constant HANDLE_SIZE (line 8) | const HANDLE_SIZE = '12px'
  constant HANDLE_SIZE_NUM (line 9) | const HANDLE_SIZE_NUM = 12
  constant RADIUS (line 10) | const RADIUS = '6px'
  method setup (line 33) | setup(props) {
  method render (line 66) | render() {

FILE: src/color-picker/src/ColorInput.tsx
  method setup (line 55) | setup(props) {
  method render (line 101) | render() {

FILE: src/color-picker/src/ColorInputUnit.tsx
  function normalizeRgbUnit (line 7) | function normalizeRgbUnit(value: string): number | false {
  function normalizeHueUnit (line 15) | function normalizeHueUnit(value: string): number | false {
  function normalizeSlvUnit (line 23) | function normalizeSlvUnit(value: string): number | false {
  function normalizeHexaUnit (line 30) | function normalizeHexaUnit(value: string): boolean {
  function normalizeAlphaUnit (line 39) | function normalizeAlphaUnit(value: string): number | false {
  method setup (line 67) | setup(props) {
  method render (line 149) | render() {

FILE: src/color-picker/src/ColorPicker.tsx
  type ColorPickerProps (line 137) | type ColorPickerProps = ExtractPublicPropTypes<typeof colorPickerProps>
  type ColorPickerSlots (line 139) | interface ColorPickerSlots {
  method setup (line 155) | setup(props, { slots }) {
  method render (line 760) | render() {

FILE: src/color-picker/src/ColorPickerSwatches.tsx
  function normalizeColor (line 9) | function normalizeColor(color: string, mode: ColorPickerMode | null): st...
  function getHexFromName (line 20) | function getHexFromName(color: string): string {
  type ParsedColor (line 29) | interface ParsedColor {
  method setup (line 55) | setup(props) {
  method render (line 105) | render() {

FILE: src/color-picker/src/ColorPickerTrigger.tsx
  method setup (line 27) | setup(props) {

FILE: src/color-picker/src/ColorPreview.tsx
  method setup (line 30) | setup(props) {
  method render (line 44) | render() {

FILE: src/color-picker/src/HueSlider.tsx
  constant HANDLE_SIZE (line 6) | const HANDLE_SIZE = '12px'
  constant HANDLE_SIZE_NUM (line 7) | const HANDLE_SIZE_NUM = 12
  constant RADIUS (line 8) | const RADIUS = '6px'
  constant RADIUS_NUM (line 9) | const RADIUS_NUM = 6
  constant GRADIENT (line 11) | const GRADIENT
  method setup (line 31) | setup(props) {
  method render (line 60) | render() {

FILE: src/color-picker/src/Pallete.tsx
  constant HANDLE_SIZE (line 6) | const HANDLE_SIZE = '12px'
  constant RADIUS (line 7) | const RADIUS = '6px'
  method setup (line 35) | setup(props) {
  method render (line 71) | render() {

FILE: src/color-picker/src/interface.ts
  type OnUpdateValue (line 3) | type OnUpdateValue = (value: string & null) => void
  type OnConfirm (line 4) | type OnConfirm = OnUpdateValue
  type OnClear (line 5) | type OnClear = () => void
  type OnUpdateValueImpl (line 6) | type OnUpdateValueImpl = (value: string | null) => void
  type OnConfirmImpl (line 7) | type OnConfirmImpl = OnUpdateValueImpl
  type RenderLabel (line 9) | type RenderLabel = (value: string | null) => VNodeChild

FILE: src/color-picker/src/public-types.ts
  type ColorPickerSize (line 1) | type ColorPickerSize = 'small' | 'medium' | 'large'

FILE: src/color-picker/src/utils.ts
  type ColorPickerMode (line 19) | type ColorPickerMode = 'rgb' | 'hsl' | 'hsv' | 'hex'
  type ActionType (line 21) | type ActionType = 'confirm' | 'clear'
  function deriveDefaultValue (line 23) | function deriveDefaultValue(
  function getModeFromValue (line 44) | function getModeFromValue(color: string | null): ColorPickerMode | null {
  function getWCAGContrast (line 58) | function getWCAGContrast(
  function rgb2luminance (line 87) | function rgb2luminance(rgb: RGB): number {
  function floor (line 95) | function floor(color: number[]): number[] {
  function normalizeHue (line 99) | function normalizeHue(hue: number): number {
  function normalizeAlpha (line 104) | function normalizeAlpha(alpha: number): number {
  method hex (line 111) | hex(value: string): string {
  method hsl (line 114) | hsl(value: string): string {
  method hsv (line 118) | hsv(value: string): string {
  method rgb (line 124) | rgb(value: string): string {
  method hsl (line 127) | hsl(value: string): string {
  method hsv (line 131) | hsv(value: string): string {
  method hex (line 137) | hex(value: string): string {
  method rgb (line 141) | rgb(value: string): string {
  method hsv (line 145) | hsv(value: string): string {
  method hex (line 151) | hex(value: string): string {
  method rgb (line 155) | rgb(value: string) {
  method hsl (line 159) | hsl(value: string): string {
  function convertColor (line 186) | function convertColor(

FILE: src/color-picker/styles/light.ts
  function self (line 7) | function self(vars: ThemeCommonVars) {
  type ColorPickerThemeVars (line 40) | type ColorPickerThemeVars = ReturnType<typeof self>
  type ColorPickerTheme (line 53) | type ColorPickerTheme = typeof colorPickerLight

FILE: src/composables/use-theme-vars.ts
  function useThemeVars (line 8) | function useThemeVars(): ComputedRef<

FILE: src/config-provider/src/ConfigProvider.ts
  type ConfigProviderProps (line 63) | type ConfigProviderProps = Partial<
  method setup (line 71) | setup(props) {
  method render (line 233) | render() {

FILE: src/config-provider/src/interface.ts
  type CustomThemeCommonVars (line 7) | interface CustomThemeCommonVars {}
  type GlobalTheme (line 9) | interface GlobalTheme extends GlobalThemeWithoutCommon {
  type GlobalThemeOverrides (line 14) | type GlobalThemeOverrides = {

FILE: src/config-provider/src/internal-interface.ts
  type GlobalThemeWithoutCommon (line 136) | interface GlobalThemeWithoutCommon {
  type GlobalComponentConfig (line 231) | interface GlobalComponentConfig {
  type GlobalIconConfig (line 347) | interface GlobalIconConfig {
  type RtlItem (line 368) | interface RtlItem {
  type RtlProp (line 373) | type RtlProp = RtlItem[]
  type RtlEnabledState (line 375) | type RtlEnabledState = Partial<
  type Breakpoints (line 379) | type Breakpoints = Record<string, number> | undefined
  type ConfigProviderInjection (line 381) | interface ConfigProviderInjection {

FILE: src/config-provider/src/katex.ts
  type Katex (line 3) | type Katex = typeof katex

FILE: src/config-provider/tests/ComponentSize.spec.tsx
  function mountWithConfig (line 40) | function mountWithConfig(
  function mountDirect (line 59) | function mountDirect(
  function testGlobalSize (line 67) | function testGlobalSize(
  constant SML (line 90) | const SML = ['small', 'medium', 'large'] as const

FILE: src/countdown/src/Countdown.tsx
  type CountdownTimeInfo (line 11) | interface CountdownTimeInfo {
  type CountdownInst (line 18) | interface CountdownInst {
  type CountdownProps (line 39) | type CountdownProps = ExtractPublicPropTypes<typeof countdownProps>
  method setup (line 44) | setup(props) {
  method render (line 169) | render() {

FILE: src/create.ts
  type ComponentType (line 4) | type ComponentType = any
  type NUiInstance (line 6) | interface NUiInstance {
  type NUiCreateOptions (line 12) | interface NUiCreateOptions {
  function create (line 17) | function create({

FILE: src/data-table/src/DataTable.tsx
  method setup (line 47) | setup(props, { slots }) {
  method render (line 475) | render() {

FILE: src/data-table/src/HeaderButton/FilterButton.tsx
  function createFilterState (line 18) | function createFilterState(
  method setup (line 40) | setup(props) {
  method render (line 114) | render() {

FILE: src/data-table/src/HeaderButton/FilterMenu.tsx
  method setup (line 56) | setup(props) {
  method render (line 139) | render() {

FILE: src/data-table/src/HeaderButton/RenderFilter.ts
  method render (line 21) | render() {

FILE: src/data-table/src/HeaderButton/RenderSorter.ts
  method render (line 18) | render() {

FILE: src/data-table/src/HeaderButton/ResizeButton.tsx
  method setup (line 13) | setup(props) {
  method render (line 50) | render() {

FILE: src/data-table/src/HeaderButton/SortButton.tsx
  method setup (line 18) | setup(props) {
  method render (line 52) | render() {

FILE: src/data-table/src/MainTable.tsx
  method setup (line 14) | setup() {
  method render (line 102) | render() {

FILE: src/data-table/src/TableParts/Body.tsx
  type StyleCProps (line 41) | interface StyleCProps {
  type NormalRowRenderInfo (line 49) | interface NormalRowRenderInfo {
  type RowRenderInfo (line 56) | type RowRenderInfo
  function flatten (line 74) | function flatten(
  method render (line 127) | render() {
  method setup (line 157) | setup(props) {
  method render (line 523) | render() {

FILE: src/data-table/src/TableParts/BodyCheckbox.tsx
  method setup (line 26) | setup(props) {

FILE: src/data-table/src/TableParts/BodyRadio.tsx
  method setup (line 24) | setup(props) {

FILE: src/data-table/src/TableParts/Cell.tsx
  method render (line 42) | render() {

FILE: src/data-table/src/TableParts/ExpandTrigger.tsx
  method render (line 32) | render() {

FILE: src/data-table/src/TableParts/Header.tsx
  function renderTitle (line 31) | function renderTitle(
  method render (line 55) | render() {
  method setup (line 83) | setup() {
  method render (line 195) | render() {

FILE: src/data-table/src/TableParts/SelectionMenu.tsx
  function createSelectHandler (line 13) | function createSelectHandler(
  function createDropdownOptions (line 49) | function createDropdownOptions(
  method setup (line 90) | setup(props) {

FILE: src/data-table/src/interface.ts
  type DataTableSlots (line 182) | interface DataTableSlots {
  type FilterOptionValue (line 188) | type FilterOptionValue = string | number
  type ColumnKey (line 189) | type ColumnKey = string | number
  type RowKey (line 190) | type RowKey = string | number
  type SortOrderFlag (line 192) | type SortOrderFlag = 1 | -1 | 0
  type RowData (line 194) | type RowData = Record<string, any>
  type InternalRowData (line 196) | type InternalRowData = Record<string, unknown>
  type CreateRowKey (line 198) | type CreateRowKey<T = InternalRowData> = (row: T) => RowKey
  type CreateRowClassName (line 199) | type CreateRowClassName<T = InternalRowData> = (
  type CreateRowProps (line 203) | type CreateRowProps<T = InternalRowData> = (
  type CreateCellProps (line 207) | type CreateCellProps<T = InternalRowData> = (
  type CompareFn (line 212) | type CompareFn<T = InternalRowData> = (row1: T, row2: T) => number
  type Sorter (line 213) | type Sorter<T = InternalRowData> = CompareFn<T> | SorterMultiple<T>
  type SorterMultiple (line 214) | interface SorterMultiple<T = InternalRowData> {
  type Filter (line 219) | type Filter<T = InternalRowData> = (
  type FilterOption (line 224) | interface FilterOption {
  type TmNode (line 229) | type TmNode = TreeNode<InternalRowData>
  type SortOrder (line 232) | type SortOrder = 'ascend' | 'descend' | false
  type Ellipsis (line 234) | type Ellipsis = boolean | EllipsisProps
  type CommonColumnInfo (line 236) | interface CommonColumnInfo<T = InternalRowData> {
  type DataTableHeightForRow (line 250) | type DataTableHeightForRow<T = RowData> = (
  type TableColumnTitle (line 255) | type TableColumnTitle
  type TableExpandColumnTitle (line 259) | type TableExpandColumnTitle
  type TableColumnGroupTitle (line 263) | type TableColumnGroupTitle
  type TableColumnGroup (line 267) | type TableColumnGroup<T = InternalRowData> = {
  type TableBaseColumn (line 278) | type TableBaseColumn<T = InternalRowData> = {
  type TableSelectionColumn (line 316) | type TableSelectionColumn<T = InternalRowData> = {
  type RenderExpand (line 333) | type RenderExpand<T = InternalRowData> = (
  type RenderExpandIcon (line 337) | type RenderExpandIcon = ({
  type Expandable (line 346) | type Expandable<T = InternalRowData> = (row: T) => boolean
  type TableExpandColumn (line 347) | interface TableExpandColumn<T = InternalRowData>
  type TableColumn (line 355) | type TableColumn<T = InternalRowData>
  type TableColumns (line 360) | type TableColumns<T = InternalRowData> = Array<TableColumn<T>>
  type DataTableSelectionOptions (line 362) | type DataTableSelectionOptions<T = InternalRowData> = Array<
  type DataTableInjection (line 366) | interface DataTableInjection {
  type MainTableInjection (line 468) | interface MainTableInjection {
  type RenderFilter (line 473) | type RenderFilter = (props: {
  type RenderFilterIcon (line 478) | type RenderFilterIcon = RenderFilter
  type RenderSorter (line 480) | type RenderSorter = (props: { order: SortOrder }) => VNodeChild
  type RenderSorterIcon (line 482) | type RenderSorterIcon = RenderSorter
  type RenderFilterMenu (line 484) | type RenderFilterMenu = (actions: { hide: () => void }) => VNodeChild
  type OnUpdateExpandedRowKeys (line 486) | type OnUpdateExpandedRowKeys = (keys: RowKey[]) => void
  type OnUpdateCheckedRowKeys (line 487) | type OnUpdateCheckedRowKeys = (
  type OnUpdateSorter (line 497) | type OnUpdateSorter = (sortState: SortState & SortState[] & null) => void
  type OnUpdateSorterImpl (line 498) | type OnUpdateSorterImpl = (
  type OnUpdateFilters (line 501) | type OnUpdateFilters = (
  type SortState (line 506) | interface SortState {
  type FilterState (line 516) | type FilterState = Record<
  type MainTableRef (line 521) | interface MainTableRef {
  type MainTableBodyRef (line 527) | interface MainTableBodyRef {
  type MainTableHeaderRef (line 532) | interface MainTableHeaderRef {
  type OnFilterMenuChange (line 537) | type OnFilterMenuChange = <
  type OnFilterMenuChangeImpl (line 542) | type OnFilterMenuChangeImpl = (
  type DataTableInst (line 546) | interface DataTableInst {
  type CreateSummary (line 559) | type CreateSummary<T = InternalRowData> = (
  type SummaryCell (line 563) | interface SummaryCell {
  type SummaryRowData (line 568) | type SummaryRowData = Record<string, SummaryCell>
  type DataTableOnLoad (line 570) | type DataTableOnLoad = (node: RowData) => Promise<void>
  type DataTableSelectionOption (line 572) | type DataTableSelectionOption = 'all' | 'none'
  type DataTableProps (line 574) | type DataTableProps = ExtractPublicPropTypes<typeof dataTableProps>
  type DataTableSetupProps (line 575) | type DataTableSetupProps = ExtractPropTypes<typeof dataTableProps>
  type CsvOptionsType (line 577) | interface CsvOptionsType {

FILE: src/data-table/src/public-types.ts
  type DataTableGetCsvCell (line 4) | type DataTableGetCsvCell = (
  type DataTableGetCsvHeader (line 9) | type DataTableGetCsvHeader = (column: TableBaseColumn) => string
  type DataTableSize (line 10) | type DataTableSize = 'small' | 'medium' | 'large'
  type DataTableSpinProps (line 11) | type DataTableSpinProps = SharedSpinProps

FILE: src/data-table/src/styles/index.cssr.ts
  function createFixedColumnStyle (line 594) | function createFixedColumnStyle(): CNode[] {

FILE: src/data-table/src/use-check.ts
  function useCheck (line 14) | function useCheck(

FILE: src/data-table/src/use-expand.ts
  function useExpand (line 13) | function useExpand(

FILE: src/data-table/src/use-group-header.ts
  type RowItem (line 15) | interface RowItem {
  type ColItem (line 22) | interface ColItem {
  type RowItemMap (line 33) | type RowItemMap = WeakMap<TableColumn, RowItem>
  function getRowsAndCols (line 34) | function getRowsAndCols(
  function useGroupHeader (line 147) | function useGroupHeader(

FILE: src/data-table/src/use-resizable.ts
  function useResizable (line 5) | function useResizable() {

FILE: src/data-table/src/use-scroll.ts
  function useScroll (line 13) | function useScroll(

FILE: src/data-table/src/use-sorter.ts
  function getMultiplePriority (line 19) | function getMultiplePriority(
  function getSortFunction (line 28) | function getSortFunction(
  function getDefaultSorterFn (line 54) | function getDefaultSorterFn(
  function useSorter (line 79) | function useSorter(

FILE: src/data-table/src/use-table-data.ts
  function useTableData (line 25) | function useTableData(

FILE: src/data-table/src/utils.ts
  constant SELECTION_COL_WIDTH (line 18) | const SELECTION_COL_WIDTH = 40
  constant EXPAND_COL_WIDTH (line 19) | const EXPAND_COL_WIDTH = 40
  function getNumberColWidth (line 21) | function getNumberColWidth(col: TableColumn): number | undefined {
  function getStringColWidth (line 36) | function getStringColWidth(col: TableColumn): string | undefined {
  function getColKey (line 49) | function getColKey(col: TableColumn): string | number {
  function createShallowClonedObject (line 57) | function createShallowClonedObject<T>(object: T): T {
  function getFlagOfOrder (line 66) | function getFlagOfOrder(order: SortOrder): SortOrderFlag {
  function clampValueFollowCSSRules (line 75) | function clampValueFollowCSSRules(
  function createCustomWidthStyle (line 95) | function createCustomWidthStyle(
  function createRowClassName (line 115) | function createRowClassName(
  function shouldUseArrayInSingleMode (line 128) | function shouldUseArrayInSingleMode(column: TableBaseColumn): boolean {
  function isColumnSortable (line 136) | function isColumnSortable(column: TableColumn): boolean {
  function isColumnResizable (line 142) | function isColumnResizable(column: TableColumn): boolean {
  function isColumnFilterable (line 148) | function isColumnFilterable(column: TableColumn): boolean {
  function getNextOrderOf (line 156) | function getNextOrderOf(order: SortOrder): SortOrder {
  function createNextSorter (line 164) | function createNextSorter(
  function isColumnSorting (line 188) | function isColumnSorting(
  function formatCsvCell (line 200) | function formatCsvCell(value: unknown): string {
  function generateCsv (line 212) | function generateCsv(

FILE: src/data-table/styles/dark.ts
  method self (line 28) | self(vars) {

FILE: src/data-table/styles/light.ts
  function self (line 16) | function self(vars: ThemeCommonVars) {
  type DataTableThemeVars (line 105) | type DataTableThemeVars = ReturnType<typeof self>
  type DataTableTheme (line 125) | type DataTableTheme = typeof dataTableLight

FILE: src/data-table/tests/DataTable.spec.tsx
  method prefix (line 50) | prefix({ itemCount }: { itemCount: number | undefined }) {
  method prefix (line 66) | prefix({ itemCount }: { itemCount: number | undefined }) {
  type UserData (line 263) | interface UserData {
  method filter (line 329) | filter(value: any, row) {
  type Data (line 731) | interface Data {
  type Data (line 879) | interface Data {
  method render (line 921) | render(row) {
  method render (line 1170) | render(rowData: any, rowIndex: number) {
  method render (line 1202) | render(rowData: any, rowIndex: number) {

FILE: src/date-picker/src/DatePicker.tsx
  type DatePickerSetupProps (line 72) | type DatePickerSetupProps = ExtractPropTypes<typeof datePickerProps>
  type DatePickerSlots (line 74) | interface DatePickerSlots {
  method setup (line 95) | setup(props, { slots }) {
  method render (line 972) | render() {

FILE: src/date-picker/src/config.ts
  constant MONTH_ITEM_HEIGHT (line 2) | const MONTH_ITEM_HEIGHT = 40
  type DatePickerType (line 4) | type DatePickerType

FILE: src/date-picker/src/interface.ts
  type Value (line 21) | type Value = number | [number, number]
  type DefaultTime (line 23) | type DefaultTime
  type FormattedValue (line 29) | type FormattedValue = string | [string, string]
  type NowButtonProps (line 31) | type NowButtonProps = Pick<ButtonProps, 'size' | 'onClick'>
  type ClearButtonProps (line 33) | type ClearButtonProps = Pick<ButtonProps, 'size' | 'onClick'>
  type ConfirmButtonProps (line 35) | type ConfirmButtonProps = Pick<
  type Shortcuts (line 40) | type Shortcuts
  type OnUpdateValue (line 49) | type OnUpdateValue = (
  type OnConfirm (line 60) | type OnConfirm = OnUpdateValue
  type OnConfirmImpl (line 62) | type OnConfirmImpl = OnUpdateValueImpl
  type OnUpdateFormattedValue (line 64) | type OnUpdateFormattedValue = (
  type OnUpdateFormattedValueImpl (line 75) | type OnUpdateFormattedValueImpl = (
  type OnUpdateValueImpl (line 80) | type OnUpdateValueImpl = (
  type OnPanelUpdateValue (line 85) | type OnPanelUpdateValue = (
  type OnPanelUpdateValueImpl (line 93) | type OnPanelUpdateValueImpl = (
  type OnClose (line 98) | type OnClose = (disableUpdateOnClose: boolean) => void
  type RangePanelChildComponentRefs (line 100) | interface RangePanelChildComponentRefs {
  type PanelChildComponentRefs (line 109) | interface PanelChildComponentRefs {
  type PanelRef (line 116) | interface PanelRef
  type FirstDayOfWeek (line 124) | type FirstDayOfWeek = 0 | 1 | 2 | 3 | 4 | 5 | 6
  type DatePickerInjection (line 126) | type DatePickerInjection = {
  type IsDateDisabled (line 151) | type IsDateDisabled = IsSingleDateDisabled | IsRangeDateDisabled
  type IsSingleDateDisabledDetail (line 153) | type IsSingleDateDisabledDetail
  type IsSingleDateDisabled (line 178) | type IsSingleDateDisabled = (
  type IsRangeDateDisabled (line 182) | type IsRangeDateDisabled = (
  type TimeValidator (line 188) | interface TimeValidator {
  type IsTimeDisabled (line 194) | type IsTimeDisabled = IsSingleTimeDisabled | IsRangeTimeDisabled
  type IsSingleTimeDisabled (line 195) | type IsSingleTimeDisabled = (date: number) => TimeValidator
  type IsRangeTimeDisabled (line 196) | type IsRangeTimeDisabled = (
  type DatePickerGetDefaultTime (line 202) | type DatePickerGetDefaultTime = (timestamp: number) => string
  type DatePickerGetRangeDefaultTime (line 203) | type DatePickerGetRangeDefaultTime = (

FILE: src/date-picker/src/panel/date.tsx
  method setup (line 38) | setup(props) {
  method render (line 51) | render() {

FILE: src/date-picker/src/panel/daterange.tsx
  method setup (line 25) | setup(props) {
  method render (line 38) | render() {

FILE: src/date-picker/src/panel/datetime.tsx
  method setup (line 30) | setup(props) {
  method render (line 33) | render() {

FILE: src/date-picker/src/panel/datetimerange.tsx
  method setup (line 27) | setup(props) {
  method render (line 40) | render() {

FILE: src/date-picker/src/panel/month.tsx
  method setup (line 36) | setup(props) {
  method render (line 132) | render() {

FILE: src/date-picker/src/panel/monthrange.tsx
  method setup (line 30) | setup(props) {
  method render (line 100) | render() {

FILE: src/date-picker/src/panel/panelHeader.tsx
  method setup (line 38) | setup(props) {
  method render (line 76) | render() {

FILE: src/date-picker/src/panel/use-calendar.ts
  function useCalendar (line 57) | function useCalendar(

FILE: src/date-picker/src/panel/use-dual-calendar.ts
  function useDualCalendar (line 50) | function useDualCalendar(

FILE: src/date-picker/src/panel/use-panel-common.ts
  constant TIME_FORMAT (line 14) | const TIME_FORMAT = 'HH:mm:ss'
  type UsePanelCommonProps (line 61) | type UsePanelCommonProps = ExtractPropTypes<typeof usePanelCommonProps>
  function usePanelCommon (line 63) | function usePanelCommon(props: UsePanelCommonProps) {

FILE: src/date-picker/src/public-types.ts
  type DatePickerSize (line 4) | type DatePickerSize = 'small' | 'medium' | 'large'
  type DatePickerInst (line 6) | interface DatePickerInst {
  type DatePickerProps (line 11) | type DatePickerProps = ExtractPublicPropTypes<typeof datePickerProps>
  type DatePickerClearSlotOnClear (line 13) | type DatePickerClearSlotOnClear = () => void
  type DatePickerClearSlotProps (line 14) | interface DatePickerClearSlotProps {
  type DatePickerNowSlotOnNow (line 19) | type DatePickerNowSlotOnNow = () => void
  type DatePickerNowSlotProps (line 20) | interface DatePickerNowSlotProps {
  type DatePickerConfirmSlotOnConfirm (line 25) | type DatePickerConfirmSlotOnConfirm = () => void
  type DatePickerConfirmSlotProps (line 26) | interface DatePickerConfirmSlotProps {

FILE: src/date-picker/src/utils.ts
  function getDerivedTimeFromKeyboardEvent (line 33) | function getDerivedTimeFromKeyboardEvent(
  function makeWeekMatcher (line 60) | function makeWeekMatcher(firstDayOfWeek: FirstDayOfWeek) {
  function transformNaiveFirstDayOfWeekToDateFns (line 69) | function transformNaiveFirstDayOfWeekToDateFns(
  function matchDate (line 86) | function matchDate(
  type DateItem (line 97) | interface DateItem {
  type MonthItem (line 114) | interface MonthItem {
  type YearItem (line 126) | interface YearItem {
  type QuarterItem (line 137) | interface QuarterItem {
  function dateOrWeekItem (line 149) | function dateOrWeekItem(
  function dateItem (line 167) | function dateItem(
  function getMonthString (line 209) | function getMonthString(
  function getYearString (line 218) | function getYearString(
  function getQuarterString (line 227) | function getQuarterString(
  function weekItem (line 236) | function weekItem(
  function monthItem (line 279) | function monthItem(
  function yearItem (line 302) | function yearItem(
  function quarterItem (line 324) | function quarterItem(
  function dateArray (line 351) | function dateArray(
  function monthArray (line 420) | function monthArray(
  function quarterArray (line 438) | function quarterArray(
  function yearArray (line 461) | function yearArray(
  function strictParse (line 480) | function strictParse(
  function extractSingleDefaultTime (line 496) | function extractSingleDefaultTime(
  function extractRangeDefaultTime (line 511) | function extractRangeDefaultTime(
  function getDefaultTime (line 528) | function getDefaultTime(timeValue: string | undefined):
  function pluckValueFromRange (line 549) | function pluckValueFromRange(

FILE: src/date-picker/src/validation-utils.ts
  function uniCalendarValidation (line 12) | function uniCalendarValidation(
  function dualCalendarValidation (line 92) | function dualCalendarValidation(

FILE: src/date-picker/styles/dark.ts
  method self (line 19) | self(vars) {

FILE: src/date-picker/styles/light.ts
  function self (line 11) | function self(vars: ThemeCommonVars) {
  type DatePickerThemeVars (line 61) | type DatePickerThemeVars = ReturnType<typeof self>
  type DatePickerTheme (line 76) | type DatePickerTheme = typeof datePickerLight

FILE: src/descriptions/src/Descriptions.tsx
  type DescriptionsProps (line 49) | type DescriptionsProps = ExtractPublicPropTypes<typeof descriptionsProps>
  type DescriptionProps (line 51) | type DescriptionProps = DescriptionsProps
  type DescriptionsSlots (line 53) | interface DescriptionsSlots {
  method setup (line 62) | setup(props) {
  method render (line 155) | render() {

FILE: src/descriptions/src/DescriptionsItem.ts
  type DescriptionItemProps (line 18) | type DescriptionItemProps = ExtractPublicPropTypes<
  type DescriptionItemSlots (line 22) | interface DescriptionItemSlots {
  method render (line 32) | render() {

FILE: src/descriptions/src/public-types.ts
  type DescriptionsSize (line 1) | type DescriptionsSize = 'small' | 'medium' | 'large'

FILE: src/descriptions/src/utils.ts
  constant DESCRIPTION_ITEM_FLAG (line 3) | const DESCRIPTION_ITEM_FLAG = 'DESCRIPTION_ITEM_FLAG'
  function isDescriptionsItem (line 5) | function isDescriptionsItem(vNode: VNodeChild): boolean {

FILE: src/descriptions/styles/light.ts
  function self (line 7) | function self(vars: ThemeCommonVars) {
  type DescriptionsThemeVars (line 46) | type DescriptionsThemeVars = ReturnType<typeof self>
  type DescriptionsTheme (line 55) | type DescriptionsTheme = typeof descriptionsLight

FILE: src/descriptions/tests/Descriptions.spec.ts
  function getDescriptionsItemList (line 6) | function getDescriptionsItemList(): VNode[] {

FILE: src/dialog/src/Dialog.tsx
  type DialogSlots (line 33) | interface DialogSlots {
  method setup (line 52) | setup(props) {
  method render (line 178) | render() {

FILE: src/dialog/src/DialogEnvironment.tsx
  method setup (line 55) | setup(props) {
  method render (line 136) | render() {

FILE: src/dialog/src/DialogProvider.ts
  type DialogOptions (line 15) | type DialogOptions = Mutable<
  type DialogReactive (line 25) | type DialogReactive = {
  type TypeSafeDialogReactive (line 33) | type TypeSafeDialogReactive = DialogReactive & {
  type DialogApiInjection (line 38) | interface DialogApiInjection {
  type DialogProviderInjection (line 47) | interface DialogProviderInjection {
  type DialogReactiveListInjection (line 52) | type DialogReactiveListInjection = Ref<DialogReactive[]>
  type DialogInst (line 54) | interface DialogInst {
  type DialogProviderInst (line 58) | type DialogProviderInst = DialogApiInjection
  type DialogProviderProps (line 65) | type DialogProviderProps = ExtractPublicPropTypes<
  method setup (line 72) | setup() {
  method render (line 130) | render() {

FILE: src/dialog/src/composables.ts
  function useDialog (line 10) | function useDialog(): DialogApiInjection {
  function useDialogReactiveList (line 18) | function useDialogReactiveList(): Ref<readonly DialogReactive[]> {

FILE: src/dialog/src/dialogProps.ts
  type DialogProps (line 45) | type DialogProps = ExtractPublicPropTypes<typeof dialogProps>

FILE: src/dialog/src/interface.ts
  type IconPlacement (line 1) | type IconPlacement = 'left' | 'top'

FILE: src/dialog/styles/light.ts
  function self (line 7) | function self(vars: ThemeCommonVars) {
  type DialogThemeVars (line 52) | type DialogThemeVars = ReturnType<typeof self>
  type DialogTheme (line 64) | type DialogTheme = typeof dialogLight

FILE: src/dialog/tests/Dialog.spec.tsx
  method render (line 7) | render() {
  function createTestComponent (line 12) | function createTestComponent(
  method setup (line 37) | setup() {
  method render (line 45) | render() {
  method setup (line 77) | setup() {
  method render (line 86) | render() {
  method setup (line 100) | setup() {
  method render (line 108) | render() {
  method setup (line 126) | setup() {
  method render (line 134) | render() {
  method setup (line 151) | setup() {
  method render (line 161) | render() {

FILE: src/discrete/src/InjectionExtractor.tsx
  method setup (line 9) | setup(props, { slots }) {

FILE: src/discrete/src/discrete.ts
  function createDiscreteApi (line 14) | function createDiscreteApi<T extends DiscreteApiType>(

FILE: src/discrete/src/discreteApp.ts
  type Provider (line 19) | type Provider<P = any> = new (...args: any[]) => { $props: P }
  type ProviderProps (line 21) | type ProviderProps<C> = C extends Provider<infer P> ? P : unknown
  type DiscreteAppOptions (line 23) | interface DiscreteAppOptions {
  type DiscreteApp (line 32) | interface DiscreteApp {
  function createDiscreteApp (line 50) | function createDiscreteApp({

FILE: src/discrete/src/interface.ts
  type MaybeRef (line 13) | type MaybeRef<T> = Ref<T> | T
  type DiscreteApiOptions (line 15) | interface DiscreteApiOptions {
  type DiscreteApiType (line 24) | type DiscreteApiType
  type DiscreteApi (line 31) | type DiscreteApi<T extends DiscreteApiType = DiscreteApiType> = {

FILE: src/divider/src/Divider.tsx
  type DividerProps (line 20) | type DividerProps = ExtractPublicPropTypes<typeof dividerProps>
  method setup (line 25) | setup(props) {
  method render (line 57) | render() {

FILE: src/divider/styles/light.ts
  function self (line 5) | function self(vars: ThemeCommonVars) {
  type DividerThemeVars (line 14) | type DividerThemeVars = ReturnType<typeof self>
  type DividerTheme (line 23) | type DividerTheme = typeof dividerLight

FILE: src/drawer/src/Drawer.tsx
  type DrawerProps (line 123) | type DrawerProps = ExtractPublicPropTypes<typeof drawerProps>
  method setup (line 129) | setup(props) {
  method render (line 340) | render() {

FILE: src/drawer/src/DrawerBodyWrapper.tsx
  type Placement (line 27) | type Placement = 'left' | 'right' | 'top' | 'bottom'
  method setup (line 75) | setup(props) {
  method render (line 242) | render() {

FILE: src/drawer/src/DrawerContent.tsx
  type DrawerContentProps (line 24) | type DrawerContentProps = ExtractPublicPropTypes<
  type DrawerContentSlots (line 28) | interface DrawerContentSlots {
  method setup (line 38) | setup() {
  method render (line 56) | render() {

FILE: src/drawer/src/interface.ts
  type DrawerBodyInjection (line 6) | type DrawerBodyInjection = Ref<HTMLElement | null> | null
  type DrawerInjection (line 10) | interface DrawerInjection {

FILE: src/drawer/styles/light.ts
  function self (line 6) | function self(vars: ThemeCommonVars) {
  type DrawerThemeVars (line 49) | type DrawerThemeVars = ReturnType<typeof self>
  type DrawerTheme (line 61) | type DrawerTheme = typeof drawerLight

FILE: src/drawer/tests/Drawer.spec.tsx
  function expectDrawerExists (line 10) | function expectDrawerExists(): void {
  function mountDrawer (line 19) | function mountDrawer({

FILE: src/dropdown/src/Dropdown.tsx
  type DropdownInjection (line 48) | interface DropdownInjection {
  type DropdownProps (line 119) | type DropdownProps = ExtractPublicPropTypes<typeof dropdownProps>
  method setup (line 125) | setup(props) {
  method render (line 437) | render() {

FILE: src/dropdown/src/DropdownDivider.tsx
  method render (line 11) | render() {

FILE: src/dropdown/src/DropdownGroup.tsx
  method render (line 34) | render() {

FILE: src/dropdown/src/DropdownGroupHeader.tsx
  method setup (line 18) | setup() {
  method render (line 33) | render() {

FILE: src/dropdown/src/DropdownMenu.tsx
  type NDropdownMenuInjection (line 29) | interface NDropdownMenuInjection {
  method setup (line 57) | setup(props) {
  method render (line 93) | render() {

FILE: src/dropdown/src/DropdownOption.tsx
  type NDropdownOptionInjection (line 39) | interface NDropdownOptionInjection {
  method setup (line 67) | setup(props) {
  method render (line 235) | render() {

FILE: src/dropdown/src/DropdownRenderOption.tsx
  method render (line 14) | render() {

FILE: src/dropdown/src/interface.ts
  type Key (line 12) | type Key = string | number
  type DropdownOption (line 15) | type DropdownOption = MenuOption
  type DropdownGroupOption (line 16) | type DropdownGroupOption = MenuGroupOption
  type DropdownDividerOption (line 17) | type DropdownDividerOption = MenuDividerOption
  type DropdownRenderOption (line 18) | type DropdownRenderOption = MenuRenderOption
  type DropdownMixedOption (line 19) | type DropdownMixedOption
  type DropdownIgnoredOption (line 25) | type DropdownIgnoredOption = MenuIgnoredOption
  type DropdownIntersectionOption (line 27) | type DropdownIntersectionOption = DropdownOption & DropdownGroupOption
  type TmNode (line 29) | type TmNode = TreeNode<
  type OnUpdateValue (line 35) | type OnUpdateValue = <T extends string & number & (string | number)>(
  type OnUpdateKeys (line 40) | type OnUpdateKeys = <
  type OnUpdateValueImpl (line 46) | type OnUpdateValueImpl = <T extends string | number | (string | number)>(
  type OnUpdateKeysImpl (line 51) | type OnUpdateKeysImpl = <
  type RenderLabelImpl (line 57) | type RenderLabelImpl = (option: DropdownMixedOption) => VNodeChild
  type RenderLabel (line 59) | type RenderLabel = (option: DropdownIntersectionOption) => VNodeChild
  type RenderIconImpl (line 61) | type RenderIconImpl = (option: DropdownMixedOption) => VNodeChild
  type RenderIcon (line 63) | type RenderIcon = (option: DropdownIntersectionOption) => VNodeChild
  type RenderOption (line 65) | type RenderOption = (info: {
  type RenderOptionImpl (line 70) | type RenderOptionImpl = (info: {
  type NodeProps (line 75) | type NodeProps = MenuNodeProps
  type DropdownMenuProps (line 76) | type DropdownMenuProps = (

FILE: src/dropdown/src/public-types.ts
  type DropdownSize (line 1) | type DropdownSize = 'small' | 'medium' | 'large' | 'huge'

FILE: src/dropdown/src/utils.ts
  function isSubmenuNode (line 3) | function isSubmenuNode(
  function isGroupNode (line 13) | function isGroupNode(rawNode: DropdownMixedOption): boolean {
  function isDividerNode (line 17) | function isDividerNode(rawNode: DropdownMixedOption): boolean {
  function isRenderNode (line 21) | function isRenderNode(

FILE: src/dropdown/styles/dark.ts
  method self (line 13) | self(vars) {

FILE: src/dropdown/styles/light.ts
  function self (line 8) | function self(vars: ThemeCommonVars) {
  type DropdownThemeVars (line 67) | type DropdownThemeVars = ReturnType<typeof self>
  type DropdownTheme (line 78) | type DropdownTheme = typeof dropdownLight

FILE: src/dropdown/tests/Dropdown.spec.tsx
  method icon (line 30) | icon() {
  function mountDropdown (line 56) | function mountDropdown({

FILE: src/dynamic-input/src/DynamicInput.tsx
  type DynamicInputProps (line 97) | type DynamicInputProps = ExtractPublicPropTypes<typeof dynamicInputProps>
  type DynamicInputSlots (line 99) | interface DynamicInputSlots {
  method setup (line 109) | setup(props, { slots }) {
  method render (line 331) | render() {

FILE: src/dynamic-input/src/InputPreset.tsx
  method setup (line 25) | setup() {
  method render (line 32) | render() {

FILE: src/dynamic-input/src/PairPreset.tsx
  method setup (line 30) | setup(props) {
  method render (line 52) | render() {

FILE: src/dynamic-input/src/interface.ts
  type DynamicInputInjection (line 6) | interface DynamicInputInjection {
  type OnUpdateValue (line 16) | type OnUpdateValue = <T>(value: T[]) => void
  type DynamicInputDefaultSlotProps (line 18) | interface DynamicInputDefaultSlotProps {
  type DynamicInputActionSlotProps (line 23) | interface DynamicInputActionSlotProps {

FILE: src/dynamic-input/styles/dark.ts
  method self (line 14) | self() {

FILE: src/dynamic-input/styles/light.ts
  function self (line 7) | function self() {
  type DynamicInputThemeVars (line 11) | type DynamicInputThemeVars = ReturnType<typeof self>
  type DynamicInputTheme (line 24) | type DynamicInputTheme = typeof dynamicInputLight

FILE: src/dynamic-tags/src/DynamicTags.tsx
  type DynamicTagsProps (line 76) | type DynamicTagsProps = ExtractPublicPropTypes<typeof dynamicTagsProps>
  type DynamicTagsSlots (line 78) | interface DynamicTagsSlots {
  method setup (line 88) | setup(props) {
  method render (line 224) | render() {

FILE: src/dynamic-tags/src/interface.ts
  type OnUpdateValue (line 1) | type OnUpdateValue
  type OnUpdateValueImpl (line 5) | type OnUpdateValueImpl = (
  type OnCreate (line 9) | type OnCreate = (label: string) =>
  type DynamicTagsOption (line 16) | interface DynamicTagsOption {
  type DynamicTagsInputSlotProps (line 21) | interface DynamicTagsInputSlotProps {
  type DynamicTagsTriggerSlotProps (line 26) | interface DynamicTagsTriggerSlotProps {

FILE: src/dynamic-tags/src/public-types.ts
  type DynamicTagsSize (line 1) | type DynamicTagsSize = 'small' | 'medium' | 'large'

FILE: src/dynamic-tags/styles/dark.ts
  method self (line 17) | self() {

FILE: src/dynamic-tags/styles/light.ts
  method self (line 17) | self() {
  type DynamicTagsThemeVars (line 25) | interface DynamicTagsThemeVars {}
  type DynamicTagsTheme (line 26) | type DynamicTagsTheme = typeof dynamicTagsLight

FILE: src/element/src/Element.ts
  type ElementProps (line 17) | type ElementProps = ExtractPublicPropTypes<typeof elementProps>
  method setup (line 23) | setup(props) {
  method render (line 52) | render() {

FILE: src/element/styles/light.ts
  type ElementTheme (line 10) | type ElementTheme = typeof elementLight

FILE: src/ellipsis/src/Ellipsis.tsx
  function createLineClampClass (line 21) | function createLineClampClass(clsPrefix: string): string {
  function createCursorClass (line 25) | function createCursorClass(clsPrefix: string, cursor: string): string {
  type EllipsisProps (line 39) | type EllipsisProps = ExtractPublicPropTypes<typeof ellipsisProps>
  type EllipsisSlots (line 41) | interface EllipsisSlots {
  method setup (line 51) | setup(props, { slots, attrs }) {
  method render (line 203) | render() {

FILE: src/ellipsis/src/PerformantEllipsis.tsx
  method setup (line 15) | setup(props, { attrs, slots }) {
  method render (line 57) | render() {

FILE: src/ellipsis/styles/light.ts
  type EllipsisTheme (line 14) | type EllipsisTheme = typeof ellipsisLight

FILE: src/empty/src/Empty.tsx
  type EmptyProps (line 31) | type EmptyProps = ExtractPublicPropTypes<typeof emptyProps>
  type EmptySlots (line 33) | interface EmptySlots {
  method setup (line 43) | setup(props) {
  method render (line 110) | render() {

FILE: src/empty/styles/light.ts
  function self (line 6) | function self(vars: ThemeCommonVars) {
  type EmptyThemeVars (line 30) | type EmptyThemeVars = ReturnType<typeof self>
  type EmptyTheme (line 39) | type EmptyTheme = typeof emptyLight

FILE: src/equation/src/Equation.tsx
  type EquationProps (line 14) | type EquationProps = ExtractPublicPropTypes<typeof equationProps>
  method setup (line 19) | setup(props) {

FILE: src/equation/styles/light.ts
  type EquationThemeVars (line 6) | type EquationThemeVars = ReturnType<typeof self>
  type EquationTheme (line 15) | type EquationTheme = typeof equationLight

FILE: src/flex/src/Flex.tsx
  type FlexProps (line 35) | type FlexProps = ExtractPublicPropTypes<typeof flexProps>
  method setup (line 40) | setup(props) {
  method render (line 79) | render() {

FILE: src/flex/src/type.ts
  type FlexAlign (line 3) | type FlexAlign = Property.AlignItems
  type FlexJustify (line 5) | type FlexJustify = Property.JustifyContent

FILE: src/flex/styles/dark.ts
  method self (line 6) | self() {

FILE: src/flex/styles/light.ts
  function self (line 4) | function self() {
  type FlexThemeVars (line 8) | type FlexThemeVars = ReturnType<typeof self>
  type FlexTheme (line 16) | type FlexTheme = typeof flexLight

FILE: src/flex/tests/Flex.spec.tsx
  function getChildrenNode (line 6) | function getChildrenNode(wrapper: VueWrapper<any>): any[] {
  method render (line 17) | render() {
  method render (line 28) | render() {
  method render (line 39) | render() {
  method render (line 70) | render() {
  method render (line 95) | render() {
  method render (line 121) | render() {

FILE: src/float-button-group/src/FloatButtonGroup.tsx
  type ButtonGroupInjection (line 11) | interface ButtonGroupInjection {
  type FloatButtonGroupProps (line 31) | type FloatButtonGroupProps = ExtractPublicPropTypes<
  method setup (line 41) | setup(props) {
  method render (line 85) | render() {

FILE: src/float-button-group/styles/dark.ts
  method self (line 7) | self(vars) {

FILE: src/float-button-group/styles/light.ts
  function self (line 5) | function self(vars: ThemeCommonVars) {
  type FloatButtonGroupThemeVars (line 15) | type FloatButtonGroupThemeVars = ReturnType<typeof self>
  type FloatButtonGroupTheme (line 24) | type FloatButtonGroupTheme = typeof themeLight

FILE: src/float-button-group/tests/NFloatButtonGroup.spec.tsx
  method render (line 12) | render() {

FILE: src/float-button/src/FloatButton.tsx
  type FloatButtonProps (line 66) | type FloatButtonProps = ExtractPublicPropTypes<typeof floatButtonProps>
  type FloatButtonSlots (line 68) | interface FloatButtonSlots {
  method setup (line 78) | setup(props) {
  method render (line 223) | render() {

FILE: src/float-button/styles/dark.ts
  method self (line 7) | self(vars) {

FILE: src/float-button/styles/light.ts
  function self (line 5) | function self(vars: ThemeCommonVars) {
  type FloatButtonThemeVars (line 32) | type FloatButtonThemeVars = ReturnType<typeof self>
  type FloatButtonTheme (line 41) | type FloatButtonTheme = typeof themeLight

FILE: src/float-button/tests/FloatButton.spec.tsx
  method render (line 12) | render() {

FILE: src/form/src/Form.tsx
  type FormSetupProps (line 63) | type FormSetupProps = ExtractPropTypes<typeof formProps>
  type FormProps (line 64) | type FormProps = ExtractPublicPropTypes<typeof formProps>
  method setup (line 69) | setup(props) {
  method render (line 164) | render() {

FILE: src/form/src/FormItem.tsx
  type FormItemSetupProps (line 94) | type FormItemSetupProps = ExtractPropTypes<typeof formItemProps>
  type FormItemProps (line 95) | type FormItemProps = ExtractPublicPropTypes<typeof formItemProps>
  type WrappedValidator (line 102) | type WrappedValidator = (
  function wrapValidator (line 107) | function wrapValidator(
  method setup (line 156) | setup(props) {
  method render (line 544) | render() {

FILE: src/form/src/FormItemCol.ts
  type FormItemColProps (line 15) | type FormItemColProps = ExtractPublicPropTypes<typeof formItemColProps>
  method setup (line 20) | setup() {
  method render (line 40) | render() {

FILE: src/form/src/FormItemGridItem.ts
  type FormItemGiProps (line 19) | type FormItemGiProps = ExtractPublicPropTypes<typeof formItemGiProps>
  method setup (line 27) | setup() {
  method render (line 47) | render() {

FILE: src/form/src/FormItemRow.ts
  type FormItemRowProps (line 16) | type FormItemRowProps = ExtractPublicPropTypes<typeof formItemRowProps>
  method setup (line 21) | setup() {
  method render (line 41) | render() {

FILE: src/form/src/interface.ts
  type FormRules (line 10) | interface FormRules {
  type SetRule (line 14) | type SetRule<T, R> = T extends (rule: any, ...args: infer K) => infer P
  type FormItemRuleValidatorParams (line 18) | type FormItemRuleValidatorParams = Parameters<
  type FormItemRuleValidator (line 22) | type FormItemRuleValidator = (
  type FormItemRuleAsyncValidator (line 27) | type FormItemRuleAsyncValidator = (
  type FormItemRule (line 31) | type FormItemRule = Omit<RuleItem, 'validator' | 'asyncValidator'> & {
  type FormItemValidateOptions (line 40) | interface FormItemValidateOptions {
  type FormItemInternalValidateResult (line 47) | interface FormItemInternalValidateResult {
  type FormItemInternalValidate (line 53) | type FormItemInternalValidate = (
  type FormItemValidate (line 59) | type FormItemValidate = ((options: FormItemValidateOptions) => Promise<{
  type FormItemInst (line 67) | interface FormItemInst {
  type FormItemColRef (line 75) | type FormItemColRef = FormItemInst
  type FormItemRowRef (line 76) | type FormItemRowRef = FormItemInst
  type FormInjection (line 78) | interface FormInjection {
  type LabelAlign (line 84) | type LabelAlign = 'left' | 'center' | 'right'
  type LabelPlacement (line 85) | type LabelPlacement = 'left' | 'top'
  type ValidationTrigger (line 87) | type ValidationTrigger = 'input' | 'change' | 'blur' | 'focus'
  type ShouldRuleBeApplied (line 89) | type ShouldRuleBeApplied = (rule: FormItemRule) => boolean
  type ValidateCallback (line 90) | type ValidateCallback = (
  type FormValidateCallback (line 97) | type FormValidateCallback = (
  type FormValidate (line 103) | type FormValidate = (
  type FormValidationError (line 110) | type FormValidationError = ValidateError[]
  type FormInst (line 112) | interface FormInst {
  type FormValidateMessages (line 118) | interface FormValidateMessages extends ValidateMessages {}
  type FormItemSlots (line 120) | interface FormItemSlots {

FILE: src/form/src/public-types.ts
  type FormSize (line 1) | type FormSize = 'small' | 'medium' | 'large'
  type FormItemSize (line 2) | type FormItemSize = 'small' | 'medium' | 'large'
  type FormValidationStatus (line 3) | type FormValidationStatus = 'success' | 'error' | 'warning'

FILE: src/form/src/utils.ts
  function formItemSize (line 11) | function formItemSize(props: FormItemSetupProps): {
  function formItemMisc (line 33) | function formItemMisc(props: FormItemSetupProps) {
  function formItemRule (line 145) | function formItemRule(props: FormItemSetupProps) {

FILE: src/form/styles/light.ts
  function self (line 6) | function self(vars: ThemeCommonVars) {
  type FormThemeVars (line 31) | type FormThemeVars = ReturnType<typeof self>
  type FormTheme (line 40) | type FormTheme = typeof formLight

FILE: src/form/tests/Form.spec.tsx
  method setup (line 237) | setup() {
  method render (line 246) | render() {
  method setup (line 375) | setup() {
  method render (line 384) | render() {
  function validate (line 459) | async function validate(): Promise<Parameters<FormValidateCallback>> {
  method setup (line 539) | setup() {
  method render (line 547) | render() {
  function validate (line 596) | async function validate(): Promise<Parameters<FormValidateCallback>> {

FILE: src/global-style/src/GlobalStyle.ts
  method setup (line 15) | setup() {
  method render (line 76) | render() {

FILE: src/gradient-text/src/GradientText.tsx
  type Gradient (line 11) | type Gradient
  type GradientTextProps (line 33) | type GradientTextProps = ExtractPublicPropTypes<typeof gradientTextProps>
  method setup (line 38) | setup(props) {
  method render (line 113) | render() {

FILE: src/gradient-text/styles/dark.ts
  method self (line 7) | self(vars) {

FILE: src/gradient-text/styles/light.ts
  function self (line 6) | function self(vars: ThemeCommonVars) {
  type GradientTextThemeVars (line 31) | type GradientTextThemeVars = ReturnType<typeof self>
  type GradientTextTheme (line 40) | type GradientTextTheme = typeof gradientTextLight

FILE: src/grid/src/Grid.tsx
  constant SSR_ATTR_NAME (line 26) | const SSR_ATTR_NAME = '__ssr__'
  type NGridInjection (line 56) | interface NGridInjection {
  type GridProps (line 64) | type GridProps = ExtractPublicPropTypes<typeof gridProps>
  method setup (line 70) | setup(props) {
  method render (line 175) | render() {

FILE: src/grid/src/GridItem.tsx
  type GridItemVNodeProps (line 10) | interface GridItemVNodeProps {
  type GridItemProps (line 39) | type GridItemProps = ExtractPublicPropTypes<typeof gridItemProps>
  method setup (line 46) | setup() {
  method render (line 85) | render() {

FILE: src/grid/tests/Grid.spec.tsx
  method render (line 15) | render() {
  method render (line 31) | render() {

FILE: src/heatmap/src/ColorIndicator.tsx
  type HeatmapColorIndicatorSlots (line 4) | interface HeatmapColorIndicatorSlots {
  method setup (line 22) | setup(props, { slots }) {

FILE: src/heatmap/src/Heatmap.tsx
  type Col (line 39) | interface Col {
  type HeatmapProps (line 81) | type HeatmapProps = ExtractPublicPropTypes<typeof heatmapProps>
  method setup (line 87) | setup(props) {
  method render (line 332) | render() {

FILE: src/heatmap/src/Rect.tsx
  type RectSlots (line 8) | interface RectSlots {
  method setup (line 36) | setup(props) {
  method render (line 56) | render() {

FILE: src/heatmap/src/animationStyle.ts
  function useLoadingStyleClass (line 10) | function useLoadingStyleClass(

FILE: src/heatmap/src/interface.ts
  type DayRect (line 3) | interface DayRect extends HeatmapDataItem {

FILE: src/heatmap/src/public-types.ts
  type HeatmapData (line 3) | type HeatmapData = HeatmapDataItem[]
  type HeatmapDataItem (line 4) | interface HeatmapDataItem {
  type HeatmapTooltipSlotProps (line 9) | type HeatmapTooltipSlotProps = HeatmapDataItem
  type HeatmapSlots (line 11) | interface HeatmapSlots {
  type HeatmapFirstDayOfWeek (line 19) | type HeatmapFirstDayOfWeek = 0 | 1 | 2 | 3 | 4 | 5 | 6

FILE: src/heatmap/src/theme.ts
  type HeatmapColorTheme (line 9) | type HeatmapColorTheme = keyof typeof heatmapColorThemes

FILE: src/heatmap/src/utils/index.ts
  function calcColorByValue (line 22) | function calcColorByValue(
  function completeDataGaps (line 47) | function completeDataGaps(
  function createDayRect (line 92) | function createDayRect(
  function createSparseMatrix (line 121) | function createSparseMatrix<T>(
  function createLoadingMatrix (line 142) | function createLoadingMatrix(
  function heatmapMockData (line 165) | function heatmapMockData(year?: 'recent' | number): HeatmapData {

FILE: src/heatmap/styles/dark.ts
  method self (line 8) | self(vars) {

FILE: src/heatmap/styles/light.ts
  function self (line 6) | function self(vars: ThemeCommonVars) {
  type HeatmapThemeVars (line 44) | type HeatmapThemeVars = ReturnType<typeof self>
  type HeatmapTheme (line 53) | type HeatmapTheme = typeof heatmapLight

FILE: src/highlight/src/Highlight.tsx
  method setup (line 28) | setup(props) {
  method render (line 89) | render() {

FILE: src/highlight/src/public-types.ts
  type HighlightProps (line 4) | type HighlightProps = ExtractPublicPropTypes<typeof highlightProps>

FILE: src/highlight/src/utils.ts
  function splitAndMarkByRegex (line 1) | function splitAndMarkByRegex(

FILE: src/icon-wrapper/src/IconWrapper.tsx
  type IconWrapperProps (line 24) | type IconWrapperProps = ExtractPublicPropTypes<typeof iconWrapperProps>
  method setup (line 29) | setup(props, { slots }) {

FILE: src/icon-wrapper/styles/light.ts
  function self (line 5) | function self(vars: ThemeCommonVars) {
  type IconWrapperThemeVars (line 13) | type IconWrapperThemeVars = ReturnType<typeof self>
  type IconWrapperTheme (line 22) | type IconWrapperTheme = typeof iconWrapperLight

FILE: src/icon/src/Icon.ts
  type Depth (line 11) | type Depth = 1 | 2 | 3 | 4 | 5 | '1' | '2' | '3' | '4' | '5' | undefined
  type IconProps (line 21) | type IconProps = ExtractPublicPropTypes<typeof iconProps>
  method setup (line 28) | setup(props) {
  method render (line 80) | render() {

FILE: src/icon/styles/light.ts
  function self (line 5) | function self(vars: ThemeCommonVars) {
  type IconThemeVars (line 18) | type IconThemeVars = ReturnType<typeof self>
  type IconTheme (line 27) | type IconTheme = typeof iconLight

FILE: src/image/src/Image.tsx
  type ImageProps (line 49) | type ImageProps = ExtractPublicPropTypes<typeof imageProps>
  method setup (line 58) | setup(props) {
  method render (line 184) | render() {

FILE: src/image/src/ImageGroup.tsx
  type ImageGroupProps (line 50) | type ImageGroupProps = ExtractPublicPropTypes<typeof imageGroupProps>
  method setup (line 55) | setup(props) {
  method render (line 222) | render() {

FILE: src/image/src/ImagePreview.tsx
  constant BLEEDING (line 44) | const BLEEDING = 32
  type ImagePreviewProps (line 65) | type ImagePreviewProps = ExtractPublicPropTypes<typeof imagePreviewProps>
  method setup (line 70) | setup(props) {
  method render (line 548) | render() {

FILE: src/image/src/icons.tsx
  function renderPrevIcon (line 3) | function renderPrevIcon() {
  function renderNextIcon (line 14) | function renderNextIcon() {
  function renderCloseIcon (line 25) | function renderCloseIcon() {

FILE: src/image/src/interface.ts
  type MoveStrategy (line 8) | interface MoveStrategy {
  type ImageContext (line 24) | interface ImageContext {

FILE: src/image/src/public-types.ts
  type ImageRenderToolbarProps (line 3) | interface ImageRenderToolbarProps {
  type ImageRenderToolbar (line 17) | type ImageRenderToolbar = (props: ImageRenderToolbarProps) => VNodeChild
  type ImageGroupRenderToolbarProps (line 18) | type ImageGroupRenderToolbarProps = ImageRenderToolbarProps
  type ImageGroupRenderToolbar (line 19) | type ImageGroupRenderToolbar = ImageRenderToolbar
  type ImageInst (line 21) | interface ImageInst {
  type ImageSlots (line 27) | interface ImageSlots {
  type ImagePlaceholderSlot (line 32) | type ImagePlaceholderSlot = () => VNode[]
  type ImageErrorSlot (line 33) | type ImageErrorSlot = () => VNode[]
  type ImagePreviewInst (line 35) | interface ImagePreviewInst {

FILE: src/image/src/utils.ts
  type IntersectionObserverOptions (line 3) | type IntersectionObserverOptions = Omit<
  function resolveOptionsAndHash (line 10) | function resolveOptionsAndHash(

FILE: src/image/styles/light.ts
  function self (line 5) | function self() {
  type ImageTheme (line 22) | type ImageTheme = typeof imageLight
  type ImageThemeVars (line 23) | type ImageThemeVars = ReturnType<typeof self>

FILE: src/infinite-scroll/src/InfiniteScroll.tsx
  type InfiniteScrollProps (line 18) | type InfiniteScrollProps = ExtractPublicPropTypes<
  method setup (line 25) | setup(props) {
  method render (line 76) | render() {

FILE: src/input-number/src/InputNumber.tsx
  constant HOLDING_CHANGE_THRESHOLD (line 32) | const HOLDING_CHANGE_THRESHOLD = 800
  constant HOLDING_CHANGE_INTERVAL (line 33) | const HOLDING_CHANGE_INTERVAL = 100
  type InputNumberProps (line 103) | type InputNumberProps = ExtractPublicPropTypes<typeof inputNumberProps>
  type InputNumberSlots (line 105) | interface InputNumberSlots {
  method setup (line 116) | setup(props) {
  method render (line 665) | render() {

FILE: src/input-number/src/interface.ts
  type OnUpdateValue (line 3) | type OnUpdateValue = (value: number | null) => void
  type Size (line 4) | type Size = InputNumberSize
  type InputNumberInst (line 6) | interface InputNumberInst {

FILE: src/input-number/src/public-types.ts
  type InputNumberSize (line 1) | type InputNumberSize = 'tiny' | 'small' | 'medium' | 'large'

FILE: src/input-number/src/utils.ts
  function parse (line 3) | function parse(value: string): number | null {
  function isWipValue (line 19) | function isWipValue(value: string): boolean {
  function validator (line 30) | function validator(value: number | null): boolean {
  function format (line 40) | function format(
  function parseNumber (line 49) | function parseNumber(

FILE: src/input-number/styles/dark.ts
  method self (line 13) | self(vars) {

FILE: src/input-number/styles/light.ts
  function self (line 7) | function self(vars: ThemeCommonVars) {
  type InputNumberThemeVars (line 14) | type InputNumberThemeVars = ReturnType<typeof self>
  type InputNumberTheme (line 27) | type InputNumberTheme = typeof inputNumberLight

FILE: src/input-otp/src/InputOtp.tsx
  type InputOtpProps (line 66) | type InputOtpProps = ExtractPublicPropTypes<typeof inputOtpProps>
  method setup (line 72) | setup(props) {
  method render (line 349) | render() {

FILE: src/input-otp/src/public-types.ts
  type InputOtpAllowInput (line 5) | type InputOtpAllowInput = (
  type InputOtpSize (line 10) | type InputOtpSize = 'small' | 'medium' | 'large'
  type InputOtpOnUpdateValue (line 11) | type InputOtpOnUpdateValue = (
  type InputOtpOnFocus (line 15) | type InputOtpOnFocus = (e: FocusEvent, index: number) => void
  type InputOtpOnBlur (line 16) | type InputOtpOnBlur = (e: FocusEvent, index: number) => void
  type InputOtpSlots (line 17) | interface InputOtpSlots {
  type InputOtpDefaultSlot (line 20) | type InputOtpDefaultSlot = (
  type InputOtpOnFinish (line 23) | type InputOtpOnFinish = (value: string[]) => void
  type InputOtpOnUpdateValueMeta (line 24) | interface InputOtpOnUpdateValueMeta {
  type InputOtpOnUpdateValueMetaSource (line 29) | type InputOtpOnUpdateValueMetaSource = 'paste' | 'input' | 'delete'
  type InputOtpInst (line 30) | interface InputOtpInst {

FILE: src/input-otp/styles/light.ts
  function self (line 5) | function self() {
  type InputOtpTheme (line 26) | type InputOtpTheme = typeof inputOtpLight

FILE: src/input/src/Input.tsx
  type InputProps (line 162) | type InputProps = ExtractPublicPropTypes<typeof inputProps>
  type InputSlots (line 164) | interface InputSlots {
  method setup (line 178) | setup(props) {
  method render (line 1093) | render() {

FILE: src/input/src/InputGroup.tsx
  type InputGroupProps (line 8) | type InputGroupProps = ExtractPublicPropTypes<typeof inputGroupProps>
  method setup (line 13) | setup(props) {
  method render (line 20) | render() {

FILE: src/input/src/InputGroupLabel.tsx
  type InputGroupLabelProps (line 21) | type InputGroupLabelProps = ExtractPublicPropTypes<
  method setup (line 28) | setup(props) {
  method render (line 97) | render() {

FILE: src/input/src/WordCount.tsx
  method setup (line 8) | setup(_, { slots }) {

FILE: src/input/src/interface.ts
  type OnUpdateValue (line 4) | type OnUpdateValue = (
  type OnUpdateValueImpl (line 8) | type OnUpdateValueImpl = (
  type InputWrappedRef (line 13) | interface InputWrappedRef {

FILE: src/input/src/public-types.ts
  type InputSize (line 4) | type InputSize = 'tiny' | 'small' | 'medium' | 'large'
  type InputInst (line 6) | type InputInst = UnwrapRef<InputWrappedRef>

FILE: src/input/src/utils.ts
  function len (line 4) | function len(s: string): number {
  function isEmptyInputValue (line 12) | function isEmptyInputValue(value: unknown): boolean {
  type UseCursorControl (line 16) | interface UseCursorControl {
  function useCursor (line 21) | function useCursor(

FILE: src/input/styles/dark.ts
  function self (line 8) | function self(vars: ThemeCommonVars) {
  type InputThemeVars (line 117) | type InputThemeVars = ReturnType<typeof self>

FILE: src/input/styles/light.ts
  function self (line 8) | function self(vars: ThemeCommonVars) {
  type InputThemeVars (line 119) | type InputThemeVars = ReturnType<typeof self>
  type InputTheme (line 120) | type InputTheme = typeof inputLight

FILE: src/input/tests/Input.spec.tsx
  method setup (line 299) | setup() {

FILE: src/layout/src/Layout.tsx
  type LayoutProps (line 36) | type LayoutProps = ExtractPublicPropTypes<typeof layoutProps>
  function createLayoutComponent (line 41) | function createLayoutComponent(isContent: boolean) {

FILE: src/layout/src/LayoutFooter.tsx
  type LayoutFooterProps (line 17) | type LayoutFooterProps = ExtractPublicPropTypes<typeof layoutFooterProps>
  method setup (line 22) | setup(props) {
  method render (line 67) | render() {

FILE: src/layout/src/LayoutHeader.tsx
  type LayoutHeaderProps (line 19) | type LayoutHeaderProps = ExtractPublicPropTypes<typeof headerProps>
  method setup (line 27) | setup(props) {
  method render (line 72) | render() {

FILE: src/layout/src/LayoutSider.tsx
  type LayoutSiderProps (line 78) | type LayoutSiderProps = ExtractPublicPropTypes<typeof layoutSiderProps>
  method setup (line 86) | setup(props) {
  method render (line 279) | render() {

FILE: src/layout/src/ToggleBar.tsx
  method render (line 12) | render() {

FILE: src/layout/src/ToggleButton.tsx
  method render (line 15) | render() {

FILE: src/layout/src/interface.ts
  type LayoutInst (line 14) | interface LayoutInst {
  type LayoutSiderInst (line 19) | type LayoutSiderInst = LayoutInst

FILE: src/layout/styles/dark.ts
  method self (line 12) | self(vars) {

FILE: src/layout/styles/light.ts
  function self (line 7) | function self(vars: ThemeCommonVars) {
  type LayoutThemeVars (line 47) | type LayoutThemeVars = ReturnType<typeof self>
  type LayoutTheme (line 59) | type LayoutTheme = typeof layoutLight

FILE: src/legacy-grid/src/Col.tsx
  type ColProps (line 29) | type ColProps = ExtractPublicPropTypes<typeof colProps>
  method setup (line 34) | setup(props) {
  method render (line 50) | render() {

FILE: src/legacy-grid/src/Row.tsx
  type RowInjection (line 9) | interface RowInjection {
  type RowProps (line 31) | type RowProps = ExtractPublicPropTypes<typeof rowProps>
  method setup (line 36) | setup(props) {
  method render (line 74) | render() {

FILE: src/legacy-grid/src/interface.ts
  type Span (line 1) | type Span

FILE: src/legacy-grid/styles/dark.ts
  type RowTheme (line 10) | type RowTheme = typeof rowDark

FILE: src/legacy-grid/styles/light.ts
  type RowTheme (line 10) | type RowTheme = typeof rowLight

FILE: src/legacy-grid/tests/Grid.spec.tsx
  method render (line 9) | render() {

FILE: src/legacy-transfer/src/Transfer.tsx
  type TransferProps (line 60) | type TransferProps = ExtractPublicPropTypes<typeof transferProps>
  method setup (line 65) | setup(props) {
  method render (line 293) | render() {

FILE: src/legacy-transfer/src/TransferFilter.tsx
  method setup (line 27) | setup() {
  method render (line 34) | render() {

FILE: src/legacy-transfer/src/TransferHeader.tsx
  method setup (line 19) | setup(props) {

FILE: src/legacy-transfer/src/TransferList.tsx
  method setup (line 54) | setup() {
  method render (line 90) | render() {

FILE: src/legacy-transfer/src/TransferListItem.tsx
  method setup (line 27) | setup(props) {
  method render (line 58) | render() {

FILE: src/legacy-transfer/src/interface.ts
  type OptionValue (line 6) | type OptionValue = string | number
  type Option (line 7) | interface Option {
  type CheckedStatus (line 13) | interface CheckedStatus {
  type Filter (line 19) | type Filter = (
  type TransferInjection (line 25) | interface TransferInjection {
  type OnUpdateValue (line 43) | type OnUpdateValue = (value: OptionValue[]) => void

FILE: src/legacy-transfer/src/use-transfer-data.ts
  type UseTransferDataProps (line 6) | interface UseTransferDataProps {
  function useTransferData (line 14) | function useTransferData(

FILE: src/legacy-transfer/styles/dark.ts
  method self (line 20) | self(vars) {

FILE: src/legacy-transfer/styles/light.ts
  function self (line 12) | function self(vars: ThemeCommonVars) {
  type TransferThemeVars (line 57) | type TransferThemeVars = ReturnType<typeof self>
  type TransferTheme (line 73) | type TransferTheme = typeof transferLight

FILE: src/list/src/List.tsx
  type ListProps (line 26) | type ListProps = ExtractPublicPropTypes<typeof listProps>
  type ListSlots (line 28) | interface ListSlots {
  type ListInjection (line 34) | interface ListInjection {
  method setup (line 45) | setup(props) {
  method render (line 107) | render() {

FILE: src/list/src/ListItem.tsx
  type ListItemSlots (line 6) | interface ListItemSlots {
  method setup (line 15) | setup() {
  method render (line 25) | render() {

FILE: src/list/styles/light.ts
  function self (line 6) | function self(vars: ThemeCommonVars) {
  type ListThemeVars (line 33) | type ListThemeVars = ReturnType<typeof self>
  type ListTheme (line 42) | type ListTheme = typeof listLight

FILE: src/loading-bar/src/LoadingBar.tsx
  function createClassName (line 18) | function createClassName(
  method setup (line 31) | setup() {
  method render (line 168) | render() {

FILE: src/loading-bar/src/LoadingBarProvider.tsx
  type LoadingBarInst (line 22) | interface LoadingBarInst {
  type LoadingBarProviderInst (line 28) | type LoadingBarProviderInst = LoadingBarInst
  type LoadingBarApiInjection (line 29) | type LoadingBarApiInjection = LoadingBarInst
  type LoadingBarProviderProps (line 47) | type LoadingBarProviderProps = ExtractPublicPropTypes<
  type LoadingBarProviderSetupProps (line 51) | type LoadingBarProviderSetupProps = ExtractPropTypes<
  method setup (line 58) | setup(props) {
  method render (line 103) | render() {

FILE: src/loading-bar/src/use-loading-bar.ts
  function useLoadingBar (line 6) | function useLoadingBar(): LoadingBarApiInjection {

FILE: src/loading-bar/styles/dark.ts
  method self (line 7) | self(vars) {

FILE: src/loading-bar/styles/light.ts
  function self (line 5) | function self(vars: ThemeCommonVars) {
  type LoadingBarThemeVars (line 14) | type LoadingBarThemeVars = ReturnType<typeof self>
  type LoadingBarTheme (line 23) | type LoadingBarTheme = typeof loadingBarLight

FILE: src/loading-bar/tests/LoadingBar.spec.tsx
  method render (line 7) | render() {
  method setup (line 19) | setup() {
  method render (line 23) | render() {
  method setup (line 37) | async setup() {
  method render (line 44) | render() {
  method setup (line 60) | setup() {
  method render (line 64) | render() {
  method setup (line 79) | setup() {
  method render (line 83) | render() {

FILE: src/locales/common/enUS.ts
  type NLocale (line 133) | type NLocale = typeof enUS

FILE: src/locales/date/enUS.ts
  type NDateLocale (line 4) | interface NDateLocale {

FILE: src/locales/index.spec.tsx
  method setup (line 81) | setup() {
  method render (line 102) | render() {

FILE: src/locales/utils/index.ts
  type NPartialLocale (line 4) | type NPartialLocale = {
  function createLocale (line 15) | function createLocale(

FILE: src/log/src/Log.tsx
  type LogInjection (line 31) | interface LogInjection {
  type LogInst (line 38) | interface LogInst {
  type LogProps (line 83) | type LogProps = ExtractPublicPropTypes<typeof logProps>
  method setup (line 88) | setup(props) {
  method render (line 271) | render() {

FILE: src/log/src/LogLine.tsx
  method setup (line 20) | setup(props) {
  method render (line 63) | render() {

FILE: src/log/src/LogLoader.tsx
  method setup (line 16) | setup() {
  method render (line 21) | render() {

FILE: src/log/src/public-types.ts
  type LogSpinProps (line 3) | type LogSpinProps = SharedSpinProps

FILE: src/log/styles/dark.ts
  method self (line 13) | self(vars) {

FILE: src/log/styles/light.ts
  function self (line 7) | function self(vars: ThemeCommonVars) {
  type LogThemeVars (line 18) | type LogThemeVars = ReturnType<typeof self>
  type LogTheme (line 31) | type LogTheme = typeof logLight

FILE: src/log/tests/Log.spec.tsx
  method setup (line 96) | setup() {

FILE: src/marquee/src/Marquee.tsx
  method setup (line 12) | setup(props) {
  method render (line 88) | render() {

FILE: src/marquee/src/props.ts
  type MarqueeProps (line 15) | type MarqueeProps = ExtractPublicPropTypes<typeof marqueeProps>

FILE: src/marquee/styles/light.ts
  function self (line 4) | function self() {
  type MarqueeThemeVars (line 8) | type MarqueeThemeVars = ReturnType<typeof self>
  type MarqueeTheme (line 17) | type MarqueeTheme = typeof marqueeLight

FILE: src/mention/src/Mention.tsx
  type MentionProps (line 128) | type MentionProps = ExtractPublicPropTypes<typeof mentionProps>
  type MentionSlots (line 130) | interface MentionSlots {
  method setup (line 139) | setup(props) {
  method render (line 459) | render() {

FILE: src/mention/src/interface.ts
  type MentionOption (line 3) | type MentionOption = SelectBaseOption<string>
  type MentionInst (line 5) | interface MentionInst {

FILE: src/mention/src/public-types.ts
  type MentionSize (line 1) | type MentionSize = 'small' | 'medium' | 'large'

FILE: src/mention/src/utils.ts
  type Position (line 10) | interface Position {
  type Point (line 28) | interface Point {
  type Options (line 38) | interface Options {
  function getAbsolutePosition (line 57) | function getAbsolutePosition(
  function getRelativePosition (line 74) | function getRelativePosition(
  function setElementPositionBasedOnCaret (line 254) | function setElementPositionBasedOnCaret(

FILE: src/mention/styles/dark.ts
  method self (line 13) | self(vars) {

FILE: src/mention/styles/light.ts
  function self (line 7) | function self(vars: ThemeCommonVars) {
  type MentionTheme (line 25) | type MentionTheme = typeof mentionLight
  type MentionThemeVars (line 26) | type MentionThemeVars = ReturnType<typeof self>

FILE: src/menu/src/Menu.tsx
  type MenuSetupProps (line 143) | type MenuSetupProps = ExtractPropTypes<typeof menuProps>
  type MenuProps (line 145) | type MenuProps = Partial<MenuSetupProps>
  method setup (line 151) | setup(props) {
  method render (line 618) | render() {

FILE: src/menu/src/MenuDivider.tsx
  method setup (line 6) | setup() {

FILE: src/menu/src/MenuOption.tsx
  method setup (line 27) | setup(props) {
  method render (line 76) | render() {

FILE: src/menu/src/MenuOptionContent.tsx
  method setup (line 45) | setup(props) {
  method render (line 64) | render() {

FILE: src/menu/src/MenuOptionGroup.tsx
  method setup (line 28) | setup(props) {

FILE: src/menu/src/Submenu.tsx
  method setup (line 45) | setup(props) {
  method render (line 118) | render() {

FILE: src/menu/src/interface.ts
  type Key (line 4) | type Key = string | number
  type MenuOptionSharedPart (line 6) | interface MenuOptionSharedPart {
  type MenuIgnoredOption (line 22) | type MenuIgnoredOption = MenuDividerOption | MenuRenderOption
  type MenuDividerOption (line 24) | interface MenuDividerOption {
  type MenuRenderOption (line 31) | interface MenuRenderOption {
  type MenuGroupOptionBase (line 39) | interface MenuGroupOptionBase extends MenuOptionSharedPart {
  type MenuOption (line 44) | type MenuOption
  type MenuGroupOption (line 51) | type MenuGroupOption
  type MenuMixedOption (line 58) | type MenuMixedOption = MenuDividerOption | MenuOption | MenuGroupOption
  type TmNode (line 60) | type TmNode = TreeNode<MenuOption, MenuGroupOption, MenuIgnoredOption>
  type OnUpdateValue (line 62) | type OnUpdateValue = (
  type OnUpdateKeys (line 67) | type OnUpdateKeys = (
  type OnUpdateValueImpl (line 71) | type OnUpdateValueImpl = (
  type OnUpdateKeysImpl (line 76) | type OnUpdateKeysImpl = (
  type MenuNodeProps (line 80) | type MenuNodeProps = (
  type MenuInst (line 84) | interface MenuInst {

FILE: src/menu/src/styles/index.cssr.ts
  function hoverStyle (line 394) | function hoverStyle(props: CProperties, children: CNodeChildren): CNode[] {

FILE: src/menu/src/use-menu-child-props.ts
  type UseMenuChildProps (line 19) | type UseMenuChildProps = ExtractPropTypes<typeof useMenuChildProps>

FILE: src/menu/src/use-menu-child.ts
  constant ICON_MARGIN_RIGHT (line 16) | const ICON_MARGIN_RIGHT = 8
  type MenuInjection (line 18) | interface MenuInjection {
  type SubmenuInjection (line 32) | interface SubmenuInjection {
  type MenuOptionGroupInjection (line 37) | interface MenuOptionGroupInjection {
  type UseMenuChild (line 42) | interface UseMenuChild {
  function useMenuChild (line 53) | function useMenuChild(props: UseMenuChildProps): UseMenuChild {

FILE: src/menu/src/useCheckDeprecated.ts
  function useCheckDeprecated (line 5) | function useCheckDeprecated(props: MenuSetupProps): void {

FILE: src/menu/src/utils.tsx
  function isIgnoredNode (line 18) | function isIgnoredNode(
  function isDividerNode (line 24) | function isDividerNode(
  function itemRenderer (line 30) | function itemRenderer(

FILE: src/menu/styles/dark.ts
  method self (line 15) | self(vars) {

FILE: src/menu/styles/light.ts
  function createPartialInvertedVars (line 8) | function createPartialInvertedVars(
  function self (line 54) | function self(vars: ThemeCommonVars) {
  type MenuThemeVars (line 114) | type MenuThemeVars = ReturnType<typeof self>
  type MenuTheme (line 127) | type MenuTheme = typeof menuLight

FILE: src/menu/tests/Menu.spec.tsx
  function renderMenuIcon (line 81) | function renderMenuIcon(option: any): any {
  function renderMenuIcon (line 234) | function renderMenuIcon(): any {
  function renderExpandIcon (line 281) | function renderExpandIcon(): any {
  function renderMenuExtra (line 322) | function renderMenuExtra(): any {

FILE: src/message/src/Message.tsx
  method setup (line 39) | setup(props) {
  method render (line 137) | render() {
  function createIconVNode (line 210) | function createIconVNode(

FILE: src/message/src/MessageEnvironment.tsx
  method setup (line 27) | setup(props) {
  method render (line 95) | render() {

FILE: src/message/src/MessageProvider.tsx
  type ContentType (line 21) | type ContentType = string | (() => VNodeChild)
  type MessageApiInjection (line 23) | interface MessageApiInjection {
  type MessageReactive (line 33) | interface MessageReactive {
  type PrivateMessageReactive (line 45) | interface PrivateMessageReactive extends MessageReactive {
  type PrivateMessageRef (line 49) | interface PrivateMessageRef extends MessageReactive {
  type MessageProviderInst (line 54) | type MessageProviderInst = MessageApiInjection
  type MessageProviderProps (line 81) | type MessageProviderProps = ExtractPublicPropTypes<
  type MessageProviderSetupProps (line 85) | type MessageProviderSetupProps = ExtractPropTypes<
  method setup (line 92) | setup(props) {
  method render (line 164) | render() {

FILE: src/message/src/message-props.ts
  type MessageProps (line 27) | type MessageProps = ExtractPublicPropTypes<typeof messageProps>
  type MessageSetupProps (line 28) | type MessageSetupProps = ExtractPropTypes<typeof messageProps>

FILE: src/message/src/public-types.ts
  type MessageSpinProps (line 3) | type MessageSpinProps = SharedSpinProps

FILE: src/message/src/types.ts
  type MessageType (line 5) | type MessageType
  type RenderMessageProps (line 14) | type RenderMessageProps = Pick<
  type MessageRenderMessage (line 19) | type MessageRenderMessage = (props: RenderMessageProps) => VNodeChild
  type MessageOptions (line 21) | interface MessageOptions {

FILE: src/message/src/use-message.ts
  function useMessage (line 6) | function useMessage(): MessageApiInjection {

FILE: src/message/styles/light.ts
  function self (line 6) | function self(vars: ThemeCommonVars) {
  type MessageThemeVars (line 88) | type MessageThemeVars = ReturnType<typeof self>
  type MessageTheme (line 97) | type MessageTheme = typeof messageLight

FILE: src/message/tests/Message.spec.tsx
  method render (line 7) | render() {
  method render (line 13) | render() {
  method setup (line 24) | setup() {
  method render (line 30) | render() {
  method setup (line 41) | setup() {
  method render (line 49) | render() {
  method setup (line 68) | setup() {
  method render (line 75) | render() {
  method setup (line 94) | setup() {
  method render (line 98) | render() {
  method setup (line 119) | setup() {
  method render (line 123) | render() {
  method setup (line 142) | setup() {
  method render (line 146) | render() {

FILE: src/message/tests/server.spec.tsx
  method setup (line 12) | setup() {
  method render (line 16) | render() {

FILE: src/modal/src/BodyWrapper.tsx
  method setup (line 103) | setup(props) {
  method render (line 247) | render() {

FILE: src/modal/src/Modal.tsx
  type ModalProps (line 108) | type ModalProps = ExtractPublicPropTypes<typeof modalProps>
  type ModalSlots (line 110) | type ModalSlots = Omit<CardSlots & DialogSlots, 'default'> & {
  method setup (line 119) | setup(props) {
  method render (line 315) | render() {

FILE: src/modal/src/ModalEnvironment.tsx
  method setup (line 21) | setup(props) {
  method render (line 102) | render() {

FILE: src/modal/src/ModalProvider.ts
  type ModalOptions (line 22) | type ModalOptions = Mutable<
  type ModalReactive (line 30) | type ModalReactive = {
  type TypeSafeModalReactive (line 38) | type TypeSafeModalReactive = ModalReactive & {
  type ModalApiInjection (line 43) | interface ModalApiInjection {
  type ModalProviderInjection (line 48) | interface ModalProviderInjection {
  type ModalReactiveListInjection (line 53) | type ModalReactiveListInjection = Ref<ModalReactive[]>
  type ModalInst (line 55) | interface ModalInst {
  type ModalProviderInst (line 59) | type ModalProviderInst = ModalApiInjection
  type ModalProviderProps (line 65) | type ModalProviderProps = ExtractPublicPropTypes<
  method setup (line 73) | setup() {
  method render (line 121) | render() {

FILE: src/modal/src/composables.ts
  function useModal (line 9) | function useModal(): ModalApiInjection {
  function useModalReactiveList (line 17) | function useModalReactiveList(): Ref<readonly ModalReactive[]> {
  constant DRAGGABLE_CLASS (line 28) | const DRAGGABLE_CLASS = 'n-draggable'
  type UseDragModalOptions (line 30) | interface UseDragModalOptions {
  function useDragModal (line 33) | function useDragModal(

FILE: src/modal/src/interface.ts
  type ModalBodyInjection (line 6) | type ModalBodyInjection = Ref<
  type ModalProviderInjection (line 13) | interface ModalProviderInjection {
  type ModalInjection (line 21) | interface ModalInjection {
  type ModalDraggableOptions (line 35) | interface ModalDraggableOptions {

FILE: src/modal/styles/light.ts
  function self (line 8) | function self(vars: ThemeCommonVars) {
  type ModalThemeVars (line 17) | type ModalThemeVars = ReturnType<typeof self>
  type ModalTheme (line 31) | type ModalTheme = typeof modalLight

FILE: src/modal/tests/Modal.spec.tsx
  function mountModal (line 8) | function mountModal({

FILE: src/notification/src/Notification.tsx
  method setup (line 54) | setup(props) {
  method render (line 155) | render() {

FILE: src/notification/src/NotificationContainer.tsx
  method setup (line 19) | setup() {
  method render (line 38) | render() {

FILE: src/notification/src/NotificationEnvironment.tsx
  type NotificationOptions (line 34) | type NotificationOptions = Partial<
  method setup (line 52) | setup(props) {
  method render (line 158) | render() {

FILE: src/notification/src/NotificationProvider.tsx
  type NotificationPlacement (line 24) | type NotificationPlacement
  type NotificationProviderInjection (line 32) | interface NotificationProviderInjection {
  type Create (line 39) | type Create = (options: NotificationOptions) => NotificationReactive
  type TypedCreate (line 40) | type TypedCreate = (
  type NotificationApiInjection (line 44) | interface NotificationApiInjection {
  type NotificationProviderInst (line 55) | type NotificationProviderInst = NotificationApiInjection
  type NotificationType (line 60) | type NotificationType = 'info' | 'success' | 'warning' | 'error'
  type NotificationReactive (line 62) | type NotificationReactive = {
  type NotificationRef (line 71) | interface NotificationRef {
  type NotificationProviderProps (line 92) | type NotificationProviderProps = ExtractPublicPropTypes<
  method setup (line 99) | setup(props) {
  method render (line 200) | render() {

FILE: src/notification/src/styles/index.cssr.ts
  function placementTransformStyle (line 325) | function placementTransformStyle(placement: string): CNode {

FILE: src/notification/src/use-notification.ts
  function useNotification (line 6) | function useNotification(): NotificationApiInjection {

FILE: src/notification/styles/light.ts
  function self (line 7) | function self(vars: ThemeCommonVars) {
  type NotificationThemeVars (line 54) | type NotificationThemeVars = ReturnType<typeof self>
  type NotificationTheme (line 66) | type NotificationTheme = typeof notificationLight

FILE: src/notification/tests/Notification.spec.tsx
  method render (line 9) | render() {
  method setup (line 20) | setup() {
  method render (line 30) | render() {
  method setup (line 45) | setup() {
  method render (line 58) | render() {
  method setup (line 79) | setup() {
  method render (line 87) | render() {
  method setup (line 106) | setup() {
  method render (line 123) | render() {
  method setup (line 141) | setup() {
  method render (line 148) | render() {
  method setup (line 179) | setup() {
  method render (line 193) | render() {

FILE: src/number-animation/src/NumberAnimation.tsx
  type NumberAnimationProps (line 31) | type NumberAnimationProps = ExtractPublicPropTypes<
  type NumberAnimationInst (line 35) | interface NumberAnimationInst {
  method setup (line 42) | setup(props) {
  method render (line 115) | render() {

FILE: src/number-animation/src/utils.ts
  type TweenProps (line 4) | interface TweenProps {
  function tween (line 12) | function tween(props: TweenProps): void {

FILE: src/page-header/src/PageHeader.tsx
  type PageHeaderProps (line 21) | type PageHeaderProps = ExtractPublicPropTypes<typeof pageHeaderProps>
  type PageHeaderSlots (line 23) | interface PageHeaderSlots {
  method setup (line 38) | setup(props) {
  method render (line 89) | render() {

FILE: src/page-header/styles/light.ts
  function self (line 6) | function self(vars: ThemeCommonVars) {
  type PageHeaderThemeVars (line 34) | type PageHeaderThemeVars = ReturnType<typeof self>
  type PageHeaderTheme (line 35) | type PageHeaderTheme = typeof pageHeaderLight

FILE: src/pagination/src/Pagination.tsx
  method default (line 78) | default() {
  type PaginationProps (line 123) | type PaginationProps = ExtractPublicPropTypes<typeof paginationProps>
  type PaginationSlots (line 125) | interface PaginationSlots {
  method setup (line 139) | setup(props) {
  method render (line 570) | render() {

FILE: src/pagination/src/interface.ts
  type PaginationInfo (line 4) | type PaginationInfo = Parameters<RenderPrefix>[0]
  type RenderPrefix (line 6) | type RenderPrefix = (info: {
  type PaginationSizeOption (line 15) | type PaginationSizeOption = SelectBaseOption<number, string>
  type RenderSuffix (line 16) | type RenderSuffix = RenderPrefix
  type RenderNext (line 17) | type RenderNext = RenderPrefix
  type RenderPrev (line 18) | type RenderPrev = RenderPrefix
  type RenderGoto (line 19) | type RenderGoto = () => VNodeChild
  type PaginationRenderLabel (line 21) | type PaginationRenderLabel = (
  type PaginationLabelInfo (line 35) | type PaginationLabelInfo = Parameters<PaginationRenderLabel>[0]

FILE: src/pagination/src/public-types.ts
  type PaginationSize (line 1) | type PaginationSize = 'small' | 'medium' | 'large'

FILE: src/pagination/src/utils.ts
  function getDefaultPageSize (line 3) | function getDefaultPageSize(
  function createPageItemsInfo (line 17) | function createPageItemsInfo(
  type PageItem (line 175) | type PageItem
  function createRange (line 190) | function createRange(

FILE: src/pagination/styles/dark.ts
  method self (line 17) | self(vars) {

FILE: src/pagination/styles/light.ts
  function self (line 9) | function self(vars: ThemeCommonVars) {
  type PaginationThemeVars (line 71) | type PaginationThemeVars = ReturnType<typeof self>
  type PaginationTheme (line 85) | type PaginationTheme = typeof paginationLight

FILE: src/pagination/tests/utils.spec.ts
  function createFastBackwardItem (line 4) | function createFastBackwardItem(options: number[]): PageItem {
  function createFastForwardItem (line 16) | function createFastForwardItem(options: number[]): PageItem {
  function createPageItem (line 28) | function createPageItem(options: {

FILE: src/popconfirm/src/Popconfirm.tsx
  type PopconfirmProps (line 42) | type PopconfirmProps = ExtractPublicPropTypes<typeof popconfirmProps>
  type PopconfirmSetupProps (line 44) | type PopconfirmSetupProps = ExtractPropTypes<typeof popconfirmProps>
  type PopconfirmSlots (line 46) | interface PopconfirmSlots {
  method setup (line 58) | setup(props) {
  method render (line 116) | render() {

FILE: src/popconfirm/src/PopconfirmPanel.tsx
  method setup (line 32) | setup(props) {
  method render (line 82) | render() {

FILE: src/popconfirm/src/interface.ts
  type PopconfirmInst (line 8) | type PopconfirmInst = PopoverInst
  type PopconfirmInjection (line 10) | interface PopconfirmInjection {

FILE: src/popconfirm/styles/light.ts
  function self (line 9) | function self(vars: ThemeCommonVars) {
  type PopconfirmThemeVars (line 18) | type PopconfirmThemeVars = ReturnType<typeof self>
  type PopconfirmTheme (line 31) | type PopconfirmTheme = typeof popconfirmLight

FILE: src/popover/src/Popover.tsx
  type TriggerEventHandlers (line 59) | interface TriggerEventHandlers {
  function appendEvents (line 67) | function appendEvents(
  type BodyInstance (line 93) | interface BodyInstance {
  type PopoverInjection (line 98) | interface PopoverInjection {
  type PopoverProps (line 221) | type PopoverProps = ExtractPublicPropTypes<typeof popoverBaseProps>
  type PopoverInternalProps (line 222) | type PopoverInternalProps = ExtractInternalPropTypes<typeof popoverProps>
  type PopoverSlots (line 224) | interface PopoverSlots {
  method setup (line 237) | setup(props) {
  method render (line 490) | render() {

FILE: src/popover/src/PopoverBody.tsx
  type RenderArrowProps (line 88) | interface RenderArrowProps {
  function renderArrow (line 96) | function renderArrow({
  method setup (line 121) | setup(props, { slots, attrs }) {
  method render (line 479) | render() {

FILE: src/popover/src/interface.ts
  type PopoverTrigger (line 4) | type PopoverTrigger = 'click' | 'hover' | 'focus' | 'manual'
  type PopoverInst (line 6) | interface PopoverInst {
  type InternalPopoverInst (line 11) | type InternalPopoverInst = PopoverInst & {
  type PopoverBodyInjection (line 15) | type PopoverBodyInjection = Ref<HTMLElement | null> | null
  type InternalRenderBody (line 20) | type InternalRenderBody = (

FILE: src/popover/src/styles/index.cssr.ts
  function getArrowOffset (line 202) | function getArrowOffset(placement: FollowerPlacement): string {
  function placementStyle (line 208) | function placementStyle(

FILE: src/popover/styles/light.ts
  function self (line 7) | function self(vars: ThemeCommonVars) {
  type PopoverThemeVars (line 27) | type PopoverThemeVars = ReturnType<typeof self>
  type PopoverTheme (line 38) | type PopoverTheme = typeof popoverLight

FILE: src/popover/tests/Popover.spec.tsx
  function sleep (line 10) | async function sleep(ms: number): Promise<void> {
  method render (line 28) | render() {

FILE: src/popselect/src/Popselect.tsx
  type PopselectSetupProps (line 33) | type PopselectSetupProps = ExtractPropTypes<typeof popselectProps>
  type PopselectProps (line 34) | type PopselectProps = ExtractPublicPropTypes<typeof popselectProps>
  type PopselectSlots (line 36) | interface PopselectSlots {
  method setup (line 49) | setup(props) {
  method render (line 82) | render() {

FILE: src/popselect/src/PopselectPanel.tsx
  method setup (line 72) | setup(props) {
  method render (line 227) | render() {

FILE: src/popselect/src/interface.ts
  type PopselectInjection (line 8) | interface PopselectInjection {
  type PopselectInst (line 15) | type PopselectInst = PopoverInst

FILE: src/popselect/src/public-types.ts
  type PopselectSize (line 1) | type PopselectSize = 'small' | 'medium' | 'large' | 'huge'

FILE: src/popselect/styles/light.ts
  function self (line 7) | function self(vars: ThemeCommonVars) {
  type PopselectThemeVars (line 24) | interface PopselectThemeVars {}
  type PopselectTheme (line 26) | type PopselectTheme = typeof popselectLight

FILE: src/progress/src/Circle.tsx
  method setup (line 65) | setup(props, { slots }) {

FILE: src/progress/src/Line.tsx
  method setup (line 59) | setup(props, { slots }) {

FILE: src/progress/src/MultipleCircle.tsx
  function circlePath (line 5) | function circlePath(r: number, sw: number, vw: number = 100): string {
  method setup (line 51) | setup(props, { slots }) {

FILE: src/progress/src/Progress.tsx
  type ProgressProps (line 73) | type ProgressProps = ExtractPublicPropTypes<typeof progressProps>
  method setup (line 78) | setup(props) {
  method render (line 154) | render() {

FILE: src/progress/src/public-types.ts
  type ProgressStatus (line 1) | type ProgressStatus
  type ProgressGradient (line 7) | interface ProgressGradient {

FILE: src/progress/styles/dark.ts
  method self (line 8) | self(vars) {

FILE: src/progress/styles/light.ts
  function self (line 5) | function self(vars: ThemeCommonVars) {
  type ProgressThemeVars (line 42) | type ProgressThemeVars = ReturnType<typeof self>
  type ProgressTheme (line 51) | type ProgressTheme = typeof progressLight

FILE: src/qr-code/src/QrCode.tsx
  type Modules (line 11) | type Modules = ReturnType<qrcodegen.QrCode['getModules']>
  constant ERROR_CORRECTION_LEVEL (line 13) | const ERROR_CORRECTION_LEVEL: Record<string, qrcodegen.QrCode.Ecc> = {
  type QrCodeProps (line 62) | type QrCodeProps = ExtractPublicPropTypes<typeof qrCodeProps>
  constant UPSCALE_RATIO (line 65) | const UPSCALE_RATIO = 2
  method setup (line 70) | setup(props) {
  method render (line 317) | render() {

FILE: src/qr-code/src/qrcodegen.ts
  type bit (line 28) | type bit = number
  type byte (line 29) | type byte = number
  type int (line 30) | type int = number
  class QrCode (line 50) | class QrCode {
    method encodeText (line 58) | public static encodeText(text: string, ecl: QrCode.Ecc): QrCode {
    method encodeBinary (line 67) | public static encodeBinary(
    method encodeSegments (line 86) | public static encodeSegments(
    method constructor (line 199) | public constructor(
    method getModule (line 262) | public getModule(x: int, y: int): boolean {
    method getModules (line 269) | public getModules(): boolean[][] {
    method drawFunctionPatterns (line 276) | private drawFunctionPatterns(): void {
    method drawFormatBits (line 313) | private drawFormatBits(mask: int): void {
    method drawVersion (line 345) | private drawVersion(): void {
    method drawFinderPattern (line 369) | private drawFinderPattern(x: int, y: int): void {
    method drawAlignmentPattern (line 384) | private drawAlignmentPattern(x: int, y: int): void {
    method setFunctionModule (line 398) | private setFunctionModule(x: int, y: int, isDark: boolean): void {
    method addEccAndInterleave (line 407) | private addEccAndInterleave(data: Readonly<byte[]>): byte[] {
    method drawCodewords (line 453) | private drawCodewords(data: Readonly<byte[]>): void {
    method applyMask (line 489) | private applyMask(mask: int): void {
    method getPenaltyScore (line 533) | private getPenaltyScore(): int {
    method getAlignmentPatternPositions (line 626) | private getAlignmentPatternPositions(): int[] {
    method getNumRawDataModules (line 647) | private static getNumRawDataModules(ver: int): int {
    method getNumDataCodewords (line 665) | private static getNumDataCodewords(ver: int, ecl: QrCode.Ecc): int {
    method reedSolomonComputeDivisor (line 675) | private static reedSolomonComputeDivisor(degree: int): byte[] {
    method reedSolomonComputeRemainder (line 705) | private static reedSolomonComputeRemainder(
    method reedSolomonMultiply (line 723) | private static reedSolomonMultiply(x: byte, y: byte): byte {
    method finderPenaltyCountPatterns (line 738) | private finderPenaltyCountPatterns(runHistory: Readonly<int[]>): int {
    method finderPenaltyTerminateAndCount (line 753) | private finderPenaltyTerminateAndCount(
    method finderPenaltyAddHistory (line 769) | private finderPenaltyAddHistory(
  function appendBits (line 1150) | function appendBits(val: int, len: int, bb: bit[]): void {
  function getBit (line 1164) | function getBit(x: int, i: int): boolean {
  class QrSegment (line 1181) | class QrSegment {
    method makeBytes (line 1187) | public static makeBytes(data: Readonly<byte[]>): QrSegment {
    method makeNumeric (line 1196) | public static makeNumeric(digits: string): QrSegment {
    method makeAlphanumeric (line 1213) | public static makeAlphanumeric(text: string): QrSegment {
    method makeSegments (line 1241) | public static makeSegments(text: string): QrSegment[] {
    method makeEci (line 1259) | public static makeEci(assignVal: int): QrSegment {
    method isNumeric (line 1283) | public static isNumeric(text: string): boolean {
    method isAlphanumeric (line 1290) | public static isAlphanumeric(text: string): boolean {
    method constructor (line 1299) | public constructor(
    method getData (line 1320) | public getData(): bit[] {
    method getTotalBits (line 1326) | public static getTotalBits(
    method toUtf8ByteArray (line 1342) | private static toUtf8ByteArray(str: string): byte[] {
  type int (line 1374) | type int = number
  class Ecc (line 1379) | class Ecc {
    method constructor (line 1389) | private constructor(
  type int (line 1400) | type int = number
  class Mode (line 1405) | class Mode {
    method constructor (line 1416) | private constructor(
    method numCharCountBits (line 1427) | public numCharCountBits(ver: int): int {

FILE: src/qr-code/styles/light.ts
  function self (line 5) | function self(vars: ThemeCommonVars) {
  type QrCodeThemeVars (line 11) | type QrCodeThemeVars = ReturnType<typeof self>
  type QrCodeTheme (line 20) | type QrCodeTheme = typeof themeLight

FILE: src/radio/src/Radio.tsx
  type RadioProps (line 18) | type RadioProps = ExtractPublicPropTypes<typeof radioProps>
  method setup (line 23) | setup(props) {
  method render (line 98) | render() {

FILE: src/radio/src/RadioButton.tsx
  type RadioButtonProps (line 7) | type RadioButtonProps = ExtractPublicPropTypes<typeof radioBaseProps>
  method render (line 13) | render() {

FILE: src/radio/src/RadioGroup.tsx
  function mapSlot (line 16) | function mapSlot(
  type RadioGroupProps (line 112) | type RadioGroupProps = ExtractPublicPropTypes<typeof radioGroupProps>
  method setup (line 117) | setup(props) {
  method render (line 239) | render() {

FILE: src/radio/src/interface.ts
  type OnUpdateValue (line 1) | type OnUpdateValue = (value: string & number & boolean) => void
  type OnUpdateValueImpl (line 3) | type OnUpdateValueImpl = (value: string | number | boolean) => void

FILE: src/radio/src/public-types.ts
  type RadioSize (line 1) | type RadioSize = 'small' | 'medium' | 'large'

FILE: src/radio/src/use-radio.ts
  type RadioGroupInjection (line 40) | interface RadioGroupInjection {
  type UseRadio (line 52) | interface UseRadio {
  function setup (line 66) | function setup(props: ExtractPropTypes<typeof radioBaseProps>): UseRadio {
  type RadioBaseProps (line 189) | type RadioBaseProps = ExtractPropTypes<typeof radioBaseProps>

FILE: src/radio/styles/dark.ts
  method self (line 9) | self(vars) {

FILE: src/radio/styles/light.ts
  function self (line 7) | function self(vars: ThemeCommonVars) {
  type RadioThemeVars (line 68) | type RadioThemeVars = ReturnType<typeof self>
  type RadioTheme (line 77) | type RadioTheme = typeof radioLight

FILE: src/rate/src/Rate.tsx
  type RateProps (line 39) | type RateProps = ExtractPublicPropTypes<typeof rateProps>
  method setup (line 44) | setup(props) {
  method render (line 185) | render() {

FILE: src/rate/src/interface.ts
  type RateOnUpdateValue (line 1) | type RateOnUpdateValue = (value: number & null) => void
  type RateOnUpdateValueImpl (line 2) | type RateOnUpdateValueImpl = (value: number | null) => void

FILE: src/rate/src/public-types.ts
  type RateSize (line 1) | type RateSize = number | 'small' | 'medium' | 'large'

FILE: src/rate/styles/dark.ts
  method self (line 7) | self(vars) {

FILE: src/rate/styles/light.ts
  function self (line 5) | function self(vars: ThemeCommonVars) {
  type RateThemeVars (line 16) | type RateThemeVars = ReturnType<typeof self>
  type RateTheme (line 25) | type RateTheme = typeof themeLight

FILE: src/result/src/403.tsx
  function render403 (line 3) | function render403() {

FILE: src/result/src/404.tsx
  function render404 (line 3) | function render404() {

FILE: src/result/src/418.tsx
  function render418 (line 3) | function render418() {

FILE: src/result/src/500.tsx
  function render500 (line 3) | function render500() {

FILE: src/result/src/Result.tsx
  type ResultProps (line 47) | type ResultProps = ExtractPublicPropTypes<typeof resultProps>
  type ResultSlots (line 49) | interface ResultSlots {
  method setup (line 59) | setup(props) {
  method render (line 130) | render() {

FILE: src/result/src/public-types.ts
  type ResultSize (line 1) | type ResultSize = 'small' | 'medium' | 'large' | 'huge'

FILE: src/result/styles/light.ts
  function self (line 6) | function self(vars: ThemeCommonVars) {
  type ResultThemeVars (line 30) | type ResultThemeVars = ReturnType<typeof self>
  type ResultTheme (line 39) | type ResultTheme = typeof resultLight

FILE: src/scrollbar/src/Scrollbar.tsx
  type ScrollTo (line 10) | interface ScrollTo {
  type ScrollBy (line 15) | type ScrollBy = ScrollTo
  type ScrollbarInst (line 17) | interface ScrollbarInst {
  type ScrollbarProps (line 40) | type ScrollbarProps = ExtractPublicPropTypes<typeof scrollbarProps>
  method setup (line 45) | setup() {
  method render (line 60) | render() {

FILE: src/select/src/Select.tsx
  type SelectProps (line 224) | type SelectProps = ExtractPublicPropTypes<typeof selectProps>
  type SelectSlots (line 226) | interface SelectSlots {
  method setup (line 238) | setup(props) {
  method render (line 965) | render() {

FILE: src/select/src/interface.ts
  type SelectMixedOption (line 4) | type SelectMixedOption
  type SelectBaseOption (line 9) | interface SelectBaseOption<
  type SelectGroupOptionBase (line 26) | interface SelectGroupOptionBase {
  type SelectIgnoredOption (line 34) | interface SelectIgnoredOption {
  type ValueAtom (line 40) | type ValueAtom = string | number
  type Value (line 41) | type Value = ValueAtom | string[] | number[] | ValueAtom[]
  type OnUpdateValue (line 42) | type OnUpdateValue = (
  type OnUpdateValueImpl (line 55) | type OnUpdateValueImpl = (
  type SelectTreeMate (line 67) | type SelectTreeMate = TreeMate<
  type SelectOption (line 74) | type SelectOption = SelectBaseOption<string | number>
  type SelectGroupOption (line 75) | type SelectGroupOption
  type SelectInst (line 84) | interface SelectInst {
  type SelectFallbackOption (line 91) | type SelectFallbackOption = (value: string & number) => SelectOption
  type SelectFallbackOptionImpl (line 92) | type SelectFallbackOptionImpl = (value: string | number) => SelectOption
  type SelectFilter (line 93) | type SelectFilter = (pattern: string, option: SelectOption) => boolean

FILE: src/select/src/public-types.ts
  type SelectSize (line 1) | type SelectSize = 'tiny' | 'small' | 'medium' | 'large'

FILE: src/select/src/utils.ts
  function getIsGroup (line 10) | function getIsGroup(option: SelectMixedOption): boolean {
  function getIgnored (line 14) | function getIgnored(option: SelectMixedOption): boolean {
  function patternMatched (line 18) | function patternMatched(pattern: string, value: string): boolean {
  function createTmOptions (line 29) | function createTmOptions(
  function filterOptions (line 60) | function filterOptions(
  function createValOptMap (line 95) | function createValOptMap(

FILE: src/select/styles/light.ts
  function self (line 7) | function self(vars: ThemeCommonVars) {
  type SelectThemeVars (line 25) | type SelectThemeVars = ReturnType<typeof self>
  type SelectTheme (line 26) | type SelectTheme = typeof selectLight

FILE: src/skeleton/src/Skeleton.tsx
  type SkeletonProps (line 35) | type SkeletonProps = ExtractPublicPropTypes<typeof skeletonProps>
  method setup (line 41) | setup(props) {
  method render (line 96) | render() {

FILE: src/skeleton/src/public-types.ts
  type SkeletonSize (line 1) | type SkeletonSize = 'small' | 'medium' | 'large'

FILE: src/skeleton/styles/dark.ts
  method self (line 7) | self(vars) {

FILE: src/skeleton/styles/light.ts
  function self (line 5) | function self(vars: ThemeCommonVars) {
  type SkeletonThemeVars (line 17) | type SkeletonThemeVars = ReturnType<typeof self>
  type SkeletonTheme (line 25) | type SkeletonTheme = typeof skeletonLight

FILE: src/slider/src/Slider.tsx
  type ClosestMark (line 34) | interface ClosestMark {
  type SliderProps (line 95) | type SliderProps = ExtractPublicPropTypes<typeof sliderProps>
  type SliderSlots (line 97) | interface SliderSlots {
  method setup (line 106) | setup(props) {
  method render (line 684) | render() {

FILE: src/slider/src/interface.ts
  type OnUpdateValueImpl (line 1) | type OnUpdateValueImpl = (value: number | number[]) => void

FILE: src/slider/src/utils.ts
  function isTouchEvent (line 4) | function isTouchEvent(e: MouseEvent | TouchEvent): e is TouchEvent {
  type RefType (line 8) | type RefType = HTMLElement | ComponentPublicInstance
  type RefKey (line 9) | type RefKey = number
  type RefsValue (line 10) | type RefsValue<T extends RefType> = Map<RefKey, T>
  function useRefs (line 11) | function useRefs<T extends RefType>(): [

FILE: src/slider/styles/dark.ts
  method self (line 8) | self(vars) {

FILE: src/slider/styles/light.ts
  function self (line 6) | function self(vars: ThemeCommonVars) {
  type SliderThemeVars (line 52) | type SliderThemeVars = ReturnType<typeof self>
  type SliderTheme (line 61) | type SliderTheme = typeof sliderLight

FILE: src/slider/tests/Slider.spec.ts
  function onUpdateValue1 (line 50) | function onUpdateValue1(value: number): void {}
  function onUpdateValue2 (line 51) | function onUpdateValue2(value: number[]): void {}

FILE: src/space/src/Space.tsx
  type Align (line 14) | type Align
  type Justify (line 23) | type Justify
  type SpaceProps (line 59) | type SpaceProps = ExtractPublicPropTypes<typeof spaceProps>
  method setup (line 64) | setup(props) {
  method render (line 110) | render() {

FILE: src/space/src/public-types.ts
  type SpaceSize (line 1) | type SpaceSize = 'small' | 'medium' | 'large' | number | [number, number]

FILE: src/space/src/utils.ts
  function ensureSupportFlexGap (line 5) | function ensureSupportFlexGap(): boolean {

FILE: src/space/styles/dark.ts
  method self (line 6) | self() {

FILE: src/space/styles/light.ts
  function self (line 4) | function self() {
  type SpaceThemeVars (line 8) | type SpaceThemeVars = ReturnType<typeof self>
  type SpaceTheme (line 16) | type SpaceTheme = typeof spaceLight

FILE: src/space/tests/Space.spec.tsx
  function getChildrenNode (line 9) | function getChildrenNode(wrapper: VueWrapper<any>): any[] {
  method render (line 24) | render() {
  method render (line 35) | render() {
  method render (line 47) | render() {
  method render (line 76) | render() {
  method render (line 107) | render() {
  method render (line 142) | render() {
  method render (line 164) | render() {
  method render (line 196) | render() {
  method render (line 217) | render() {
  method render (line 243) | render() {
  method render (line 262) | render() {

FILE: src/spin/src/Spin.tsx
  constant STROKE_WIDTH (line 15) | const STROKE_WIDTH = {
  type SpinProps (line 49) | type SpinProps = ExtractPublicPropTypes<typeof spinProps>
  type SpinSlots (line 51) | interface SpinSlots {
  method setup (line 61) | setup(props) {
  method render (line 147) | render() {

FILE: src/spin/styles/light.ts
  function self (line 5) | function self(vars: ThemeCommonVars) {
  type SpinThemeVars (line 29) | type SpinThemeVars = ReturnType<typeof self>
  type SpinTheme (line 38) | type SpinTheme = typeof spinLight

FILE: src/split/src/Split.tsx
  type SplitProps (line 56) | type SplitProps = ExtractPublicPropTypes<typeof splitProps>
  type SplitSlots (line 58) | interface SplitSlots {
  method setup (line 69) | setup(props) {
  method render (line 243) | render() {

FILE: src/split/src/types.ts
  type SplitOnUpdateSize (line 1) | type SplitOnUpdateSize = (size: string & number) => void

FILE: src/split/styles/light.ts
  function self (line 5) | function self(vars: ThemeCommonVars) {
  type SplitThemeVars (line 13) | type SplitThemeVars = ReturnType<typeof self>
  type SplitTheme (line 22) | type SplitTheme = typeof themeLight

FILE: src/statistic/src/Statistic.tsx
  type StatisticProps (line 18) | type StatisticProps = ExtractPublicPropTypes<typeof statisticProps>
  type StatisticSlots (line 20) | interface StatisticSlots {
  method setup (line 31) | setup(props) {
  method render (line 80) | render() {

FILE: src/statistic/styles/light.ts
  function self (line 5) | function self(vars: ThemeCommonVars) {
  type StatisticThemeVars (line 19) | type StatisticThemeVars = ReturnType<typeof self>
  type StatisticTheme (line 28) | type StatisticTheme = typeof statisticLight

FILE: src/steps/src/Step.tsx
  type StepProps (line 31) | type StepProps = ExtractPublicPropTypes<typeof stepProps>
  type StepSlots (line 33) | interface StepSlots {
  method setup (line 43) | setup(props) {
  method render (line 161) | render() {

FILE: src/steps/src/Steps.tsx
  function stepWithIndex (line 18) | function stepWithIndex(step: VNodeChild, i: number): VNode | null {
  function stepsWithIndex (line 28) | function stepsWithIndex(steps: VNodeChild[]): Array<VNode | null> {
  type StepsInjection (line 56) | interface StepsInjection {
  type StepsProps (line 63) | type StepsProps = ExtractPublicPropTypes<typeof stepsProps>
  type StepsSlots (line 65) | interface StepsSlots {
  method setup (line 77) | setup(props, { slots }) {
  method render (line 99) | render() {

FILE: src/steps/styles/light.ts
  function self (line 6) | function self(vars: ThemeCommonVars) {
  type StepsThemeVars (line 46) | type StepsThemeVars = ReturnType<typeof self>
  type StepsTheme (line 55) | type StepsTheme = typeof stepsLight

FILE: src/switch/src/Switch.tsx
  type SwitchProps (line 66) | type SwitchProps = ExtractPublicPropTypes<typeof switchProps>
  type SwitchSlots (line 68) | interface SwitchSlots {
  method setup (line 82) | setup(props) {
  method render (line 304) | render() {

FILE: src/switch/src/interface.ts
  type OnUpdateValue (line 1) | type OnUpdateValue = (value: string & number & boolean) => void
  type OnUpdateValueImpl (line 2) | type OnUpdateValueImpl = (value: string | number | boolean) => void

FILE: src/switch/src/public-types.ts
  type SwitchSize (line 3) | type SwitchSize = 'small' | 'medium' | 'large'
  type SwitchSpinProps (line 4) | type SwitchSpinProps = SharedSpinProps

FILE: src/switch/styles/dark.ts
  method self (line 9) | self(vars) {

FILE: src/switch/styles/light.ts
  function self (line 7) | function self(vars: ThemeCommonVars) {
  type SwitchThemeVars (line 31) | type SwitchThemeVars = ReturnType<typeof self>
  type SwitchTheme (line 40) | type SwitchTheme = typeof switchLight

FILE: src/table/src/Table.tsx
  type TableProps (line 32) | type TableProps = ExtractPublicPropTypes<typeof tableProps>
  method setup (line 37) | setup(props) {
  method render (line 127) | render() {

FILE: src/table/src/Tbody.tsx
  method render (line 5) | render() {

FILE: src/table/src/Td.tsx
  method render (line 5) | render() {

FILE: src/table/src/Th.tsx
  method render (line 5) | render() {

FILE: src/table/src/Thead.tsx
  method render (line 5) | render() {

FILE: src/table/src/Tr.tsx
  method render (line 5) | render() {

FILE: src/table/src/public-types.ts
  type TableSize (line 1) | type TableSize = 'small' | 'medium' | 'large'

FILE: src/table/styles/light.ts
  function self (line 7) | function self(vars: ThemeCommonVars) {
  type TableThemeVars (line 49) | type TableThemeVars = ReturnType<typeof self>
  type TableTheme (line 58) | type TableTheme = typeof tableLight

FILE: src/tabs/src/Tab.tsx
  type TabProps (line 17) | type TabProps = ExtractPublicPropTypes<typeof tabProps>
  method setup (line 24) | setup(props) {
  method render (line 91) | render() {

FILE: src/tabs/src/TabPane.tsx
  type TabPaneProps (line 37) | type TabPaneProps = ExtractPublicPropTypes<typeof tabPaneProps>
  type TabPaneSlots (line 39) | interface TabPaneSlots {
  method setup (line 52) | setup(props) {
  method render (line 73) | render() {

FILE: src/tabs/src/Tabs.tsx
  type TabPaneProps (line 62) | type TabPaneProps = ExtractPropTypes<typeof tabPaneProps> & {
  type TabsProps (line 120) | type TabsProps = ExtractPublicPropTypes<typeof tabsProps>
  type TabsSlots (line 122) | interface TabsSlots {
  method setup (line 132) | setup(props, { slots }) {
  method render (line 821) | render() {
  function filterMapTabPanes (line 1098) | function filterMapTabPanes(
  function createAddTag (line 1149) | function createAddTag(addable: Addable, internalLeftPadded: boolean): VN...
  function createLeftPaddedTabVNode (line 1163) | function createLeftPaddedTabVNode(tabVNode: VNode): VNode {
  function justifyTabDynamicProps (line 1176) | function justifyTabDynamicProps(

FILE: src/tabs/src/interface.ts
  type TabsType (line 4) | type TabsType = 'line' | 'card' | 'bar' | 'segment'
  type OnUpdateValue (line 6) | type OnUpdateValue = (value: string & number) => void
  type OnUpdateValueImpl (line 7) | type OnUpdateValueImpl = (value: string | number) => void
  type OnClose (line 9) | type OnClose = (name: string & number) => void
  type OnCloseImpl (line 10) | type OnCloseImpl = (name: string | number) => void
  type OnBeforeLeave (line 12) | type OnBeforeLeave = (
  type OnBeforeLeaveImpl (line 16) | type OnBeforeLeaveImpl = (
  type TabsInjection (line 21) | interface TabsInjection {
  type Addable (line 40) | type Addable
  type TabsInst (line 48) | interface TabsInst {

FILE: src/tabs/src/public-types.ts
  type TabsSize (line 1) | type TabsSize = 'small' | 'medium' | 'large'

FILE: src/tabs/styles/dark.ts
  method self (line 8) | self(vars) {

FILE: src/tabs/styles/light.ts
  function self (line 6) | function self(vars: ThemeCommonVars) {
  type TabsThemeVars (line 63) | type TabsThemeVars = ReturnType<typeof self>
  type TabsTheme (line 72) | type TabsTheme = typeof tabsLight

FILE: src/tabs/tests/Tabs.spec.tsx
  function onUpdateValue1 (line 14) | function onUpdateValue1(name: number): void {}
  function onUpdateValue2 (line 15) | function onUpdateValue2(name: string): void {}
  function onUpdateValue3 (line 16) | function onUpdateValue3(name: number | string): void {}

FILE: src/tag/src/Tag.tsx
  type TagPublicMethods (line 30) | interface TagPublicMethods {
  type TagRef (line 33) | interface TagRef extends TagPublicMethods {
  type TagInjection (line 66) | interface TagInjection {
  type TagProps (line 72) | type TagProps = ExtractPublicPropTypes<typeof tagProps>
  type TagSlots (line 74) | interface TagSlots {
  method setup (line 84) | setup(props) {
  method render (line 266) | render() {

FILE: src/tag/src/common-props.ts
  type TagColor (line 4) | interface TagColor {

FILE: src/tag/src/public-types.ts
  type TagSize (line 1) | type TagSize = 'tiny' | 'small' | 'medium' | 'large'

FILE: src/tag/styles/dark.ts
  method self (line 9) | self(vars) {

FILE: src/tag/styles/light.ts
  function self (line 7) | function self(vars: ThemeCommonVars) {
  type TagThemeVars (line 122) | type TagThemeVars = ReturnType<typeof self>
  type TagTheme (line 131) | type TagTheme = typeof tagLight

FILE: src/theme-editor/src/MaximizeIcon.tsx
  method render (line 4) | render() {

FILE: src/theme-editor/src/MinimizeIcon.tsx
  method render (line 4) | render() {

FILE: src/theme-editor/src/ThemeEditor.tsx
  function renderColorWandIcon (line 32) | function renderColorWandIcon() {
  function showColorPicker (line 65) | function showColorPicker(key: string): boolean {
  method setup (line 76) | setup() {
  method render (line 211) | render() {

FILE: src/themes/interface.ts
  type BuiltInGlobalTheme (line 3) | type BuiltInGlobalTheme = Omit<

FILE: src/themes/utils.ts
  type ComponentKey (line 3) | type ComponentKey = Exclude<keyof GlobalTheme, 'name'>
  type ComponentThemes (line 4) | type ComponentThemes = Array<Exclude<GlobalTheme[ComponentKey], undefined>>
  function createTheme (line 11) | function createTheme(

FILE: src/thing/src/Thing.tsx
  type ThingProps (line 23) | type ThingProps = ExtractPublicPropTypes<typeof thingProps>
  type ThingSlots (line 25) | interface ThingSlots {
  method setup (line 39) | setup(props, { slots }) {

FILE: src/thing/styles/light.ts
  function self (line 5) | function self(vars: ThemeCommonVars) {
  type ThingThemeVars (line 15) | type ThingThemeVars = ReturnType<typeof self>
  type ThingTheme (line 24) | type ThingTheme = typeof thingLight

FILE: src/time-picker/src/Panel.tsx
  method setup (line 98) | setup(props) {
  method render (line 202) | render() {

FILE: src/time-picker/src/PanelCol.tsx
  method render (line 23) | render() {

FILE: src/time-picker/src/TimePicker.tsx
  function validateUnits (line 80) | function validateUnits(value: MaybeArray<number>, max: number): boolean {
  type TimePickerProps (line 180) | type TimePickerProps = ExtractPublicPropTypes<typeof timePickerProps>
  type TimePickerSlots (line 182) | interface TimePickerSlots {
  method setup (line 190) | setup(props) {
  method render (line 936) | render() {

FILE: src/time-picker/src/interface.ts
  type ItemValue (line 7) | type ItemValue = number | 'am' | 'pm'
  type Item (line 9) | interface Item {
  type TimePickerInjection (line 15) | interface TimePickerInjection {
  type PanelRef (line 23) | interface PanelRef {
  type OnUpdateValue (line 31) | type OnUpdateValue = ((value: number, formattedValue: string) => void)
  type OnUpdateValueImpl (line 33) | type OnUpdateValueImpl = (
  type OnUpdateFormattedValue (line 38) | type OnUpdateFormattedValue = ((
  type OnUpdateFormattedValueImpl (line 43) | type OnUpdateFormattedValueImpl = (
  type IsHourDisabled (line 48) | type IsHourDisabled = (hour: number) => boolean
  type IsMinuteDisabled (line 49) | type IsMinuteDisabled = (minute: number, hour: number | null) => boolean
  type IsSecondDisabled (line 50) | type IsSecondDisabled = (
  type TimePickerInst (line 56) | interface TimePickerInst {

FILE: src/time-picker/src/public-types.ts
  type TimePickerSize (line 1) | type TimePickerSize = 'small' | 'medium' | 'large'

FILE: src/time-picker/src/utils.ts
  function getFixValue (line 187) | function getFixValue(value: number): string {
  function getTimeUnits (line 192) | function getTimeUnits(
  function isTimeInStep (line 242) | function isTimeInStep(
  function findSimilarTime (line 258) | function findSimilarTime(
  function getAmPm (line 291) | function getAmPm(value: number): 'am' | 'pm' {

FILE: src/time-picker/styles/light.ts
  function self (line 9) | function self(vars: ThemeCommonVars) {
  type TimePickerThemeVars (line 38) | type TimePickerThemeVars = ReturnType<typeof self>
  type TimePickerTheme (line 52) | type TimePickerTheme = typeof timePickerLight

FILE: src/time/src/Time.ts
  type TimeProps (line 28) | type TimeProps = ExtractPublicPropTypes<typeof timeProps>
  method setup (line 33) | setup(props) {
  method render (line 105) | render() {

FILE: src/timeline/src/Timeline.tsx
  type TimelineInjection (line 25) | interface TimelineInjection {
  type TimelineProps (line 33) | type TimelineProps = ExtractPublicPropTypes<typeof timelineProps>
  method setup (line 38) | setup(props, { slots }) {

FILE: src/timeline/src/TimelineItem.tsx
  type TimelineItemProps (line 32) | type TimelineItemProps = ExtractPublicPropTypes<typeof timelineItemProps>
  type TimelineItemSlots (line 34) | interface TimelineItemSlots {
  method setup (line 45) | setup(props) {
  method render (line 113) | render() {

FILE: src/timeline/styles/dark.ts
  method self (line 8) | self(vars) {

FILE: src/timeline/styles/light.ts
  function self (line 6) | function self(vars: ThemeCommonVars) {
  type TimelineThemeVars (line 40) | type TimelineThemeVars = ReturnType<typeof self>
  type TimelineTheme (line 49) | type TimelineTheme = typeof timelineLight

FILE: src/tooltip/src/Tooltip.ts
  type TooltipInst (line 13) | type TooltipInst = PopoverInst
  type TooltipProps (line 20) | type TooltipProps = ExtractPublicPropTypes<typeof tooltipProps>
  type TooltipSlots (line 22) | interface TooltipSlots extends PopoverSlots {}
  method setup (line 29) | setup(props) {
  method render (line 57) | render() {

FILE: src/tooltip/styles/dark.ts
  method self (line 12) | self(vars) {

FILE: src/tooltip/styles/light.ts
  function self (line 8) | function self(vars: ThemeCommonVars) {
  type TooltipThemeVars (line 19) | type TooltipThemeVars = ReturnType<typeof self>
  type TooltipTheme (line 31) | type TooltipTheme = typeof tooltipLight

FILE: src/transfer/src/Transfer.tsx
  type TransferProps (line 82) | type TransferProps = ExtractPublicPropTypes<typeof transferProps>
  method setup (line 87) | setup(props) {
  method render (line 294) | render() {

FILE: src/transfer/src/TransferFilter.tsx
  method setup (line 19) | setup() {
  method render (line 26) | render() {

FILE: src/transfer/src/TransferHeader.tsx
  method setup (line 21) | setup(props) {

FILE: src/transfer/src/TransferList.tsx
  method setup (line 34) | setup() {
  method render (line 70) | render() {

FILE: src/transfer/src/TransferListItem.tsx
  method setup (line 28) | setup(props) {
  method render (line 54) | render() {

FILE: src/transfer/src/interface.ts
  type OptionValue (line 6) | type OptionValue = string | number
  type Option (line 7) | interface Option {
  type Filter (line 13) | type Filter = (
  type RenderLabelProps (line 19) | interface RenderLabelProps {
  type TransferRenderTargetLabel (line 23) | type TransferRenderTargetLabel = (props: RenderLabelProps) => VNodeChild
  type TransferRenderSourceLabel (line 24) | type TransferRenderSourceLabel = (props: RenderLabelProps) => VNodeChild
  type RenderListProps (line 26) | interface RenderListProps {
  type TransferRenderSourceList (line 32) | type TransferRenderSourceList = (props: RenderListProps) => VNodeChild
  type TransferInjection (line 34) | interface TransferInjection {
  type OnUpdateValue (line 53) | type OnUpdateValue = (value: OptionValue[]) => void

FILE: src/transfer/src/public-types.ts
  type TransferSize (line 1) | type TransferSize = 'small' | 'medium' | 'large'

FILE: src/transfer/src/use-transfer-data.ts
  type UseTransferDataProps (line 5) | interface UseTransferDataProps {
  function useTransferData (line 16) | function useTransferData(props: UseTransferDataProps) {

FILE: src/transfer/styles/dark.ts
  method self (line 20) | self(vars) {

FILE: src/transfer/styles/light.ts
  function self (line 12) | function self(vars: ThemeCommonVars) {
  type TransferThemeVars (line 64) | type TransferThemeVars = ReturnType<typeof self>
  type TransferTheme (line 80) | type TransferTheme = typeof transferLight

FILE: src/tree-select/src/TreeSelect.tsx
  type OnLoad (line 85) | type OnLoad = (node: TreeSelectOption) => Promise<void>
  type TreeSelectProps (line 181) | type TreeSelectProps = ExtractPublicPropTypes<typeof treeSelectProps>
  type TreeSelectSlots (line 183) | interface TreeSelectSlots {
  method setup (line 194) | setup(props) {
  method render (line 907) | render() {

FILE: src/tree-select/src/interface.ts
  type TreeSelectOption (line 6) | type TreeSelectOption = Omit<
  type TreeSelectTmNode (line 14) | type TreeSelectTmNode = TreeNode<TreeSelectOption>
  type OnUpdateValue (line 16) | type OnUpdateValue = (
  type OnUpdateValueImpl (line 43) | type OnUpdateValueImpl = (
  type OnUpdateIndeterminateKeysImpl (line 68) | type OnUpdateIndeterminateKeysImpl = (
  type Value (line 80) | type Value = string | number | Array<string | number> | null
  type TreeSelectInjection (line 82) | interface TreeSelectInjection {
  type TreeSelectRenderTag (line 90) | type TreeSelectRenderTag = (props: {
  type TreeSelectRenderProps (line 95) | interface TreeSelectRenderProps {
  type TreeSelectRenderTreePart (line 101) | type TreeSelectRenderTreePart = ({
  type TreeSelectRenderLabel (line 107) | type TreeSelectRenderLabel = TreeSelectRenderTreePart
  type TreeSelectRenderPrefix (line 109) | type TreeSelectRenderPrefix = TreeSelectRenderTreePart
  type TreeSelectRenderSuffix (line 111) | type TreeSelectRenderSuffix = TreeSelectRenderTreePart
  type TreeSelectNodeProps (line 113) | type TreeSelectNodeProps = (info: {
  type TreeSelectInst (line 117) | interface TreeSelectInst {

FILE: src/tree-select/src/public-types.ts
  type TreeSelectSize (line 1) | type TreeSelectSize = 'small' | 'medium' | 'large'

FILE: src/tree-select/src/utils.ts
  function treeOption2SelectOption (line 4) | function treeOption2SelectOption(
  function treeOption2SelectOptionWithPath (line 16) | function treeOption2SelectOptionWithPath(

FILE: src/tree-select/styles/light.ts
  function self (line 8) | function self(vars: ThemeCommonVars) {
  type TreeSelectThemeVars (line 32) | type TreeSelectThemeVars = ReturnType<typeof self>
  type TreeSelectTheme (line 46) | type TreeSelectTheme = typeof treeSelectLight

FILE: src/tree/src/MotionWrapper.tsx
  method render (line 29) | render() {

FILE: src/tree/src/Tree.tsx
  function createTreeMateOptions (line 70) | function createTreeMateOptions<T>(
  type OnUpdateCheckedKeys (line 95) | type OnUpdateCheckedKeys = (
  type OnUpdateCheckedKeysImpl (line 103) | type OnUpdateCheckedKeysImpl = (
  type OnUpdateIndeterminateKeys (line 111) | type OnUpdateIndeterminateKeys = (
  type OnUpdateIndeterminateKeysImpl (line 115) | type OnUpdateIndeterminateKeysImpl = (
  type OnUpdateSelectedKeys (line 119) | type OnUpdateSelectedKeys = (
  type OnUpdateSelectedKeysImpl (line 127) | type OnUpdateSelectedKeysImpl = (
  type onUpdateExpandedKeys (line 135) | type onUpdateExpandedKeys = (
  type OnUpdateExpandedKeysImpl (line 148) | type OnUpdateExpandedKeysImpl = (
  type TreeProps (line 341) | type TreeProps = ExtractPublicPropTypes<typeof treeProps>
  type TreeSlots (line 343) | interface TreeSlots {
  method setup (line 352) | setup(props) {
  method render (line 1740) | render() {

FILE: src/tree/src/TreeNode.tsx
  method setup (line 26) | setup(props) {
  method render (line 387) | render() {

FILE: src/tree/src/TreeNodeCheckbox.tsx
  method setup (line 24) | setup(props) {
  method render (line 40) | render() {

FILE: src/tree/src/TreeNodeContent.tsx
  method setup (line 25) | setup(props) {
  method render (line 46) | render() {

FILE: src/tree/src/TreeNodeSwitcher.tsx
  method setup (line 26) | setup(props) {

FILE: src/tree/src/dnd.tsx
  function renderDropMark (line 5) | function renderDropMark({
  function defaultAllowDrop (line 44) | function defaultAllowDrop({

FILE: src/tree/src/interface.ts
  type Key (line 9) | type Key = string | number
  type OnLoad (line 11) | type OnLoad = (node: TreeOption) => Promise<unknown>
  type TreeOptionBase (line 13) | interface TreeOptionBase {
  type TreeOption (line 24) | type TreeOption = TreeOptionBase & Record<string, unknown>
  type TreeOptions (line 26) | type TreeOptions = TreeOption[]
  type TreeRenderProps (line 28) | interface TreeRenderProps {
  type RenderTreePart (line 34) | type RenderTreePart = ({
  type RenderLabel (line 40) | type RenderLabel = RenderTreePart
  type RenderPrefix (line 42) | type RenderPrefix = RenderTreePart
  type RenderSuffix (line 44) | type RenderSuffix = RenderTreePart
  type TreeOverrideNodeClickBehaviorReturn (line 46) | type TreeOverrideNodeClickBehaviorReturn
  type TreeOverrideNodeClickBehavior (line 53) | type TreeOverrideNodeClickBehavior = (info: {
  type TreeNodeProps (line 57) | type TreeNodeProps = (info: {
  type TreeDragInfo (line 61) | interface TreeDragInfo {
  type TreeDropInfo (line 66) | interface TreeDropInfo {
  type InternalDragInfo (line 73) | interface InternalDragInfo {
  type DropPosition (line 78) | type DropPosition = 'before' | 'inside' | 'after'
  type AllowDrop (line 80) | type AllowDrop = (info: {
  type InternalDropInfo (line 86) | interface InternalDropInfo {
  type RenderSwitcherIcon (line 92) | type RenderSwitcherIcon = (props: {
  type CheckOnClick (line 98) | type CheckOnClick = (option: TreeOption) => boolean
  type TreeInjection (line 100) | interface TreeInjection {
  type TmNode (line 156) | type TmNode = TreeNode<TreeOption>
  type MotionData (line 158) | interface MotionData {
  type InternalTreeInst (line 165) | interface InternalTreeInst {
  type TreeInst (line 171) | interface TreeInst {
  type GetChildren (line 177) | type GetChildren = (option: any) => unknown

FILE: src/tree/src/keyboard.tsx
  function useKeyboard (line 13) | function useKeyboard({

FILE: src/tree/src/public-types.ts
  type TreeSpinProps (line 3) | type TreeSpinProps = SharedSpinProps

FILE: src/tree/src/utils.ts
  function useMergedCheckStrategy (line 8) | function useMergedCheckStrategy(props: {
  function isNodeDisabled (line 15) | function isNodeDisabled(node: TmNode, disabledField: string): boolean {
  function traverse (line 19) | function traverse(
  function keysWithFilter (line 37) | function keysWithFilter(
  function filterTree (line 86) | function filterTree(
  function treeGetClickTarget (line 164) | function treeGetClickTarget(

FILE: src/tree/styles/dark.ts
  method self (line 17) | self(vars) {

FILE: src/tree/styles/light.ts
  function self (line 9) | function self(vars: ThemeCommonVars) {
  type TreeThemeVars (line 39) | type TreeThemeVars = ReturnType<typeof self>
  type TreeTheme (line 53) | type TreeTheme = typeof treeLight

FILE: src/tree/tests/Tree.spec.ts
  function getTreeNodes (line 7) | function getTreeNodes(wrapper: VueWrapper) {
  function isChecked (line 11) | function isChecked(node: DOMWrapper<Element>): boolean {
  function isIndeterminate (line 17) | function isIndeterminate(node: DOMWrapper<Element>): boolean {
  function checkOnClick (line 529) | function checkOnClick(node: TreeOption): boolean {

FILE: src/typography/src/a.tsx
  type AProps (line 14) | type AProps = ExtractPublicPropTypes<typeof aProps>
  method setup (line 19) | setup(props) {
  method render (line 49) | render() {

FILE: src/typography/src/blockquote.tsx
  type BlockquoteProps (line 15) | type BlockquoteProps = ExtractPublicPropTypes<typeof blockquoteProps>
  method setup (line 20) | setup(props) {
  method render (line 58) | render() {

FILE: src/typography/src/create-header.ts
  type HeaderProps (line 23) | type HeaderProps = ExtractPublicPropTypes<typeof headerProps>
  method setup (line 29) | setup(props) {
  method render (line 79) | render() {

FILE: src/typography/src/headers.ts
  constant NH1 (line 3) | const NH1 = createHeader('1')
  constant NH2 (line 4) | const NH2 = createHeader('2')
  constant NH3 (line 5) | const NH3 = createHeader('3')
  constant NH4 (line 6) | const NH4 = createHeader('4')
  constant NH5 (line 7) | const NH5 = createHeader('5')
  constant NH6 (line 8) | const NH6 = createHeader('6')

FILE: src/typography/src/hr.tsx
  method setup (line 14) | setup(props) {
  method render (line 44) | render() {

FILE: src/typography/src/li.tsx
  method render (line 5) | render() {

FILE: src/typography/src/ol.tsx
  type OlProps (line 15) | type OlProps = ExtractPublicPropTypes<typeof olProps>
  method setup (line 20) | setup(props) {
  method render (line 62) | render() {

FILE: src/typography/src/p.tsx
  type PProps (line 15) | type PProps = ExtractPublicPropTypes<typeof pProps>
  method setup (line 20) | setup(props) {
  method render (line 66) | render() {

FILE: src/typography/src/text.tsx
  type TextProps (line 38) | type TextProps = ExtractPublicPropTypes<typeof textProps>
  method setup (line 43) | setup(props) {
  method render (line 98) | render() {

FILE: src/typography/src/ul.tsx
  type UlProps (line 15) | type UlProps = ExtractPublicPropTypes<typeof ulProps>
  method setup (line 20) | setup(props) {
  method render (line 62) | render() {

FILE: src/typography/styles/light.ts
  function self (line 6) | function self(vars: ThemeCommonVars) {
  type TypographyThemeVars (line 65) | type TypographyThemeVars = ReturnType<typeof self>
  type TypographyTheme (line 74) | type TypographyTheme = typeof typographyLight

FILE: src/upload/src/Upload.tsx
  function createXhrHandlers (line 70) | function createXhrHandlers(
  function customSubmitImpl (line 144) | function customSubmitImpl(options: {
  function registerHandler (line 207) | function registerHandler(
  function unwrapFunctionValue (line 221) | function unwrapFunctionValue<T>(
  function setHeaders (line 233) | function setHeaders(
  function appendData (line 246) | function appendData(
  function submitImpl (line 259) | function submitImpl(
  type UploadProps (line 400) | type UploadProps = ExtractPublicPropTypes<typeof uploadProps>
  method setup (line 405) | setup(props) {
  method render (line 773) | render() {

FILE: src/upload/src/UploadDragger.tsx
  method setup (line 10) | setup(_, { slots }) {

FILE: src/upload/src/UploadFile.tsx
  method setup (line 52) | setup(props) {
  method render (line 249) | render() {

FILE: src/upload/src/UploadFileList.tsx
  method setup (line 12) | setup(_, { slots }) {

FILE: src/upload/src/UploadProgress.tsx
  method setup (line 20) | setup() {
  method render (line 26) | render() {

FILE: src/upload/src/UploadTrigger.tsx
  type UploadTriggerSlots (line 11) | interface UploadTriggerSlots {
  method setup (line 21) | setup(props, { slots }) {

FILE: src/upload/src/icons.tsx
  function renderImageIcon (line 8) | function renderImageIcon() {
  function renderDocumentIcon (line 22) | function renderDocumentIcon() {

FILE: src/upload/src/interface.ts
  type ShouldUseThumbnailUrl (line 15) | type ShouldUseThumbnailUrl = (file: UploadSettledFileInfo) => boolean
  type FuncOrRecordOrUndef (line 17) | type FuncOrRecordOrUndef<T = string>
  type UploadInternalInst (line 22) | interface UploadInternalInst {
  type DoChange (line 30) | type DoChange = (
  type OnUpdateFileList (line 39) | type OnUpdateFileList = (fileList: UploadSettledFileInfo[]) => void
  type RenderIcon (line 41) | type RenderIcon = (file: UploadSettledFileInfo) => VNodeChild
  type UploadInjection (line 43) | interface UploadInjection {
  type XhrHandlers (line 89) | interface XhrHandlers {
  type OnBeforeUpload (line 96) | type OnBeforeUpload = (data: {
  type ListType (line 101) | type ListType = 'text' | 'image' | 'image-card'
  type OnPreview (line 103) | type OnPreview = (
  type CreateThumbnailUrl (line 110) | type CreateThumbnailUrl = (
  type CustomRequest (line 115) | type CustomRequest = (options: UploadCustomRequestOptions) => void
  type OnError (line 117) | type OnError = ({
  type OnRetry (line 125) | type OnRetry = ({
  type FileAndEntry (line 131) | interface FileAndEntry {
  type UploadTriggerDefaultSlotOptions (line 137) | interface UploadTriggerDefaultSlotOptions {

FILE: src/upload/src/public-types.ts
  type UploadInst (line 5) | interface UploadInst {
  type UploadFileInfo (line 11) | interface UploadFileInfo {
  type UploadCustomRequestOptions (line 24) | interface UploadCustomRequestOptions {
  type UploadSettledFileInfo (line 35) | type UploadSettledFileInfo = Required<UploadFileInfo>
  type UploadOnChange (line 37) | type UploadOnChange = (data: {
  type UploadOnFinish (line 43) | type UploadOnFinish = ({
  type UploadOnRemove (line 51) | type UploadOnRemove = (data: {
  type UploadOnDownload (line 57) | type UploadOnDownload = (

FILE: src/upload/src/utils.ts
  function isImageFileType (line 6) | function isImageFileType(type: string): boolean {
  function getExtname (line 10) | function getExtname(url: string = ''): string {
  function createImageDataUrl (line 36) | async function createImageDataUrl(file: File): Promise<string> {
  function isFileSystemDirectoryEntry (line 49) | function isFileSystemDirectoryEntry(
  function isFileSystemFileEntry (line 55) | function isFileSystemFileEntry(
  function getFilesFromEntries (line 61) | async function getFilesFromEntries(
  function createSettledFileInfo (line 111) | function createSettledFileInfo(
  function matchType (line 145) | function matchType(

FILE: src/upload/styles/dark.ts
  method self (line 15) | self(vars) {

FILE: src/upload/styles/light.ts
  function self (line 8) | function self(vars: ThemeCommonVars) {
  type UploadThemeVars (line 44) | type UploadThemeVars = ReturnType<typeof self>
  type UploadTheme (line 57) | type UploadTheme = typeof uploadLight

FILE: src/upload/tests/Upload.spec.tsx
  function getMockFile (line 16) | function getMockFile(element: Element, files: File[]): void {

FILE: src/virtual-list/src/VirtualList.tsx
  type VirtualListProps (line 53) | type VirtualListProps = ExtractPublicPropTypes<typeof virtualListProps>
  method setup (line 58) | setup(props) {
  method render (line 113) | render() {

FILE: src/vitest-setup.ts
  class _ResizeObserver (line 4) | class _ResizeObserver {
    method observe (line 5) | observe(): void {}
    method unobserve (line 6) | unobserve(): void {}
    method disconnect (line 7) | disconnect(): void {}
  function _matchMedia (line 10) | function _matchMedia(query: string): MediaQueryList {

FILE: src/watermark/src/Watermark.tsx
  function getRatio (line 12) | function getRatio(context: any): number {
  type WatermarkProps (line 114) | type WatermarkProps = ExtractPublicPropTypes<typeof watermarkProps>
  method setup (line 119) | setup(props, { slots }) {

FILE: src/watermark/styles/dark.ts
  method self (line 7) | self(vars) {

FILE: src/watermark/styles/light.ts
  method self (line 7) | self(vars) {
  type WatermarkTheme (line 16) | type WatermarkTheme = typeof watermarkLight

FILE: themes/tusimple/src/TsConfigProvider.tsx
  method setup (line 51) | setup(props) {
  method render (line 92) | render() {

FILE: themes/tusimple/src/icons.tsx
  function clear (line 176) | function clear (): VNode {
  function success (line 180) | function success (): VNode {
  function warning (line 184) | function warning (): VNode {
  function error (line 188) | function error (): VNode {
  function attach (line 192) | function attach (): VNode {
  function trash (line 196) | function trash (): VNode {
  function cancel (line 200) | function cancel (): VNode {
  function to (line 204) | function to (): VNode {
  function retry (line 208) | function retry (): VNode {

FILE: themes/tusimple/src/theme-overrides-dark.ts
  function createHoverColor (line 6) | function createHoverColor (color: string, overlayAlpha: number = 0.15): ...
  function createPressedColor (line 10) | function createPressedColor (

FILE: themes/tusimple/src/theme-overrides-light.ts
  function createHoverColor (line 6) | function createHoverColor (color: string, overlayAlpha: number = 0.15): ...
  function createPressedColor (line 10) | function createPressedColor (

FILE: themes/tusimple/src/unconfigurable-style-dark.ts
  function mountSvgDefs (line 4) | function mountSvgDefs (): void {

FILE: themes/tusimple/src/unconfigurable-style-light.ts
  function mountSvgDefs (line 4) | function mountSvgDefs (): void {

FILE: themes/tusimple/src/use-ts-dialog.ts
  type ExtendedApi (line 9) | interface ExtendedApi {
  type TsDialogApi (line 13) | type TsDialogApi = DialogApi & ExtendedApi
  function useDialog (line 15) | function useDialog (): TsDialogApi {

FILE: themes/tusimple/src/use-ts-message.ts
  type ExtendedApi (line 9) | interface ExtendedApi {
  type TsMessageApi (line 13) | type TsMessageApi = MessageApi & ExtendedApi
  function useMessage (line 15) | function useMessage (): TsMessageApi {

FILE: themes/tusimple/src/vars.ts
  constant BORDER_RADIUS (line 1) | const BORDER_RADIUS = '20px'
  constant NORMAL_BOX_SHADOW (line 3) | const NORMAL_BOX_SHADOW =
  constant NORMAL_BOX_SHADOW_DARK_THEME (line 6) | const NORMAL_BOX_SHADOW_DARK_THEME =
  constant SPECIAL_BOX_SHADOW (line 9) | const SPECIAL_BOX_SHADOW =
  constant SPECIAL_BOX_SHADOW_DARK_THEME (line 12) | const SPECIAL_BOX_SHADOW_DARK_THEME =
  constant SMALL_FRONT_SIZE (line 15) | const SMALL_FRONT_SIZE = '12px'
  constant NORMAL_FRONT_SIZE (line 17) | const NORMAL_FRONT_SIZE = '16px'
  constant SPECIAL_FRONT_SIZE (line 19) | const SPECIAL_FRONT_SIZE = '24px'
  constant GRAY_COLOR_1 (line 21) | const GRAY_COLOR_1 = '#333333'
  constant GRAY_COLOR_2 (line 23) | const GRAY_COLOR_2 = '#666666'
  constant GRAY_COLOR_3 (line 25) | const GRAY_COLOR_3 = '#999999'
  constant GRAY_COLOR_4 (line 27) | const GRAY_COLOR_4 = '#cccccc'
  constant GRAY_COLOR_5 (line 29) | const GRAY_COLOR_5 = '#D7DAE0'
  constant GRAY_COLOR_6 (line 31) | const GRAY_COLOR_6 = '#EBEDF0'
  constant CONTENT_SPACE (line 33) | const CONTENT_SPACE = '20px'

FILE: volar.d.ts
  type GlobalComponents (line 3) | interface GlobalComponents {
Condensed preview — 3559 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (8,060K chars).
[
  {
    "path": ".github/FUNDING.yml",
    "chars": 731,
    "preview": "# These are supported funding model platforms\n\n# github: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., "
  },
  {
    "path": ".github/ISSUE_TEMPLATE/bug_report.yml",
    "chars": 2707,
    "preview": "name: 🐞 Bug report\ndescription: Report an issue with naive-ui\nlabels: [untriaged]\nbody:\n  - type: markdown\n    attribute"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/bug_report.zh-CN.yml",
    "chars": 2056,
    "preview": "name: 🐞 错误报告\ndescription: 报告 naive-ui 的问题\nlabels: [untriaged]\nbody:\n  - type: markdown\n    attributes:\n      value: |\n  "
  },
  {
    "path": ".github/ISSUE_TEMPLATE/config.yml",
    "chars": 363,
    "preview": "blank_issues_enabled: false\ncontact_links:\n  - name: 💬 Discord Chat\n    url: https://discord.gg/Pqv7Mev5Dd\n    about: As"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/feature_request.yml",
    "chars": 1740,
    "preview": "name: 🚀 New feature request\ndescription: Propose a new feature to be added to Naive UI\nlabels: [feature request]\nbody:\n "
  },
  {
    "path": ".github/ISSUE_TEMPLATE/feature_request.zh-CN.yml",
    "chars": 1183,
    "preview": "name: 🚀 新功能请求\ndescription: 提议将新功能添加到 Naive UI\nlabels: [feature request]\nbody:\n  - type: markdown\n    attributes:\n      v"
  },
  {
    "path": ".github/dependabot.yml",
    "chars": 499,
    "preview": "# To get started with Dependabot version updates, you'll need to specify which\n# package ecosystems to update and where "
  },
  {
    "path": ".github/pull_request_template.md",
    "chars": 829,
    "preview": "<!--\n!!! Please read the following content if this is your first pull request !!!\n\n1. If you are working on docs, please"
  },
  {
    "path": ".github/workflows/node.js.yml",
    "chars": 1728,
    "preview": "# This workflow will do a clean install of node dependencies, build the source code and run tests across different versi"
  },
  {
    "path": ".github/workflows/publish-to-pkg.pr.new.yml",
    "chars": 909,
    "preview": "name: Publish to pkg.pr.new\non:\n  push:\n    branches: [main]\n  pull_request:\n    types: [labeled]\n\n# Cancel all previous"
  },
  {
    "path": ".gitignore",
    "chars": 304,
    "preview": "node_modules\ndist\ndocDist\nbuild-doc/deploy-doc.sh\nbuild-doc/dist\ntest-size\ntest-bundle\ntest/unit/coverage\npackage-lock.j"
  },
  {
    "path": ".husky/pre-commit",
    "chars": 22,
    "preview": "pnpm exec lint-staged\n"
  },
  {
    "path": ".npmrc",
    "chars": 19,
    "preview": "shell-emulator=true"
  },
  {
    "path": ".nvmrc",
    "chars": 3,
    "preview": "22\n"
  },
  {
    "path": ".pnpmfile.cjs",
    "chars": 878,
    "preview": "// We will lock vue version if there's regression\nconst lockVueVersion = false\n\nconst vueVersion = '3.2.36'\n\nconst isSam"
  },
  {
    "path": ".prettierignore",
    "chars": 20,
    "preview": "*.cssr.js\n*.cssr.ts\n"
  },
  {
    "path": ".prettierrc",
    "chars": 114,
    "preview": "{\n  \"semi\": false,\n  \"singleQuote\": true,\n  \"printWidth\": 80,\n  \"trailingComma\": \"none\",\n  \"proseWrap\": \"never\"\n}\n"
  },
  {
    "path": "CHANGELOG.en-US.md",
    "chars": 193369,
    "preview": "# CHANGELOG\n\n## NEXT_VERSION\n\n### Fixes\n\n- Fix `n-color-picker` passed `style` and `click` (onClick) not applied to trig"
  },
  {
    "path": "CHANGELOG.zh-CN.md",
    "chars": 151252,
    "preview": "# CHANGELOG\n\n## NEXT_VERSION\n\n### Fixes\n\n- 修复 `n-color-picker` 传入的 style、click 事件不生效,关闭 [#7528](https://github.com/tusen"
  },
  {
    "path": "CONTRIBUTING.md",
    "chars": 1863,
    "preview": "# Contributing\n\n- For new features & bug fixes, please create pull request to `main` branch.\n- For documentation, please"
  },
  {
    "path": "CONTRIBUTING.zh-CN.md",
    "chars": 1153,
    "preview": "# 贡献代码\n\n- 对于新特性和 bug fix,请对 `main` 分支提交 Pull Request\n- 对于文档更新,请对 `docs` 分支提交 Pull Request\n\n## 有用的指令\n\n```bash\n# 开启开发服务器,注"
  },
  {
    "path": "LICENSE",
    "chars": 1065,
    "preview": "MIT License\n\nCopyright (c) 2021 TuSimple\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\no"
  },
  {
    "path": "README.md",
    "chars": 2705,
    "preview": "<p align=\"center\">\n  <img width=\"144px\" src=\"https://naiveui.oss-cn-hongkong.aliyuncs.com/naivelogo.svg\" />\n</p>\n\n<h1 al"
  },
  {
    "path": "README.zh-CN.md",
    "chars": 1927,
    "preview": "<p align=\"center\">\n  <img width=\"144px\" src=\"https://naiveui.oss-cn-hongkong.aliyuncs.com/naivelogo.svg\" />\n</p>\n\n<h1 al"
  },
  {
    "path": "babel.config.js",
    "chars": 457,
    "preview": "// the file is used for site building and other tooling builds\n// > 2%, make template string not compiled to concat, sin"
  },
  {
    "path": "build/loaders/ComponentDemoTemplate.vue",
    "chars": 582,
    "preview": "<template>\n  <component-demo\n    demo-file-name=\"<!-- DEMO_FILE_NAME -->\"\n    relative-url=\"<!-- URL -->\"\n    title=\"<!-"
  },
  {
    "path": "build/loaders/convert-md-to-doc.ts",
    "chars": 7977,
    "preview": "import type { Token, Tokens } from 'marked'\nimport path from 'node:path'\nimport fse from 'fs-extra'\nimport camelCase fro"
  },
  {
    "path": "build/loaders/convert-vue-to-demo.ts",
    "chars": 5731,
    "preview": "import type { Token } from 'marked'\nimport fs from 'node:fs'\nimport path from 'node:path'\nimport process from 'node:proc"
  },
  {
    "path": "build/loaders/md-renderer.ts",
    "chars": 3132,
    "preview": "import hljs from 'highlight.js'\nimport { Renderer } from 'marked'\n\nexport function createRenderer(wrapCodeWithCard = tru"
  },
  {
    "path": "build/loaders/naive-ui-demo-loader.ts",
    "chars": 326,
    "preview": "import { convertVue2Demo } from './convert-vue-to-demo'\nimport projectPath from './project-path'\n\nexport default functio"
  },
  {
    "path": "build/loaders/naive-ui-doc-loader.ts",
    "chars": 399,
    "preview": "import process from 'node:process'\nimport { convertMd2ComponentDocumentation } from './convert-md-to-doc'\nimport project"
  },
  {
    "path": "build/loaders/project-path.ts",
    "chars": 249,
    "preview": "import path from 'node:path'\nimport { fileURLToPath } from 'node:url'\n\nconst __filename = fileURLToPath(import.meta.url)"
  },
  {
    "path": "build/loaders/test/basic.test.md",
    "chars": 329,
    "preview": "# Style Scheme\n\n```html\n<n-element tag=\"div\" class=\"myel\">\n  <template #=\"{ styleScheme }\">\n    <pre\n      :style=\"{\n   "
  },
  {
    "path": "build/loaders/test/component.test.md",
    "chars": 185,
    "preview": "# 按钮\n\n按钮需要一些说明\n\n## 演示\n\n```demo\ndemo1\n```\n\n## API\n\n| 属性 | 说明     | 类型   | 默认值      | 版本 |\n| ---- | -------- | ------ | --"
  },
  {
    "path": "build/loaders/test/test.md",
    "chars": 251,
    "preview": "# Get Started\n\n## Installation\n\nFirst install it.\n\n```bash\nnpm install --save-dev naive-ui\n```\n\n## Usage\n\nAdd the follow"
  },
  {
    "path": "build/loaders/test/testDemoLoader.js",
    "chars": 277,
    "preview": "const fs = require('node:fs')\nconst path = require('node:path')\nconst demoLoader = require('../NaiveUIDemoLoader')\n\ncons"
  },
  {
    "path": "build/loaders/test/testMdLoader.js",
    "chars": 943,
    "preview": "// const mdLoader = require('./NaiveUIMdLoader')\n// const { marked } = require('marked')\nconst fs = require('node:fs')\nc"
  },
  {
    "path": "build/utils/get-demo-by-path.ts",
    "chars": 485,
    "preview": "import fs from 'fs-extra'\nimport demoLoader from '../loaders/naive-ui-demo-loader'\nimport docLoader from '../loaders/nai"
  },
  {
    "path": "build/utils/handle-merge-code.ts",
    "chars": 2202,
    "preview": "import { tsToJs } from './tsToJs'\n\ninterface Parts {\n  api?: 'composition' | 'options'\n  language?: 'ts' | 'js'\n  templa"
  },
  {
    "path": "build/utils/terse-cssr.ts",
    "chars": 700,
    "preview": "import { generate } from '@babel/generator'\nimport { parse } from '@babel/parser'\nimport _traverse from '@babel/traverse"
  },
  {
    "path": "build/utils/tsToJs.ts",
    "chars": 466,
    "preview": "import { transformSync } from 'esbuild'\n\nexport function tsToJs(content: string | null): string {\n  if (!content) {\n    "
  },
  {
    "path": "build/vite-plugin-css-render.ts",
    "chars": 322,
    "preview": "import type { Plugin } from 'vite'\nimport { terseCssr } from './utils/terse-cssr'\n\nexport function cssRenderPlugin(): Pl"
  },
  {
    "path": "build/vite-plugin-demo.ts",
    "chars": 1318,
    "preview": "import type { Plugin } from 'vite'\nimport vue from '@vitejs/plugin-vue'\nimport { getTransformedVueSrc } from './utils/ge"
  },
  {
    "path": "build/vite-plugin-index-tranform.ts",
    "chars": 514,
    "preview": "import type { Plugin } from 'vite'\nimport { env } from 'node:process'\n\nfunction transformIndexHtml(code: string): string"
  },
  {
    "path": "demo/Caveat.md",
    "chars": 84,
    "preview": "# Caveat\n\nCode is messy here because I've no time to refactor it.\n\nIt works matter.\n"
  },
  {
    "path": "demo/Site.vue",
    "chars": 743,
    "preview": "<script lang=\"ts\">\nimport { useLoadingBar } from 'naive-ui'\nimport { defineComponent, onMounted } from 'vue'\nimport { lo"
  },
  {
    "path": "demo/SiteHeader.vue",
    "chars": 12853,
    "preview": "<script lang=\"ts\">\nimport { MenuOutline } from '@vicons/ionicons5'\nimport { useMessage, version } from 'naive-ui'\nimport"
  },
  {
    "path": "demo/SiteRoot.vue",
    "chars": 1081,
    "preview": "<script lang=\"ts\">\nimport { defineComponent } from 'vue'\nimport { useRoute, useRouter } from 'vue-router'\nimport Site fr"
  },
  {
    "path": "demo/index.dev.js",
    "chars": 493,
    "preview": "import { createApp } from 'vue'\nimport naive, { NThemeEditor } from '../src/index'\nimport createDemoRouter from './route"
  },
  {
    "path": "demo/index.prod.js",
    "chars": 489,
    "preview": "import naive, { NThemeEditor } from 'naive-ui'\nimport { createApp } from 'vue'\nimport createDemoRouter from './routes/ro"
  },
  {
    "path": "demo/pages/Layout.vue",
    "chars": 2767,
    "preview": "<script lang=\"ts\">\nimport { useMemo } from 'vooks'\n// Frame component for components & docs page\nimport { computed, defi"
  },
  {
    "path": "demo/pages/docs/changelog/enUS/index.vue",
    "chars": 171,
    "preview": "<script>\nimport Changelog from '../../../../../CHANGELOG.en-US.md'\n\nexport default {\n  components: {\n    Changelog\n  }\n}"
  },
  {
    "path": "demo/pages/docs/changelog/zhCN/index.vue",
    "chars": 171,
    "preview": "<script>\nimport Changelog from '../../../../../CHANGELOG.zh-CN.md'\n\nexport default {\n  components: {\n    Changelog\n  }\n}"
  },
  {
    "path": "demo/pages/docs/common-issues/enUS/index.md",
    "chars": 1385,
    "preview": "# Common Issues\n\n## 1. The difference between @update:xxx and on-update:xxx\n\n### Case 1\n\nIf you are not using `v-model:x"
  },
  {
    "path": "demo/pages/docs/common-issues/zhCN/index.md",
    "chars": 921,
    "preview": "# 常见问题\n\n## 1. @update:xxx 和 on-update:xxx 的区别\n\n### 情况 1\n\n如果你没有在同一个组件上同时使用 `v-model:xxx` 和 `on-update:xxx`,`@update:xxx` "
  },
  {
    "path": "demo/pages/docs/community/enUS/index.md",
    "chars": 3514,
    "preview": "<!--anchor:on-->\n\n# Third-Party Libraries\n\nNaive UI is a high-quality Vue component library of unified design specificat"
  },
  {
    "path": "demo/pages/docs/community/zhCN/index.md",
    "chars": 2150,
    "preview": "<!--anchor:on-->\n\n# 社区精选资源\n\nNaive UI 是统一设计规范的高质量 Vue 组件库,我们倾向于只提供符合统一规范且带有视觉展现的 UI 组件。所以我们推荐以下社区已有的优秀资源,与 Naive UI 形成互补。"
  },
  {
    "path": "demo/pages/docs/controlled-uncontrolled/enUS/index.md",
    "chars": 1431,
    "preview": "<!--anchor:on-->\n\n# Controlled manner & uncontrolled manner\n\nA component's manner can be controlled or uncontrolled. Unc"
  },
  {
    "path": "demo/pages/docs/controlled-uncontrolled/zhCN/index.md",
    "chars": 714,
    "preview": "<!--anchor:on-->\n\n# 受控模式与非受控模式\n\n一个组件的行为可以分为受控模式和非受控模式两种。非受控模式指的是只监听组件的变化,而不去控制组件的 value,受控模式指的是控制组件的值。\n\n## 非受控模式\n\n在这种情况下"
  },
  {
    "path": "demo/pages/docs/customize-theme/enUS/index.md",
    "chars": 7118,
    "preview": "<!--anchor:on-->\n\n# Customizing theme\n\nNaive-ui provides `n-config-provider` to customize the theme.\n\nBy default all of "
  },
  {
    "path": "demo/pages/docs/customize-theme/zhCN/index.md",
    "chars": 5356,
    "preview": "<!--anchor:on-->\n\n# 调整主题\n\nNaive UI 通过使用 `n-config-provider` 调整主题。\n\n默认情况下所有组件均为亮色主题,无需任何配置。\n\n了解更多关于 `n-config-provider` 的"
  },
  {
    "path": "demo/pages/docs/experimental-features/enUS/index.md",
    "chars": 596,
    "preview": "<!--anchor:on-->\n\n# Experimental Features\n\n<n-alert type=\"warning\" title=\"Caveats\" :bordered=\"false\">\n  The following fe"
  },
  {
    "path": "demo/pages/docs/experimental-features/zhCN/index.md",
    "chars": 503,
    "preview": "<!--anchor:on-->\n\n# 试验性特性\n\n<n-alert type=\"warning\" title=\"注意\" :bordered=\"false\">\n  下列的所有功能都是<n-text strong>不稳定</n-text>的"
  },
  {
    "path": "demo/pages/docs/fonts/enUS/index.md",
    "chars": 1236,
    "preview": "# Configuring Fonts\n\nNaive UI works with [vfonts](https://github.com/07akioni/vfonts). You can use fonts from `vfonts` e"
  },
  {
    "path": "demo/pages/docs/fonts/zhCN/index.md",
    "chars": 784,
    "preview": "# 配置字体\n\nNaive UI 可以和 [vfonts](https://github.com/07akioni/vfonts) 配合,你可以简单的引入 `vfonts` 中的字体,包含常规字体和等宽字体。\n\n只需要在你 App 的入口文"
  },
  {
    "path": "demo/pages/docs/i18n/enUS/index.md",
    "chars": 3986,
    "preview": "<!--anchor:on-->\n\n# Internationalization\n\nNaive-ui provides `n-config-provider` to customize the internationalization. B"
  },
  {
    "path": "demo/pages/docs/i18n/zhCN/index.md",
    "chars": 3001,
    "preview": "<!--anchor:on-->\n\n# 国际化\n\nNaive-ui 通过使用 `n-config-provider` 调整语言,默认情况下所有组件均为英语。\n\n了解更多关于 `n-config-provider` 的信息,参见 [全局化配置"
  },
  {
    "path": "demo/pages/docs/import-on-demand/enUS/index.md",
    "chars": 2482,
    "preview": "# Import on Demand (Tree Shaking)\n\nNaive UI supports tree shaking for components, locales and themes.\n\nBy default the co"
  },
  {
    "path": "demo/pages/docs/import-on-demand/zhCN/index.md",
    "chars": 2096,
    "preview": "# 按需引入(Tree Shaking)\n\nNaive UI 支持 tree shaking,组件、语言、主题均可 tree-shaking。\n\n默认情况组件主题为亮色,语言为英文,无需额外导入。\n\n了解更多关于主题设定的信息,参见[调整主"
  },
  {
    "path": "demo/pages/docs/installation/enUS/index.md",
    "chars": 1103,
    "preview": "<!--anchor:on-->\n\n# Installation\n\n> Please note that naive-ui only supports Vue3. If you are using Vue2, you may look at"
  },
  {
    "path": "demo/pages/docs/installation/zhCN/index.md",
    "chars": 970,
    "preview": "<!--anchor:on-->\n\n# 安装\n\n> 注意,naive-ui 仅支持 Vue3。如果你在使用 Vue2,可以去看看别的库。\n\n## npm\n\n使用 npm 安装。\n\n```bash\nnpm i -D naive-ui\n```\n"
  },
  {
    "path": "demo/pages/docs/introduction/enUS/index.md",
    "chars": 1460,
    "preview": "<!--anchor:on-->\n\n# Naive UI\n\nNaive UI is a Vue 3 component library.\n\nTo know how to install it, see [Installation](inst"
  },
  {
    "path": "demo/pages/docs/introduction/zhCN/index.md",
    "chars": 880,
    "preview": "<!--anchor:on-->\n\n# Naive UI\n\nNaive UI 是一个 Vue3 的组件库。\n\n要了解如何安装,参见[安装](installation)。\n\n它比较完整,主题可调,用 TypeScript 写的,快。\n\n## "
  },
  {
    "path": "demo/pages/docs/jsx/enUS/index.md",
    "chars": 796,
    "preview": "<!--anchor:on-->\n\n# JSX & TSX\n\n## Enable JSX & TSX\n\nFor how to enable JSX & TSX, please look at your toolchain's docs.\n\n"
  },
  {
    "path": "demo/pages/docs/jsx/zhCN/index.md",
    "chars": 593,
    "preview": "<!--anchor:on-->\n\n# JSX & TSX\n\n## 启用 JSX & TSX\n\n关于启用 JSX 和 TSX,请参考你使用的工具链的相关文档。\n\n## 使用组件\n\n在 JSX 中,推荐以直接引入的形式使用组件。\n\n```js"
  },
  {
    "path": "demo/pages/docs/nuxtjs/enUS/index.md",
    "chars": 1509,
    "preview": "# Nuxt.js\n\n## Caveat\n\nThis document pertains to SSR (Server-Side Rendering). Please familiarize yourself with the [SSR C"
  },
  {
    "path": "demo/pages/docs/nuxtjs/zhCN/index.md",
    "chars": 1133,
    "preview": "# Nuxt.js\n\n## 注意\n\n本文档涉及到 SSR,请先了解[SSR 的注意事项](ssr#注意)。\n\n## Nuxt.js 示例\n\n参考[例子](https://github.com/07akioni/naive-ui-nuxt-d"
  },
  {
    "path": "demo/pages/docs/ssr/enUS/index.md",
    "chars": 1850,
    "preview": "# Server-Sider Rendering\n\nSince naive-ui is using CSS in JS, in SSR mode it needs some extra configuration.\n\n## Caveat\n\n"
  },
  {
    "path": "demo/pages/docs/ssr/zhCN/index.md",
    "chars": 1069,
    "preview": "# 服务端渲染 Server-Sider Rendering\n\n由于 naive-ui 在使用 CSS in JS,在 SSR 的情况下需要一些额外的配置。\n\n## 注意\n\n无论在任何框架下使用 SSR,需要确保项目满足以下条件:\n\n1. "
  },
  {
    "path": "demo/pages/docs/style-conflict/enUS/index.md",
    "chars": 1619,
    "preview": "# Potential Style Conflict\n\n## Style Element Position\n\nSometimes you want to control where the style element should be i"
  },
  {
    "path": "demo/pages/docs/style-conflict/zhCN/index.md",
    "chars": 991,
    "preview": "# 潜在的样式冲突\n\n## 样式元素的位置\n\n有时你可能希望控制样式元素插入的位置。\n\n例如,如果你使用了 tailwind 的 reset 样式,你不希望它被插入 naive-ui 样式的后面,因为这可能会覆盖按钮等组件的样式。\n\n你可以"
  },
  {
    "path": "demo/pages/docs/supported-platforms/enUS/index.md",
    "chars": 523,
    "preview": "<!--anchor:on-->\n\n# Supported Platforms\n\n## Browsers\n\nIE is not supported.\n\nModern browsers such as `Edge`, `Firefox`, `"
  },
  {
    "path": "demo/pages/docs/supported-platforms/zhCN/index.md",
    "chars": 272,
    "preview": "<!--anchor:on-->\n\n# 支持的平台\n\n## 浏览器\n\n不支持 IE 浏览器。\n\n`Edge`、`Firefox`、`Chrome`、`Safari` 等现代浏览器的最新的 2 个版本确保会被支持。\n\n对于这些浏览器的其他版本"
  },
  {
    "path": "demo/pages/docs/theme/enUS/element.demo.vue",
    "chars": 812,
    "preview": "<markdown>\n# Use Naive Element\n\nNaive UI has `n-element` component. See [Element](../components/element).\n</markdown>\n\n<"
  },
  {
    "path": "demo/pages/docs/theme/enUS/index.demo-entry.md",
    "chars": 270,
    "preview": "# Create Themed Component\n\nYou may not want to use only the provided components and want to write themed components.\n\nNa"
  },
  {
    "path": "demo/pages/docs/theme/enUS/provide-theme.demo.vue",
    "chars": 566,
    "preview": "<markdown>\n# Provide Theme\n\nUse `n-config-provider` to set the theme of all its descendant components.\n</markdown>\n\n<scr"
  },
  {
    "path": "demo/pages/docs/theme/enUS/use-theme-vars.demo.vue",
    "chars": 295,
    "preview": "<markdown>\n# useThemeVars\n\nNaive UI provides `useThemeVars`. It contains common theme variables.\n</markdown>\n\n<script se"
  },
  {
    "path": "demo/pages/docs/theme/zhCN/element.demo.vue",
    "chars": 785,
    "preview": "<markdown>\n# 使用元素组件\n\nNaive UI 提供 `n-element` 组件,参考 [Element](../components/element)。\n</markdown>\n\n<script lang=\"ts\" setu"
  },
  {
    "path": "demo/pages/docs/theme/zhCN/index.demo-entry.md",
    "chars": 147,
    "preview": "# 创建适配主题的组件\n\n你可能觉得只用内置的组件不够爽,想自己也写适配主题的组件。\n\nNaive UI 提供一些工具帮助开发者简单的创建支持主题的组件。\n\n## 演示\n\n```demo\nprovide-theme.vue\nelement."
  },
  {
    "path": "demo/pages/docs/theme/zhCN/provide-theme.demo.vue",
    "chars": 520,
    "preview": "<markdown>\n# 提供主题\n\n使用 `n-config-provider` 来设定它全部的后代组件主题。\n</markdown>\n\n<script setup lang=\"ts\">\nimport { darkTheme } from"
  },
  {
    "path": "demo/pages/docs/theme/zhCN/use-theme-vars.demo.vue",
    "chars": 265,
    "preview": "<markdown>\n# useThemeVars\n\nNaive UI 提供 `useThemeVars`,它包含了常见的主题变量。\n</markdown>\n\n<script setup lang=\"ts\">\nimport { useThe"
  },
  {
    "path": "demo/pages/docs/umd/enUS/index.md",
    "chars": 1303,
    "preview": "# Using UMD\n\n<n-alert title=\"Warning\" type=\"warning\" :bordered=\"false\">\n  There is a self-closing bug in UMD version of "
  },
  {
    "path": "demo/pages/docs/umd/zhCN/index.md",
    "chars": 968,
    "preview": "# 使用 UMD\n\n<n-alert title=\"警告\" type=\"warning\" :bordered=\"false\">\n  目前 UMD 版本的 naive 标签自闭合存在问题。请显式进行标签闭合。如:<n-text code>&l"
  },
  {
    "path": "demo/pages/docs/usage-sfc/enUS/index.md",
    "chars": 1604,
    "preview": "<!--anchor:on-->\n\n# Usage in SFC\n\nIf you want to use the Single File Component(SFC) style, you can directly import compo"
  },
  {
    "path": "demo/pages/docs/usage-sfc/zhCN/index.md",
    "chars": 1123,
    "preview": "<!--anchor:on-->\n\n# 在 SFC 中使用\n\n如果你想使用单文件组件风格(SFC - Single File Component),可以选择直接引入或全局安装在 Vue App 中。\n\n## 直接引入(推荐)\n\n你可以直接导"
  },
  {
    "path": "demo/pages/docs/vite-ssge/enUS/index.md",
    "chars": 1091,
    "preview": "# Vite SSG/SSE\n\n## Caveat\n\nThis document pertains to SSR (Server-Side Rendering). Please familiarize yourself with the ["
  },
  {
    "path": "demo/pages/docs/vite-ssge/zhCN/index.md",
    "chars": 876,
    "preview": "# Vite SSG/SSE\n\n## 注意\n\n本文档涉及到 SSR,请先了解[SSR 的注意事项](ssr#注意)。\n\n## 配置指南\n\n如果你正在使用 `vite-sse` 或者 `vite-ssg`,通过下面的步骤设定 `naive-u"
  },
  {
    "path": "demo/pages/docs/vitepress/enUS/index.md",
    "chars": 3140,
    "preview": "# Vitepress\n\n## Caveat\n\nThis document pertains to SSR (Server-Side Rendering). Please familiarize yourself with the [SSR"
  },
  {
    "path": "demo/pages/docs/vitepress/zhCN/index.md",
    "chars": 2876,
    "preview": "# Vitepress\n\n## 注意\n\n本文档涉及到 SSR,请先了解[SSR 的注意事项](ssr#注意)。\n\n## 例子\n\n这是一个使用 `naive-ui`、`vitepress` 的[样例](https://github.com/0"
  },
  {
    "path": "demo/pages/docs/vue3/enUS/index.vue",
    "chars": 145,
    "preview": "<script>\nimport Vue3 from '../../../../../vue3.md'\n\nexport default {\n  components: {\n    Vue3\n  }\n}\n</script>\n\n<template"
  },
  {
    "path": "demo/pages/docs/vue3/zhCN/index.vue",
    "chars": 145,
    "preview": "<script>\nimport Vue3 from '../../../../../vue3.md'\n\nexport default {\n  components: {\n    Vue3\n  }\n}\n</script>\n\n<template"
  },
  {
    "path": "demo/pages/home/Footer.vue",
    "chars": 5779,
    "preview": "<script lang=\"ts\">\nimport { version } from 'naive-ui'\nimport { defineComponent } from 'vue'\nimport { push } from '../../"
  },
  {
    "path": "demo/pages/home/Left.vue",
    "chars": 34832,
    "preview": "<template>\n  <n-el>\n    <svg\n      xmlns=\"http://www.w3.org/2000/svg\"\n      xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n "
  },
  {
    "path": "demo/pages/home/Right.vue",
    "chars": 33423,
    "preview": "<template>\n  <n-el>\n    <svg\n      xmlns=\"http://www.w3.org/2000/svg\"\n      xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n "
  },
  {
    "path": "demo/pages/home/index.vue",
    "chars": 4623,
    "preview": "<script lang=\"ts\">\nimport { computed, defineComponent } from 'vue'\nimport { useThemeName } from '../../store'\nimport { i"
  },
  {
    "path": "demo/routes/router.js",
    "chars": 1217,
    "preview": "import { nextTick } from 'vue'\nimport { createRouter, createWebHistory } from 'vue-router'\nimport { useLocaleName } from"
  },
  {
    "path": "demo/routes/routes.js",
    "chars": 27642,
    "preview": "export const enDocRoutes = [\n  // basic docs\n  {\n    path: 'introduction',\n    component: () => import('../pages/docs/in"
  },
  {
    "path": "demo/setup.js",
    "chars": 486,
    "preview": "import ComponentDemo from './utils/ComponentDemo.vue'\nimport ComponentDemos from './utils/ComponentDemos'\nimport EditOnG"
  },
  {
    "path": "demo/store/hljs.js",
    "chars": 560,
    "preview": "import hljs from 'highlight.js/lib/core'\nimport cpp from 'highlight.js/lib/languages/cpp'\nimport javascript from 'highli"
  },
  {
    "path": "demo/store/index.js",
    "chars": 4223,
    "preview": "import {\n  darkTheme,\n  dateEnUS,\n  dateZhCN,\n  enUS,\n  NConfigProvider,\n  useOsTheme,\n  zhCN\n} from 'naive-ui'\nimport {"
  },
  {
    "path": "demo/store/menu-options.js",
    "chars": 17920,
    "preview": "// rubbish code here\n\nimport { NSpace, NTag } from 'naive-ui'\nimport { h } from 'vue'\nimport { RouterLink } from 'vue-ro"
  },
  {
    "path": "demo/styles/Metropolis.css",
    "chars": 102,
    "preview": "@font-face {\n  font-family: 'Metropolis';\n  font-weight: 600;\n  src: url('./Metropolis-Bold.woff2');\n}"
  },
  {
    "path": "demo/styles/demo.css",
    "chars": 1268,
    "preview": "@import 'Metropolis.css';\n\nbody {\n  overflow: hidden;\n  --header-height: 64px;\n}\n\n.demo-card .demo-card__view:not(:first"
  },
  {
    "path": "demo/utils/ComponentDemo.vue",
    "chars": 5491,
    "preview": "<script lang=\"ts\">\nimport { CodeOutline } from '@vicons/ionicons5'\nimport { computed, defineComponent, nextTick, ref, wa"
  },
  {
    "path": "demo/utils/ComponentDemos.tsx",
    "chars": 1613,
    "preview": "import { computed, defineComponent, Fragment, h } from 'vue'\nimport { useIsMobile, useIsSmallDesktop, useIsTablet } from"
  },
  {
    "path": "demo/utils/CopyCodeButton.vue",
    "chars": 3020,
    "preview": "<script lang=\"ts\">\nimport { useMessage } from 'naive-ui'\nimport { defineComponent } from 'vue'\n\nexport default defineCom"
  },
  {
    "path": "demo/utils/EditInCodeSandboxButton.vue",
    "chars": 1872,
    "preview": "<script lang=\"ts\">\nimport { computed, defineComponent } from 'vue'\nimport { getCodeSandboxParams } from './codesandbox'\n"
  },
  {
    "path": "demo/utils/EditInPlaygroundButton.vue",
    "chars": 1638,
    "preview": "<script lang=\"ts\">\nimport type { PropType } from 'vue'\nimport { strFromU8, strToU8, zlibSync } from 'fflate'\nimport { de"
  },
  {
    "path": "demo/utils/EditOnGithubButton.vue",
    "chars": 1077,
    "preview": "<script lang=\"ts\">\nimport type { ButtonProps } from 'naive-ui'\nimport type { PropType } from 'vue'\nimport EditIcon from "
  },
  {
    "path": "demo/utils/EditOnGithubHeader.vue",
    "chars": 1321,
    "preview": "<script lang=\"ts\">\nimport { defineComponent } from 'vue'\nimport { i18n } from '../utils/composables'\nimport EditOnGithub"
  },
  {
    "path": "demo/utils/codesandbox.js",
    "chars": 1818,
    "preview": "import { getParameters } from 'codesandbox/lib/api/define'\n\nconst indexHtml = `<!DOCTYPE html>\n<html lang=\"en\">\n  <head>"
  },
  {
    "path": "demo/utils/composables.js",
    "chars": 966,
    "preview": "import { useBreakpoint, useMemo } from 'vooks'\nimport { inject, provide, reactive, toRef, watchEffect } from 'vue'\n\nexpo"
  },
  {
    "path": "demo/utils/composables.ts",
    "chars": 1143,
    "preview": "import { useBreakpoint, useMemo } from 'vooks'\nimport { inject, provide, reactive, toRef, watchEffect } from 'vue'\n\nexpo"
  },
  {
    "path": "demo/utils/github-url.js",
    "chars": 109,
    "preview": "export const repoUrl = 'https://github.com/tusen-ai/naive-ui'\nexport const blobUrl = `${repoUrl}/blob/main/`\n"
  },
  {
    "path": "demo/utils/playground.js",
    "chars": 558,
    "preview": "export const playgroundUrl = 'https://play-naive.pro-components.cn'\nexport const appCode = `<template>\n  <n-config-provi"
  },
  {
    "path": "demo/utils/route.js",
    "chars": 296,
    "preview": "export function findMenuValue(options, path) {\n  for (const option of options) {\n    if (option.children) {\n      const "
  },
  {
    "path": "design-notes/design-token-status.md",
    "chars": 305,
    "preview": "## Color\n\n--color --color-hover --color-pressed --color-active --color-active-hover --color-active-pressed --color-focus"
  },
  {
    "path": "design-notes/how-to-name-a-style-var.md",
    "chars": 919,
    "preview": "# How to Name a Style Var\n\nFor example, you have a button, which has `default` and `error` type. How will you name the b"
  },
  {
    "path": "design-notes/maintaining.md",
    "chars": 1236,
    "preview": "# 这个文档是为仓库维护者提供的\n\n## 关于 PR 合并\n\n1. docs、main 的 PR 都要 squash 合并。\n2. 分支间的合并使用最普通的 merge 合并(一定不要 squash,不要 rebase)\n\n## 发版流程\n"
  },
  {
    "path": "design-notes/think.md",
    "chars": 12237,
    "preview": "## git problem...\n\n我的锅...远程分支没设定好,推得哪个自己都不知道。\n\n## test 时候 vue v-model 产生的效果必须在 \\$nextTick() 之后才会产生,虽然它声称自己是同步的...\n\n我的锅,忘"
  },
  {
    "path": "design-notes/todo.md",
    "chars": 476,
    "preview": "# TODO\n\n## Urgent\n\n- message fullscreen\n- use resolve slot!!!\n- manual trigger style\n\n## DataTable\n\n## Form\n\n- (easy) me"
  },
  {
    "path": "eslint.config.mjs",
    "chars": 813,
    "preview": "import antfu from '@antfu/eslint-config'\n\nexport default antfu(\n  {\n    languageOptions: {\n      ecmaVersion: 'latest',\n"
  },
  {
    "path": "esm-test/index.spec.js",
    "chars": 378,
    "preview": "import { NDataTable } from '../dist/index.prod.mjs'\nimport { createApp } from 'vue'\n\n// eslint-disable-next-line n/no-ex"
  },
  {
    "path": "generic/AvatarGroup.vue",
    "chars": 574,
    "preview": "<script\n  lang=\"ts\"\n  setup\n  generic=\"T extends AvatarGroupOption = AvatarGroupOption\"\n>\nimport type {\n  AvatarGroupOpt"
  },
  {
    "path": "generic/index.ts",
    "chars": 61,
    "preview": "export { default as NGAvatarGroup } from './AvatarGroup.vue'\n"
  },
  {
    "path": "index.html",
    "chars": 1358,
    "preview": "<!doctype html>\n<html lang=\"en\">\n  <head>\n    <!-- Google tag (gtag.js) -->\n    <script\n      async\n      src=\"https://w"
  },
  {
    "path": "package.json",
    "chars": 6503,
    "preview": "{\n  \"name\": \"naive-ui\",\n  \"version\": \"2.44.1\",\n  \"packageManager\": \"pnpm@10.29.2\",\n  \"description\": \"A Vue 3 Component L"
  },
  {
    "path": "playground/collect-vars.js",
    "chars": 255,
    "preview": "const varRegex = /var\\(--([^)]+)\\)/g\n\nfunction getVars (input) {\n  console.log(\n    Array.from(\n      new Set(Array.from"
  },
  {
    "path": "playground/ssr/app.js",
    "chars": 360,
    "preview": "import { h, defineComponent, ref } from 'vue'\nimport { NButton } from 'naive-ui'\n\nconst App = defineComponent({\n  setup "
  },
  {
    "path": "playground/ssr/build.sh",
    "chars": 110,
    "preview": "webpack ./client.js --mode=development --output-filename=client.js\nwebpack --config ./webpack.config.server.js"
  },
  {
    "path": "playground/ssr/client.js",
    "chars": 86,
    "preview": "import { createApp } from 'vue'\nimport App from './app'\n\ncreateApp(App).mount('#app')\n"
  },
  {
    "path": "playground/ssr/pre-build.sh",
    "chars": 89,
    "preview": "# make sure cwd is the sh's dir\n\ncd ./../../\n\n./scripts/pre-build-site/pre-build-site.sh\n"
  },
  {
    "path": "playground/ssr/readme.md",
    "chars": 137,
    "preview": "You need to install `webpack` & `webpack-cli` globally.\n\n```\n./pre-build.sh\n./build.sh\n\nnode dist/server.js\n\n# browse lo"
  },
  {
    "path": "playground/ssr/server.js",
    "chars": 1073,
    "preview": "const fs = require('fs')\nconst path = require('path')\nconst express = require('express')\nconst { createSSRApp } = requir"
  },
  {
    "path": "playground/ssr/webpack.config.server.js",
    "chars": 244,
    "preview": "module.exports = {\n  mode: 'development',\n  externalsPresets: { node: true },\n  externals: [/^[@/a-z\\-0-9]+$/],\n  target"
  },
  {
    "path": "playground/testAsyncValidator.js",
    "chars": 275,
    "preview": "const Schema = require('async-validator')\n\nconst descriptor = {\n  value: {\n    type: 'string',\n    required: true,\n    v"
  },
  {
    "path": "playground/testColor.js",
    "chars": 281,
    "preview": "const tinyColor = require('tinycolor2')\n\nconst red = tinyColor('#ce347c').getBrightness()\nconst green = tinyColor('#00c0"
  },
  {
    "path": "playground/uploadServer.js",
    "chars": 698,
    "preview": "const express = require('express')\nconst multer = require('multer')\nconst cors = require('cors')\nconst path = require('p"
  },
  {
    "path": "postcss.config.js",
    "chars": 269,
    "preview": "// this file is used by vite, keep it here\nmodule.exports = {\n  plugins: [\n    require('autoprefixer'),\n    require('css"
  },
  {
    "path": "rollup.config.mjs",
    "chars": 2399,
    "preview": "import path from 'node:path'\nimport { fileURLToPath } from 'node:url'\nimport babel from '@rollup/plugin-babel'\nimport co"
  },
  {
    "path": "scripts/gen-component-declaration.ts",
    "chars": 1848,
    "preview": "import { existsSync } from 'node:fs'\nimport { readFile, writeFile } from 'node:fs/promises'\nimport path from 'node:path'"
  },
  {
    "path": "scripts/gen-css-vars-dts.ts",
    "chars": 449,
    "preview": "import { promises as fs } from 'node:fs'\nimport path from 'node:path'\nimport process from 'node:process'\nimport { walk }"
  },
  {
    "path": "scripts/gen-version.ts",
    "chars": 278,
    "preview": "import { writeFileSync } from 'node:fs'\nimport { resolve } from 'node:path'\nimport { cwd } from 'node:process'\nimport pa"
  },
  {
    "path": "scripts/md-to-vue.ts",
    "chars": 254,
    "preview": "import { argv } from 'node:process'\nimport { convertFilesByComponentName } from './utils/loader'\n\nasync function transla"
  },
  {
    "path": "scripts/post-build/complete-path.ts",
    "chars": 4331,
    "preview": "import path from 'node:path'\nimport process from 'node:process'\nimport * as babel from '@babel/core'\nimport glob from 'f"
  },
  {
    "path": "scripts/post-build/gen-web-types.ts",
    "chars": 10224,
    "preview": "import fs from 'node:fs'\nimport path from 'node:path'\nimport process, { argv } from 'node:process'\nimport { kebabCase } "
  },
  {
    "path": "scripts/post-build/index.ts",
    "chars": 682,
    "preview": "import { outDirs, replaceDefine, srcDir } from '../utils'\nimport { completePath } from './complete-path'\nimport { genWeb"
  },
  {
    "path": "scripts/post-build/terse-cssr.ts",
    "chars": 536,
    "preview": "import { promises as fs } from 'node:fs'\nimport { argv } from 'node:process'\nimport { terseCssr as terseCssrUtil } from "
  },
  {
    "path": "scripts/post-build-site/post-build-site.sh",
    "chars": 63,
    "preview": "cp site/index.html site/404.html\n\nrm -rf node_modules/naive-ui\n"
  },
  {
    "path": "scripts/pre-build/pre-cjs-build.ts",
    "chars": 146,
    "preview": "import { replaceDefine, srcDir } from '../utils'\n\n;\n\n(async () => {\n  await replaceDefine([srcDir], {\n    '\\'lodash-es\\'"
  },
  {
    "path": "scripts/pre-build-site/pre-build-site.sh",
    "chars": 263,
    "preview": "if ! [[ -x $(command -v pnpm) ]]; then\n  curl -f https://get.pnpm.io/v6.16.js | node - add --global pnpm@6\nfi\n\npnpm run "
  },
  {
    "path": "scripts/release-changelog.ts",
    "chars": 3349,
    "preview": "import fs from 'node:fs'\nimport path from 'node:path'\nimport { env } from 'node:process'\nimport url from 'node:url'\nimpo"
  },
  {
    "path": "scripts/utils/collect-vars.ts",
    "chars": 729,
    "preview": "const pattern = /var\\(([^)]+)\\)/g\nconst patternDetail = /var\\(([^)]+)\\)/\nconst commentPattern = /^( *)(\\*|(\\S\\S)|(\\S\\*))"
  },
  {
    "path": "scripts/utils/index.ts",
    "chars": 563,
    "preview": "import { promises as fs } from 'node:fs'\nimport { join, resolve } from 'node:path'\nimport process from 'node:process'\n\ne"
  },
  {
    "path": "scripts/utils/loader.ts",
    "chars": 4590,
    "preview": "import type { TokensList } from 'marked'\nimport path from 'node:path'\nimport process from 'node:process'\nimport fs from "
  },
  {
    "path": "scripts/utils/replace-define.ts",
    "chars": 729,
    "preview": "import { promises as fs } from 'node:fs'\nimport { walk } from '.'\n\nexport async function replaceDefine(\n  dirs: string[]"
  },
  {
    "path": "src/_internal/README.md",
    "chars": 57,
    "preview": "Themeable components:\n\n- selection\n- select-menu\n- clear\n"
  },
  {
    "path": "src/_internal/clear/index.ts",
    "chars": 38,
    "preview": "export { default } from './src/Clear'\n"
  },
  {
    "path": "src/_internal/clear/src/Clear.tsx",
    "chars": 1779,
    "preview": "import type { PropType } from 'vue'\nimport { defineComponent, h, toRef } from 'vue'\nimport { useStyle } from '../../../_"
  },
  {
    "path": "src/_internal/clear/src/styles/index.cssr.ts",
    "chars": 1137,
    "preview": "import { iconSwitchTransition } from '../../../../_styles/transitions/icon-switch.cssr'\nimport { c, cB, cE } from '../.."
  },
  {
    "path": "src/_internal/close/index.ts",
    "chars": 52,
    "preview": "export { default as NBaseClose } from './src/Close'\n"
  },
  {
    "path": "src/_internal/close/src/Close.tsx",
    "chars": 1787,
    "preview": "import type { PropType } from 'vue'\nimport { defineComponent, h, toRef } from 'vue'\nimport { useStyle } from '../../../_"
  },
  {
    "path": "src/_internal/close/src/styles/index.cssr.ts",
    "chars": 1690,
    "preview": "import { c, cB, cM, cNotM } from '../../../../_utils/cssr'\n\n// vars:\n// --n-close-border-radius\n// --n-close-color-hover"
  },
  {
    "path": "src/_internal/fade-in-expand-transition/index.ts",
    "chars": 55,
    "preview": "export { default } from './src/FadeInExpandTransition'\n"
  },
  {
    "path": "src/_internal/fade-in-expand-transition/src/FadeInExpandTransition.ts",
    "chars": 3000,
    "preview": "import type { PropType, TransitionProps } from 'vue'\nimport { defineComponent, h, Transition, TransitionGroup } from 'vu"
  },
  {
    "path": "src/_internal/focus-detector/index.tsx",
    "chars": 78,
    "preview": "import FocusDetector from './src/FocusDetector'\n\nexport default FocusDetector\n"
  },
  {
    "path": "src/_internal/focus-detector/src/FocusDetector.tsx",
    "chars": 433,
    "preview": "import type { PropType } from 'vue'\nimport { defineComponent, h } from 'vue'\n\nexport default defineComponent({\n  props: "
  },
  {
    "path": "src/_internal/icon/index.ts",
    "chars": 50,
    "preview": "export { default as NBaseIcon } from './src/Icon'\n"
  },
  {
    "path": "src/_internal/icon/src/Icon.tsx",
    "chars": 1137,
    "preview": "import type { PropType } from 'vue'\nimport { defineComponent, h, toRef } from 'vue'\nimport { useStyle } from '../../../_"
  },
  {
    "path": "src/_internal/icon/src/styles/index.cssr.ts",
    "chars": 281,
    "preview": "import { c, cB } from '../../../../_utils/cssr'\n\nexport default cB('base-icon', `\n  height: 1em;\n  width: 1em;\n  line-he"
  },
  {
    "path": "src/_internal/icon-switch-transition/index.ts",
    "chars": 53,
    "preview": "export { default } from './src/IconSwitchTransition'\n"
  },
  {
    "path": "src/_internal/icon-switch-transition/src/IconSwitchTransition.tsx",
    "chars": 369,
    "preview": "import { useIsMounted } from 'vooks'\nimport { defineComponent, h, Transition } from 'vue'\n\nexport default defineComponen"
  },
  {
    "path": "src/_internal/icons/Add.tsx",
    "chars": 486,
    "preview": "import { defineComponent, h } from 'vue'\n\nexport default defineComponent({\n  name: 'Add',\n  render() {\n    return (\n    "
  },
  {
    "path": "src/_internal/icons/ArrowBack.tsx",
    "chars": 493,
    "preview": "import { defineComponent, h } from 'vue'\n\nexport default defineComponent({\n  name: 'ArrowBack',\n  render() {\n    return "
  },
  {
    "path": "src/_internal/icons/ArrowDown.tsx",
    "chars": 838,
    "preview": "import { defineComponent, h } from 'vue'\n\nexport default defineComponent({\n  name: 'ArrowDown',\n  render() {\n    return "
  },
  {
    "path": "src/_internal/icons/ArrowUp.tsx",
    "chars": 515,
    "preview": "import { defineComponent, h } from 'vue'\n\nexport default defineComponent({\n  name: 'ArrowUp',\n  render() {\n    return (\n"
  },
  {
    "path": "src/_internal/icons/Attach.tsx",
    "chars": 1315,
    "preview": "import { h } from 'vue'\nimport { replaceable } from './replaceable'\n\nexport default replaceable('attach', () => (\n  <svg"
  },
  {
    "path": "src/_internal/icons/Backward.tsx",
    "chars": 610,
    "preview": "import { defineComponent, h } from 'vue'\n\nexport default defineComponent({\n  name: 'Backward',\n  render() {\n    return ("
  },
  {
    "path": "src/_internal/icons/Cancel.tsx",
    "chars": 1191,
    "preview": "import { h } from 'vue'\nimport { replaceable } from './replaceable'\n\nexport default replaceable('cancel', () => (\n  <svg"
  },
  {
    "path": "src/_internal/icons/Checkmark.tsx",
    "chars": 502,
    "preview": "import { defineComponent, h } from 'vue'\n\nexport default defineComponent({\n  name: 'Checkmark',\n  render() {\n    return "
  },
  {
    "path": "src/_internal/icons/ChevronDown.tsx",
    "chars": 614,
    "preview": "import { defineComponent, h } from 'vue'\n\nexport default defineComponent({\n  name: 'ChevronDown',\n  render() {\n    retur"
  },
  {
    "path": "src/_internal/icons/ChevronDownFilled.tsx",
    "chars": 616,
    "preview": "import { defineComponent, h } from 'vue'\n\nexport default defineComponent({\n  name: 'ChevronDownFilled',\n  render() {\n   "
  },
  {
    "path": "src/_internal/icons/ChevronLeft.tsx",
    "chars": 614,
    "preview": "import { defineComponent, h } from 'vue'\n\nexport default defineComponent({\n  name: 'ChevronLeft',\n  render() {\n    retur"
  },
  {
    "path": "src/_internal/icons/ChevronRight.tsx",
    "chars": 615,
    "preview": "import { defineComponent, h } from 'vue'\n\nexport default defineComponent({\n  name: 'ChevronRight',\n  render() {\n    retu"
  },
  {
    "path": "src/_internal/icons/Clear.tsx",
    "chars": 1525,
    "preview": "import { h } from 'vue'\nimport { replaceable } from './replaceable'\n\nexport default replaceable('clear', () => (\n  <svg "
  },
  {
    "path": "src/_internal/icons/Close.tsx",
    "chars": 1216,
    "preview": "import { h } from 'vue'\nimport { replaceable } from './replaceable'\n\nexport default replaceable('close', () => (\n  <svg\n"
  },
  {
    "path": "src/_internal/icons/Date.tsx",
    "chars": 857,
    "preview": "import { h } from 'vue'\nimport { replaceable } from './replaceable'\n\nexport default replaceable('date', () => (\n  <svg\n "
  },
  {
    "path": "src/_internal/icons/Download.tsx",
    "chars": 1320,
    "preview": "import { h } from 'vue'\nimport { replaceable } from './replaceable'\n\nexport default replaceable('download', () => (\n  <s"
  },
  {
    "path": "src/_internal/icons/Empty.tsx",
    "chars": 1695,
    "preview": "import { defineComponent, h } from 'vue'\n\nexport default defineComponent({\n  name: 'Empty',\n  render() {\n    return (\n  "
  },
  {
    "path": "src/_internal/icons/Error.tsx",
    "chars": 1577,
    "preview": "import { h } from 'vue'\nimport { replaceable } from './replaceable'\n\nexport default replaceable('error', () => (\n  <svg "
  }
]

// ... and 3359 more files (download for full content)

About this extraction

This page contains the full source code of the tusen-ai/naive-ui GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 3559 files (7.2 MB), approximately 2.1M tokens, and a symbol index with 2402 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!