├── .changeset
├── README.md
└── config.json
├── .github
├── ISSUE_TEMPLATE
│ ├── bug_report_form.yml
│ ├── config.yml
│ └── feature_request.md
└── workflows
│ ├── issues.yml
│ ├── node.js2.yml
│ ├── publish.yml
│ └── test.yml
├── .gitignore
├── .idea
├── .gitignore
├── jsLibraryMappings.xml
├── modules.xml
├── semi-design-vue.iml
├── vcs.xml
└── watcherTasks.xml
├── .npmrc.bak
├── .prettierrc.js
├── .storybook
├── main.ts
├── preview-head.html
└── preview.ts
├── LICENSE
├── README.md
├── docs
├── .vitepress
│ ├── config.mts
│ ├── mdPlugin
│ │ └── overview.ts
│ └── theme
│ │ ├── index.ts
│ │ └── layout
│ │ ├── InlineSvg.vue
│ │ ├── Layout.vue
│ │ ├── index.mts
│ │ ├── navItem.ts
│ │ └── navLink.tsx
├── ApiType.tsx
├── DesignToken.vue
├── LiveCode.vue
├── LiveCode2.vue
├── LiveCodeClient.vue
├── Notice.tsx
├── PureA.tsx
├── api-examples.md
├── images
│ ├── docIcons
│ │ ├── dark_mode.svg
│ │ ├── doc-a11y.svg
│ │ ├── doc-accordion.svg
│ │ ├── doc-accordion.vue
│ │ ├── doc-anchor.svg
│ │ ├── doc-audioplayer.svg
│ │ ├── doc-autocomplete.svg
│ │ ├── doc-avatar.svg
│ │ ├── doc-backtop.svg
│ │ ├── doc-badge.svg
│ │ ├── doc-banner.svg
│ │ ├── doc-breadcrumb.svg
│ │ ├── doc-button.svg
│ │ ├── doc-calendar.svg
│ │ ├── doc-card.svg
│ │ ├── doc-carousel.svg
│ │ ├── doc-cascader.svg
│ │ ├── doc-changelog.svg
│ │ ├── doc-chat.svg
│ │ ├── doc-checkbox.svg
│ │ ├── doc-code.svg
│ │ ├── doc-codehighlight.svg
│ │ ├── doc-codesandbox.svg
│ │ ├── doc-collapsible.svg
│ │ ├── doc-colorPlatteNew.svg
│ │ ├── doc-colors.svg
│ │ ├── doc-configprovider.svg
│ │ ├── doc-contentguidelines.svg
│ │ ├── doc-cropper.svg
│ │ ├── doc-darkmode.svg
│ │ ├── doc-datepicker.svg
│ │ ├── doc-descriptions.svg
│ │ ├── doc-divider.svg
│ │ ├── doc-dragmove.svg
│ │ ├── doc-dropdown.svg
│ │ ├── doc-empty.svg
│ │ ├── doc-faq.svg
│ │ ├── doc-figma.svg
│ │ ├── doc-form.svg
│ │ ├── doc-gettingstarted.svg
│ │ ├── doc-gettingstarted.vue
│ │ ├── doc-grid.svg
│ │ ├── doc-highlight.svg
│ │ ├── doc-i18n.svg
│ │ ├── doc-icons.svg
│ │ ├── doc-image.svg
│ │ ├── doc-input.svg
│ │ ├── doc-inputnumber.svg
│ │ ├── doc-intro.svg
│ │ ├── doc-intro.vue
│ │ ├── doc-jsonviewer.svg
│ │ ├── doc-language.svg
│ │ ├── doc-layout.svg
│ │ ├── doc-list.svg
│ │ ├── doc-lottie.svg
│ │ ├── doc-markdown.svg
│ │ ├── doc-migrate.svg
│ │ ├── doc-modal.svg
│ │ ├── doc-navigation.svg
│ │ ├── doc-notification.svg
│ │ ├── doc-overflowList.svg
│ │ ├── doc-overview.svg
│ │ ├── doc-pagination.svg
│ │ ├── doc-palette.svg
│ │ ├── doc-pincode.svg
│ │ ├── doc-popconfirm.svg
│ │ ├── doc-popover-1.svg
│ │ ├── doc-popover.svg
│ │ ├── doc-progress.svg
│ │ ├── doc-radio.svg
│ │ ├── doc-rating.svg
│ │ ├── doc-recycle.svg
│ │ ├── doc-scrolllist.svg
│ │ ├── doc-select.svg
│ │ ├── doc-semi-logo.svg
│ │ ├── doc-sidesheet.svg
│ │ ├── doc-skeleton.svg
│ │ ├── doc-slider.svg
│ │ ├── doc-space.svg
│ │ ├── doc-spin.svg
│ │ ├── doc-steps.svg
│ │ ├── doc-switch.svg
│ │ ├── doc-table.svg
│ │ ├── doc-tabs.svg
│ │ ├── doc-tag.svg
│ │ ├── doc-tagInput.svg
│ │ ├── doc-tailwind.svg
│ │ ├── doc-theme.svg
│ │ ├── doc-timeline.svg
│ │ ├── doc-timepicker.svg
│ │ ├── doc-toast.svg
│ │ ├── doc-token.svg
│ │ ├── doc-tooltip.svg
│ │ ├── doc-transfer.svg
│ │ ├── doc-tree.svg
│ │ ├── doc-treeselect.svg
│ │ ├── doc-typography.svg
│ │ ├── doc-updateV1.svg
│ │ ├── doc-updateV2.svg
│ │ ├── doc-upload.svg
│ │ ├── doc-userGuide.svg
│ │ ├── doc-vchart.svg
│ │ ├── doc-vector.svg
│ │ ├── doc-vscode.svg
│ │ ├── doc-webcomponents.svg
│ │ ├── index.js
│ │ ├── light_mode.svg
│ │ ├── search-design.svg
│ │ ├── search-form.svg
│ │ ├── search-icon.svg
│ │ ├── search-material.svg
│ │ ├── search-site.svg
│ │ ├── search-start.svg
│ │ ├── search-table.svg
│ │ ├── search-text.svg
│ │ ├── semi-design.svg
│ │ ├── semi-logo.svg
│ │ ├── semi_logo.svg
│ │ └── webcast_logo.svg
│ └── semi-icon.png
├── index.md
├── index.scss
├── markdown-examples.md
└── src
│ ├── index.md
│ ├── public
│ ├── BingSiteAuth.xml
│ ├── date-fns.js
│ ├── designToken.json
│ ├── es-module-shims.wasm.js
│ ├── font
│ │ ├── Inter-Bold.ttf
│ │ └── Inter-Regular.ttf
│ ├── lodash.js
│ ├── reset.css
│ ├── runtime-dom.esm-browser.js
│ ├── semiIconsLab
│ │ ├── favicon.ico
│ │ ├── semi-icons-vue.js
│ │ └── style.css
│ └── server-renderer.esm-browser.js
│ └── zh-CN
│ ├── basic
│ ├── divider
│ │ ├── demo
│ │ │ ├── DividerDemo0.vue
│ │ │ ├── DividerDemo1.vue
│ │ │ └── codes.ts
│ │ └── index.md
│ ├── grid
│ │ ├── demo
│ │ │ ├── Flex.vue
│ │ │ ├── FlexJustify.vue
│ │ │ ├── FlexOder.vue
│ │ │ ├── FlexReact.vue
│ │ │ ├── GridBase.vue
│ │ │ ├── GutterInterval.vue
│ │ │ └── Offset.vue
│ │ ├── index-en-US.md
│ │ └── index.md
│ ├── icon
│ │ └── index.md
│ ├── layout
│ │ ├── demo
│ │ │ ├── LeftNavSide.vue
│ │ │ ├── LeftSide.vue
│ │ │ ├── ReactLayout.vue
│ │ │ ├── RightSide.vue
│ │ │ ├── SimpleLeftSide.vue
│ │ │ ├── ThreeRows.vue
│ │ │ ├── TopLeftSide.vue
│ │ │ └── TopSide.vue
│ │ ├── index-en-US.md
│ │ └── index.md
│ ├── resizable
│ │ └── index.md
│ ├── space
│ │ ├── demo
│ │ │ ├── alignDemo.vue
│ │ │ ├── base.vue
│ │ │ ├── spacingDemo.vue
│ │ │ ├── verticalDemo.vue
│ │ │ └── wrapDemo.vue
│ │ ├── index-en-US.md
│ │ └── index.md
│ └── typography
│ │ ├── demo
│ │ ├── ParagraphDemo.vue
│ │ ├── base.vue
│ │ ├── linkDemo.vue
│ │ ├── numDemo.vue
│ │ └── textDemo.vue
│ │ ├── index-en-US.md
│ │ └── index.md
│ ├── feedback
│ ├── banner
│ │ └── index.md
│ ├── notification
│ │ └── index.md
│ ├── popconfirm
│ │ └── index.md
│ ├── progress
│ │ └── index.md
│ ├── skeleton
│ │ └── index.md
│ ├── spin
│ │ └── index.md
│ └── toast
│ │ └── index.md
│ ├── input
│ ├── autocomplete
│ │ ├── demo
│ │ │ ├── baseAutoComplete.tsx
│ │ │ ├── baseAutoComplete.vue
│ │ │ ├── disabledAutoComplete.vue
│ │ │ ├── diyItemAutoComplete.vue
│ │ │ ├── emptyAutoComplete.vue
│ │ │ ├── positionAutoComplete.vue
│ │ │ ├── remoteAutoComplete.vue
│ │ │ ├── sizeAutoComplete.vue
│ │ │ └── statusAutoComplete.vue
│ │ └── index.md
│ ├── button
│ │ ├── demo
│ │ │ ├── SplitButtonDemo.vue
│ │ │ └── base.vue
│ │ └── index.md
│ ├── cascader
│ │ └── index.md
│ ├── checkbox
│ │ └── index.md
│ ├── colorpicker
│ │ └── index.md
│ ├── content-guidelines
│ │ └── index.md
│ ├── datepicker
│ │ └── index.md
│ ├── form
│ │ └── index.md
│ ├── input
│ │ └── index.md
│ ├── inputnumber
│ │ └── index.md
│ ├── pincode
│ │ └── index.md
│ ├── popover
│ │ └── index.md
│ ├── radio
│ │ └── index.md
│ ├── rating
│ │ └── index.md
│ ├── select
│ │ └── index.md
│ ├── slider
│ │ └── index.md
│ ├── switch
│ │ └── index.md
│ ├── taginput
│ │ └── index.md
│ ├── timepicker
│ │ └── index.md
│ ├── transfer
│ │ └── index.md
│ ├── treeselect
│ │ └── index.md
│ └── upload
│ │ └── index.md
│ ├── navigation
│ ├── anchor
│ │ └── index.md
│ ├── backtop
│ │ └── index.md
│ ├── breadcrumb
│ │ └── index.md
│ ├── navigation
│ │ └── index.md
│ ├── pagination
│ │ └── index.md
│ ├── steps
│ │ └── index.md
│ ├── tabs
│ │ └── index.md
│ └── tree
│ │ └── index.md
│ ├── other
│ ├── configprovider
│ │ └── index.md
│ └── locale
│ │ └── index.md
│ ├── plus
│ ├── audioPlayer
│ │ └── index.md
│ ├── chat
│ │ └── index.md
│ ├── codehighlight
│ │ └── index.md
│ ├── dragMove
│ │ └── index.md
│ ├── hotkeys
│ │ └── index.md
│ ├── lottie
│ │ └── index.md
│ └── markdownrender
│ │ └── index.md
│ ├── show
│ ├── avatar
│ │ └── index.md
│ ├── badge
│ │ └── index.md
│ ├── calendar
│ │ └── index.md
│ ├── card
│ │ └── index.md
│ ├── carousel
│ │ └── index.md
│ ├── collapse
│ │ └── index.md
│ ├── collapsible
│ │ └── index.md
│ ├── cropper
│ │ └── index.md
│ ├── descriptions
│ │ ├── demo
│ │ │ ├── alignDesc.vue
│ │ │ ├── baseDesc.vue
│ │ │ ├── childrenDesc.vue
│ │ │ ├── horizontalDesc.vue
│ │ │ ├── rowDesc.vue
│ │ │ └── verticalDesc.vue
│ │ ├── index-en-US.md
│ │ └── index.md
│ ├── dropdown
│ │ └── index.md
│ ├── empty
│ │ └── index.md
│ ├── highlight
│ │ └── index.md
│ ├── image
│ │ └── index.md
│ ├── list
│ │ └── index.md
│ ├── modal
│ │ └── index.md
│ ├── overflowlist
│ │ └── index.md
│ ├── popover
│ │ └── index.md
│ ├── scrolllist
│ │ └── index.md
│ ├── sidesheet
│ │ └── index.md
│ ├── table
│ │ └── index.md
│ ├── tag
│ │ └── index.md
│ ├── timeline
│ │ └── index.md
│ ├── tooltip
│ │ └── index.md
│ └── userGuide
│ │ └── index.md
│ └── start
│ ├── accessibility
│ └── index.md
│ ├── changelog
│ └── index.md
│ ├── content-guidelines
│ └── index.md
│ ├── dark-mode
│ ├── demo
│ │ ├── darkDemo.tsx
│ │ └── test.tsx
│ └── index.md
│ ├── faq
│ └── index.md
│ ├── getting-started
│ └── index.md
│ ├── introduction
│ └── index.md
│ └── overview
│ └── index.md
├── env.d.ts
├── jest.config.ts
├── netlify.toml
├── package.json
├── packages
├── semi-animation-vue
│ ├── .gitignore
│ ├── CHANGELOG.md
│ ├── LICENSE
│ ├── README.md
│ ├── build.cjs
│ ├── index.html
│ ├── index.ts
│ ├── package.json
│ ├── public
│ │ └── favicon.ico
│ ├── src
│ │ ├── App.tsx
│ │ ├── __test__
│ │ │ ├── test.spec.ts
│ │ │ ├── test2.spec.ts
│ │ │ └── test3.spec.ts
│ │ ├── animation
│ │ │ ├── Animation.tsx
│ │ │ ├── KeyFrames.tsx
│ │ │ ├── StyledAnimation.tsx
│ │ │ ├── StyledTransition.tsx
│ │ │ ├── Transition.tsx
│ │ │ ├── index.ts
│ │ │ └── utils
│ │ │ │ ├── invokeFns.spec.ts
│ │ │ │ ├── invokeFns.ts
│ │ │ │ ├── noop.ts
│ │ │ │ ├── object.ts
│ │ │ │ └── string.ts
│ │ ├── assets
│ │ │ └── logo.png
│ │ ├── env.d.ts
│ │ ├── main.scss
│ │ ├── main.ts
│ │ └── tsconfig.esm.json
│ ├── tsconfig.esm.json
│ ├── tsconfig.json
│ └── vite.config.ts
├── semi-icons-lab-vue
│ ├── .gitignore
│ ├── CHANGELOG.md
│ ├── LICENSE
│ ├── README.md
│ ├── build.cjs
│ ├── getBabelConfig.cjs
│ ├── gulpfile.cjs
│ ├── index.html
│ ├── index.ts
│ ├── package.json
│ ├── public
│ │ └── favicon.ico
│ ├── scripts
│ │ ├── .prettierrc.js
│ │ ├── build-icon.cjs
│ │ └── compileLib.cjs
│ ├── src
│ │ ├── App.tsx
│ │ ├── __test__
│ │ │ ├── IconTest.tsx
│ │ │ ├── test.spec.ts
│ │ │ └── test2.spec.ts
│ │ ├── assets
│ │ │ └── logo.png
│ │ ├── doc-accordion.vue
│ │ ├── env.d.ts
│ │ ├── icons
│ │ │ ├── components
│ │ │ │ └── Icon.tsx
│ │ │ ├── env.ts
│ │ │ ├── icons
│ │ │ │ ├── IconAccessibility.tsx
│ │ │ │ ├── IconAnchor.tsx
│ │ │ │ ├── IconAutocomplete.tsx
│ │ │ │ ├── IconAvatar.tsx
│ │ │ │ ├── IconBackTop.tsx
│ │ │ │ ├── IconBadge.tsx
│ │ │ │ ├── IconBadgeStar.tsx
│ │ │ │ ├── IconBanner.tsx
│ │ │ │ ├── IconBreadcrumb.tsx
│ │ │ │ ├── IconButton.tsx
│ │ │ │ ├── IconCalendar.tsx
│ │ │ │ ├── IconCard.tsx
│ │ │ │ ├── IconCarousel.tsx
│ │ │ │ ├── IconCascader.tsx
│ │ │ │ ├── IconChangelog.tsx
│ │ │ │ ├── IconChart.tsx
│ │ │ │ ├── IconChat.tsx
│ │ │ │ ├── IconCheckbox.tsx
│ │ │ │ ├── IconCodeHighlight.tsx
│ │ │ │ ├── IconCollapse.tsx
│ │ │ │ ├── IconCollapsible.tsx
│ │ │ │ ├── IconColorPlatte.tsx
│ │ │ │ ├── IconColorPlatteNew.tsx
│ │ │ │ ├── IconColors.tsx
│ │ │ │ ├── IconConfig.tsx
│ │ │ │ ├── IconDarkMode.tsx
│ │ │ │ ├── IconDatePicker.tsx
│ │ │ │ ├── IconDescriptions.tsx
│ │ │ │ ├── IconDivider.tsx
│ │ │ │ ├── IconDropdown.tsx
│ │ │ │ ├── IconEmpty.tsx
│ │ │ │ ├── IconFaq.tsx
│ │ │ │ ├── IconForm.tsx
│ │ │ │ ├── IconGettingStarted.tsx
│ │ │ │ ├── IconGrid.tsx
│ │ │ │ ├── IconHeart.tsx
│ │ │ │ ├── IconHighlight.tsx
│ │ │ │ ├── IconImage.tsx
│ │ │ │ ├── IconInput.tsx
│ │ │ │ ├── IconInputNumber.tsx
│ │ │ │ ├── IconIntro.tsx
│ │ │ │ ├── IconJsonViewer.tsx
│ │ │ │ ├── IconLayout.tsx
│ │ │ │ ├── IconList.tsx
│ │ │ │ ├── IconLocaleProvider.tsx
│ │ │ │ ├── IconLottie.tsx
│ │ │ │ ├── IconMarkdown.tsx
│ │ │ │ ├── IconModal.tsx
│ │ │ │ ├── IconNavigation.tsx
│ │ │ │ ├── IconNotification.tsx
│ │ │ │ ├── IconOverflow.tsx
│ │ │ │ ├── IconPagination.tsx
│ │ │ │ ├── IconPincode.tsx
│ │ │ │ ├── IconPopconfirm.tsx
│ │ │ │ ├── IconPopover.tsx
│ │ │ │ ├── IconProgress.tsx
│ │ │ │ ├── IconRadio.tsx
│ │ │ │ ├── IconRating.tsx
│ │ │ │ ├── IconScrollList.tsx
│ │ │ │ ├── IconSelect.tsx
│ │ │ │ ├── IconSideSheet.tsx
│ │ │ │ ├── IconSkeleton.tsx
│ │ │ │ ├── IconSlider.tsx
│ │ │ │ ├── IconSpace.tsx
│ │ │ │ ├── IconSpin.tsx
│ │ │ │ ├── IconSteps.tsx
│ │ │ │ ├── IconSwitch.tsx
│ │ │ │ ├── IconTable.tsx
│ │ │ │ ├── IconTabs.tsx
│ │ │ │ ├── IconTag.tsx
│ │ │ │ ├── IconTagInput.tsx
│ │ │ │ ├── IconTimePicker.tsx
│ │ │ │ ├── IconTimeline.tsx
│ │ │ │ ├── IconToast.tsx
│ │ │ │ ├── IconToken.tsx
│ │ │ │ ├── IconTooltip.tsx
│ │ │ │ ├── IconTransfer.tsx
│ │ │ │ ├── IconTree.tsx
│ │ │ │ ├── IconTreeSelect.tsx
│ │ │ │ ├── IconTypography.tsx
│ │ │ │ ├── IconUpload.tsx
│ │ │ │ ├── IconVersionOne.tsx
│ │ │ │ ├── IconVersionTwo.tsx
│ │ │ │ ├── IconWebcomponents.tsx
│ │ │ │ └── IconWheelChair.tsx
│ │ │ ├── index.ts
│ │ │ ├── styles
│ │ │ │ ├── icons.scss
│ │ │ │ └── variables.scss
│ │ │ ├── svgs
│ │ │ │ ├── accessibility.svg
│ │ │ │ ├── anchor.svg
│ │ │ │ ├── autocomplete.svg
│ │ │ │ ├── avatar.svg
│ │ │ │ ├── back-top.svg
│ │ │ │ ├── badge-star.svg
│ │ │ │ ├── badge.svg
│ │ │ │ ├── banner.svg
│ │ │ │ ├── breadcrumb.svg
│ │ │ │ ├── button.svg
│ │ │ │ ├── calendar.svg
│ │ │ │ ├── card.svg
│ │ │ │ ├── carousel.svg
│ │ │ │ ├── cascader.svg
│ │ │ │ ├── changelog.svg
│ │ │ │ ├── chart.svg
│ │ │ │ ├── chat.svg
│ │ │ │ ├── checkbox.svg
│ │ │ │ ├── code-highlight.svg
│ │ │ │ ├── collapse.svg
│ │ │ │ ├── collapsible.svg
│ │ │ │ ├── color-platte-new.svg
│ │ │ │ ├── color-platte.svg
│ │ │ │ ├── colors.svg
│ │ │ │ ├── config.svg
│ │ │ │ ├── dark-mode.svg
│ │ │ │ ├── date-picker.svg
│ │ │ │ ├── descriptions.svg
│ │ │ │ ├── divider.svg
│ │ │ │ ├── dropdown.svg
│ │ │ │ ├── empty.svg
│ │ │ │ ├── faq.svg
│ │ │ │ ├── form.svg
│ │ │ │ ├── getting-started.svg
│ │ │ │ ├── grid.svg
│ │ │ │ ├── heart.svg
│ │ │ │ ├── highlight.svg
│ │ │ │ ├── image.svg
│ │ │ │ ├── input-number.svg
│ │ │ │ ├── input.svg
│ │ │ │ ├── intro.svg
│ │ │ │ ├── json-viewer.svg
│ │ │ │ ├── layout.svg
│ │ │ │ ├── list.svg
│ │ │ │ ├── locale-provider.svg
│ │ │ │ ├── lottie.svg
│ │ │ │ ├── markdown.svg
│ │ │ │ ├── meta.json
│ │ │ │ ├── modal.svg
│ │ │ │ ├── navigation.svg
│ │ │ │ ├── notification.svg
│ │ │ │ ├── overflow.svg
│ │ │ │ ├── pagination.svg
│ │ │ │ ├── pincode.svg
│ │ │ │ ├── popconfirm.svg
│ │ │ │ ├── popover.svg
│ │ │ │ ├── progress.svg
│ │ │ │ ├── radio.svg
│ │ │ │ ├── rating.svg
│ │ │ │ ├── scroll-list.svg
│ │ │ │ ├── select.svg
│ │ │ │ ├── side-sheet.svg
│ │ │ │ ├── skeleton.svg
│ │ │ │ ├── slider.svg
│ │ │ │ ├── space.svg
│ │ │ │ ├── spin.svg
│ │ │ │ ├── steps.svg
│ │ │ │ ├── switch.svg
│ │ │ │ ├── table.svg
│ │ │ │ ├── tabs.svg
│ │ │ │ ├── tag-input.svg
│ │ │ │ ├── tag.svg
│ │ │ │ ├── time-picker.svg
│ │ │ │ ├── timeline.svg
│ │ │ │ ├── toast.svg
│ │ │ │ ├── token.svg
│ │ │ │ ├── tooltip.svg
│ │ │ │ ├── transfer.svg
│ │ │ │ ├── tree-select.svg
│ │ │ │ ├── tree.svg
│ │ │ │ ├── typography.svg
│ │ │ │ ├── upload.svg
│ │ │ │ ├── version-one.svg
│ │ │ │ ├── version-two.svg
│ │ │ │ ├── webcomponents.svg
│ │ │ │ └── wheel-chair.svg
│ │ │ └── testIcon.spec.ts
│ │ ├── main.scss
│ │ ├── main.ts
│ │ └── tsconfig.esm.json
│ ├── tsconfig.esm.json
│ ├── tsconfig.json
│ └── vite.config.ts
├── semi-icons-vue
│ ├── .gitignore
│ ├── CHANGELOG.md
│ ├── LICENSE
│ ├── README.md
│ ├── build.cjs
│ ├── getBabelConfig.cjs
│ ├── gulpfile.cjs
│ ├── index.html
│ ├── index.ts
│ ├── package.json
│ ├── public
│ │ └── favicon.ico
│ ├── scripts
│ │ ├── .prettierrc.js
│ │ ├── build-icon.cjs
│ │ └── compileLib.cjs
│ ├── src
│ │ ├── App.tsx
│ │ ├── __test__
│ │ │ ├── IconTest.tsx
│ │ │ ├── test.spec.ts
│ │ │ └── test2.spec.ts
│ │ ├── assets
│ │ │ └── logo.png
│ │ ├── doc-accordion.vue
│ │ ├── env.d.ts
│ │ ├── icons
│ │ │ ├── components
│ │ │ │ ├── Icon.tsx
│ │ │ │ └── interface.ts
│ │ │ ├── env.ts
│ │ │ ├── icons
│ │ │ │ ├── IconAbsoluteStroked.tsx
│ │ │ │ ├── IconActivity.tsx
│ │ │ │ ├── IconAlarm.tsx
│ │ │ │ ├── IconAlertCircle.tsx
│ │ │ │ ├── IconAlertTriangle.tsx
│ │ │ │ ├── IconAlignBottom.tsx
│ │ │ │ ├── IconAlignCenter.tsx
│ │ │ │ ├── IconAlignCenterVertical.tsx
│ │ │ │ ├── IconAlignHCenterStroked.tsx
│ │ │ │ ├── IconAlignHLeftStroked.tsx
│ │ │ │ ├── IconAlignHRightStroked.tsx
│ │ │ │ ├── IconAlignJustify.tsx
│ │ │ │ ├── IconAlignLeft.tsx
│ │ │ │ ├── IconAlignRight.tsx
│ │ │ │ ├── IconAlignTop.tsx
│ │ │ │ ├── IconAlignVBotStroked.tsx
│ │ │ │ ├── IconAlignVBottomStroked.tsx
│ │ │ │ ├── IconAlignVCenterStroked.tsx
│ │ │ │ ├── IconAlignVTopStroked.tsx
│ │ │ │ ├── IconApartment.tsx
│ │ │ │ ├── IconAppCenter.tsx
│ │ │ │ ├── IconApps.tsx
│ │ │ │ ├── IconArchive.tsx
│ │ │ │ ├── IconArrowDown.tsx
│ │ │ │ ├── IconArrowDownLeft.tsx
│ │ │ │ ├── IconArrowDownRight.tsx
│ │ │ │ ├── IconArrowLeft.tsx
│ │ │ │ ├── IconArrowRight.tsx
│ │ │ │ ├── IconArrowUp.tsx
│ │ │ │ ├── IconArrowUpLeft.tsx
│ │ │ │ ├── IconArrowUpRight.tsx
│ │ │ │ ├── IconArticle.tsx
│ │ │ │ ├── IconAscend.tsx
│ │ │ │ ├── IconAt.tsx
│ │ │ │ ├── IconBackTop.tsx
│ │ │ │ ├── IconBackward.tsx
│ │ │ │ ├── IconBarChartHStroked.tsx
│ │ │ │ ├── IconBarChartVStroked.tsx
│ │ │ │ ├── IconBeaker.tsx
│ │ │ │ ├── IconBell.tsx
│ │ │ │ ├── IconBellStroked.tsx
│ │ │ │ ├── IconBold.tsx
│ │ │ │ ├── IconBolt.tsx
│ │ │ │ ├── IconBookH5Stroked.tsx
│ │ │ │ ├── IconBookOpenStroked.tsx
│ │ │ │ ├── IconBookStroked.tsx
│ │ │ │ ├── IconBookmark.tsx
│ │ │ │ ├── IconBookmarkAddStroked.tsx
│ │ │ │ ├── IconBookmarkDeleteStroked.tsx
│ │ │ │ ├── IconBottomCenterStroked.tsx
│ │ │ │ ├── IconBottomLeftStroked.tsx
│ │ │ │ ├── IconBottomRightStroked.tsx
│ │ │ │ ├── IconBox.tsx
│ │ │ │ ├── IconBrackets.tsx
│ │ │ │ ├── IconBranch.tsx
│ │ │ │ ├── IconBriefStroked.tsx
│ │ │ │ ├── IconBriefcase.tsx
│ │ │ │ ├── IconBulb.tsx
│ │ │ │ ├── IconButtonStroked.tsx
│ │ │ │ ├── IconBytedanceLogo.tsx
│ │ │ │ ├── IconCalendar.tsx
│ │ │ │ ├── IconCalendarClock.tsx
│ │ │ │ ├── IconCalendarStroked.tsx
│ │ │ │ ├── IconCamera.tsx
│ │ │ │ ├── IconCandlestickChartStroked.tsx
│ │ │ │ ├── IconCaretdown.tsx
│ │ │ │ ├── IconCaretup.tsx
│ │ │ │ ├── IconCarouselStroked.tsx
│ │ │ │ ├── IconCart.tsx
│ │ │ │ ├── IconCaseSensitive.tsx
│ │ │ │ ├── IconCenterLeftStroked.tsx
│ │ │ │ ├── IconCenterRightStroked.tsx
│ │ │ │ ├── IconChainStroked.tsx
│ │ │ │ ├── IconCheckChoiceStroked.tsx
│ │ │ │ ├── IconCheckCircleStroked.tsx
│ │ │ │ ├── IconCheckList.tsx
│ │ │ │ ├── IconCheckboxIndeterminate.tsx
│ │ │ │ ├── IconCheckboxTick.tsx
│ │ │ │ ├── IconChecklistStroked.tsx
│ │ │ │ ├── IconChevronDown.tsx
│ │ │ │ ├── IconChevronDownStroked.tsx
│ │ │ │ ├── IconChevronLeft.tsx
│ │ │ │ ├── IconChevronRight.tsx
│ │ │ │ ├── IconChevronRightStroked.tsx
│ │ │ │ ├── IconChevronUp.tsx
│ │ │ │ ├── IconChevronUpDown.tsx
│ │ │ │ ├── IconClear.tsx
│ │ │ │ ├── IconClock.tsx
│ │ │ │ ├── IconClose.tsx
│ │ │ │ ├── IconCloud.tsx
│ │ │ │ ├── IconCloudStroked.tsx
│ │ │ │ ├── IconCloudUploadStroked.tsx
│ │ │ │ ├── IconCode.tsx
│ │ │ │ ├── IconCodeStroked.tsx
│ │ │ │ ├── IconCoinMoneyStroked.tsx
│ │ │ │ ├── IconColorPalette.tsx
│ │ │ │ ├── IconColumnsStroked.tsx
│ │ │ │ ├── IconCommand.tsx
│ │ │ │ ├── IconComment.tsx
│ │ │ │ ├── IconCommentStroked.tsx
│ │ │ │ ├── IconComponent.tsx
│ │ │ │ ├── IconComponentPlaceholderStroked.tsx
│ │ │ │ ├── IconComponentStroked.tsx
│ │ │ │ ├── IconConfigStroked.tsx
│ │ │ │ ├── IconConnectionPoint1.tsx
│ │ │ │ ├── IconConnectionPoint2.tsx
│ │ │ │ ├── IconContrast.tsx
│ │ │ │ ├── IconCopy.tsx
│ │ │ │ ├── IconCopyAdd.tsx
│ │ │ │ ├── IconCopyStroked.tsx
│ │ │ │ ├── IconCornerRadiusStroked.tsx
│ │ │ │ ├── IconCreditCard.tsx
│ │ │ │ ├── IconCrop.tsx
│ │ │ │ ├── IconCrossCircleStroked.tsx
│ │ │ │ ├── IconCrossStroked.tsx
│ │ │ │ ├── IconCrown.tsx
│ │ │ │ ├── IconCustomerSupport.tsx
│ │ │ │ ├── IconCustomerSupportStroked.tsx
│ │ │ │ ├── IconCustomize.tsx
│ │ │ │ ├── IconDelete.tsx
│ │ │ │ ├── IconDeleteStroked.tsx
│ │ │ │ ├── IconDescend.tsx
│ │ │ │ ├── IconDescend2.tsx
│ │ │ │ ├── IconDesktop.tsx
│ │ │ │ ├── IconDisc.tsx
│ │ │ │ ├── IconDislikeThumb.tsx
│ │ │ │ ├── IconDivide.tsx
│ │ │ │ ├── IconDongchediLogo.tsx
│ │ │ │ ├── IconDoubleChevronLeft.tsx
│ │ │ │ ├── IconDoubleChevronRight.tsx
│ │ │ │ ├── IconDownCircleStroked.tsx
│ │ │ │ ├── IconDownload.tsx
│ │ │ │ ├── IconDownloadStroked.tsx
│ │ │ │ ├── IconDuration.tsx
│ │ │ │ ├── IconEdit.tsx
│ │ │ │ ├── IconEdit2Stroked.tsx
│ │ │ │ ├── IconEditStroked.tsx
│ │ │ │ ├── IconElementStroked.tsx
│ │ │ │ ├── IconEmoji.tsx
│ │ │ │ ├── IconExit.tsx
│ │ │ │ ├── IconExpand.tsx
│ │ │ │ ├── IconExport.tsx
│ │ │ │ ├── IconExternalOpen.tsx
│ │ │ │ ├── IconExternalOpenStroked.tsx
│ │ │ │ ├── IconEyeClosed.tsx
│ │ │ │ ├── IconEyeClosedSolid.tsx
│ │ │ │ ├── IconEyeOpened.tsx
│ │ │ │ ├── IconEyedropper.tsx
│ │ │ │ ├── IconFacebook.tsx
│ │ │ │ ├── IconFaceuLogo.tsx
│ │ │ │ ├── IconFastForward.tsx
│ │ │ │ ├── IconFastFoward.tsx
│ │ │ │ ├── IconFavoriteList.tsx
│ │ │ │ ├── IconFeishuLogo.tsx
│ │ │ │ ├── IconFemale.tsx
│ │ │ │ ├── IconFigma.tsx
│ │ │ │ ├── IconFile.tsx
│ │ │ │ ├── IconFillStroked.tsx
│ │ │ │ ├── IconFilledArrowDown.tsx
│ │ │ │ ├── IconFilledArrowUp.tsx
│ │ │ │ ├── IconFilpVertical.tsx
│ │ │ │ ├── IconFilter.tsx
│ │ │ │ ├── IconFingerLeftStroked.tsx
│ │ │ │ ├── IconFixedStroked.tsx
│ │ │ │ ├── IconFlag.tsx
│ │ │ │ ├── IconFlipHorizontal.tsx
│ │ │ │ ├── IconFlowChartStroked.tsx
│ │ │ │ ├── IconFolder.tsx
│ │ │ │ ├── IconFolderOpen.tsx
│ │ │ │ ├── IconFolderStroked.tsx
│ │ │ │ ├── IconFollowStroked.tsx
│ │ │ │ ├── IconFont.tsx
│ │ │ │ ├── IconFontColor.tsx
│ │ │ │ ├── IconForward.tsx
│ │ │ │ ├── IconForwardStroked.tsx
│ │ │ │ ├── IconFullScreenStroked.tsx
│ │ │ │ ├── IconGallery.tsx
│ │ │ │ ├── IconGift.tsx
│ │ │ │ ├── IconGiftStroked.tsx
│ │ │ │ ├── IconGit.tsx
│ │ │ │ ├── IconGithubLogo.tsx
│ │ │ │ ├── IconGitlabLogo.tsx
│ │ │ │ ├── IconGlobe.tsx
│ │ │ │ ├── IconGlobeStroke.tsx
│ │ │ │ ├── IconGridRectangle.tsx
│ │ │ │ ├── IconGridSquare.tsx
│ │ │ │ ├── IconGridStroked.tsx
│ │ │ │ ├── IconGridView.tsx
│ │ │ │ ├── IconGridView1.tsx
│ │ │ │ ├── IconH1.tsx
│ │ │ │ ├── IconH2.tsx
│ │ │ │ ├── IconH3.tsx
│ │ │ │ ├── IconH4.tsx
│ │ │ │ ├── IconH5.tsx
│ │ │ │ ├── IconH6.tsx
│ │ │ │ ├── IconH7.tsx
│ │ │ │ ├── IconH8.tsx
│ │ │ │ ├── IconH9.tsx
│ │ │ │ ├── IconHandle.tsx
│ │ │ │ ├── IconHash.tsx
│ │ │ │ ├── IconHeartStroked.tsx
│ │ │ │ ├── IconHelm.tsx
│ │ │ │ ├── IconHelpCircle.tsx
│ │ │ │ ├── IconHelpCircleStroked.tsx
│ │ │ │ ├── IconHistogram.tsx
│ │ │ │ ├── IconHistory.tsx
│ │ │ │ ├── IconHn.tsx
│ │ │ │ ├── IconHome.tsx
│ │ │ │ ├── IconHomeStroked.tsx
│ │ │ │ ├── IconHorn.tsx
│ │ │ │ ├── IconHourglass.tsx
│ │ │ │ ├── IconHourglassStroked.tsx
│ │ │ │ ├── IconIdCard.tsx
│ │ │ │ ├── IconIdentity.tsx
│ │ │ │ ├── IconImage.tsx
│ │ │ │ ├── IconImageStroked.tsx
│ │ │ │ ├── IconImport.tsx
│ │ │ │ ├── IconInbox.tsx
│ │ │ │ ├── IconIndenpentCornersStroked.tsx
│ │ │ │ ├── IconIndentLeft.tsx
│ │ │ │ ├── IconIndentRight.tsx
│ │ │ │ ├── IconIndependentCornersStroked.tsx
│ │ │ │ ├── IconInfoCircle.tsx
│ │ │ │ ├── IconInherit.tsx
│ │ │ │ ├── IconInheritStroked.tsx
│ │ │ │ ├── IconInnerSectionStroked.tsx
│ │ │ │ ├── IconInstagram.tsx
│ │ │ │ ├── IconInteractiveStroked.tsx
│ │ │ │ ├── IconInviteStroked.tsx
│ │ │ │ ├── IconIssueStroked.tsx
│ │ │ │ ├── IconItalic.tsx
│ │ │ │ ├── IconJianying.tsx
│ │ │ │ ├── IconKanban.tsx
│ │ │ │ ├── IconKey.tsx
│ │ │ │ ├── IconKeyStroked.tsx
│ │ │ │ ├── IconLanguage.tsx
│ │ │ │ ├── IconLayers.tsx
│ │ │ │ ├── IconLeftCircleStroked.tsx
│ │ │ │ ├── IconLightningStroked.tsx
│ │ │ │ ├── IconLikeHeart.tsx
│ │ │ │ ├── IconLikeThumb.tsx
│ │ │ │ ├── IconLineChartStroked.tsx
│ │ │ │ ├── IconLineHeight.tsx
│ │ │ │ ├── IconLink.tsx
│ │ │ │ ├── IconList.tsx
│ │ │ │ ├── IconListView.tsx
│ │ │ │ ├── IconLive.tsx
│ │ │ │ ├── IconLoading.tsx
│ │ │ │ ├── IconLock.tsx
│ │ │ │ ├── IconLockStroked.tsx
│ │ │ │ ├── IconLoopTextStroked.tsx
│ │ │ │ ├── IconMail.tsx
│ │ │ │ ├── IconMailStroked.tsx
│ │ │ │ ├── IconMailStroked1.tsx
│ │ │ │ ├── IconMale.tsx
│ │ │ │ ├── IconMapPin.tsx
│ │ │ │ ├── IconMapPinStroked.tsx
│ │ │ │ ├── IconMarginLeftStroked.tsx
│ │ │ │ ├── IconMarginStroked.tsx
│ │ │ │ ├── IconMark.tsx
│ │ │ │ ├── IconMaximize.tsx
│ │ │ │ ├── IconMember.tsx
│ │ │ │ ├── IconMenu.tsx
│ │ │ │ ├── IconMicrophone.tsx
│ │ │ │ ├── IconMicrophoneOff.tsx
│ │ │ │ ├── IconMinimize.tsx
│ │ │ │ ├── IconMinus.tsx
│ │ │ │ ├── IconMinusCircle.tsx
│ │ │ │ ├── IconMinusCircleStroked.tsx
│ │ │ │ ├── IconMinusStroked.tsx
│ │ │ │ ├── IconModalStroked.tsx
│ │ │ │ ├── IconMoneyExchangeStroked.tsx
│ │ │ │ ├── IconMonitorStroked.tsx
│ │ │ │ ├── IconMoon.tsx
│ │ │ │ ├── IconMore.tsx
│ │ │ │ ├── IconMoreStroked.tsx
│ │ │ │ ├── IconMusic.tsx
│ │ │ │ ├── IconMusicNoteStroked.tsx
│ │ │ │ ├── IconMute.tsx
│ │ │ │ ├── IconNineGridStroked.tsx
│ │ │ │ ├── IconNoteMoneyStroked.tsx
│ │ │ │ ├── IconOption.tsx
│ │ │ │ ├── IconOrderedList.tsx
│ │ │ │ ├── IconOrderedListStroked.tsx
│ │ │ │ ├── IconPaperclip.tsx
│ │ │ │ ├── IconPause.tsx
│ │ │ │ ├── IconPercentage.tsx
│ │ │ │ ├── IconPhone.tsx
│ │ │ │ ├── IconPhoneStroke.tsx
│ │ │ │ ├── IconPieChart2Stroked.tsx
│ │ │ │ ├── IconPieChartStroked.tsx
│ │ │ │ ├── IconPiechartH5Stroked.tsx
│ │ │ │ ├── IconPipixiaLogo.tsx
│ │ │ │ ├── IconPlay.tsx
│ │ │ │ ├── IconPlayCircle.tsx
│ │ │ │ ├── IconPlus.tsx
│ │ │ │ ├── IconPlusCircle.tsx
│ │ │ │ ├── IconPlusCircleStroked.tsx
│ │ │ │ ├── IconPlusStroked.tsx
│ │ │ │ ├── IconPriceTag.tsx
│ │ │ │ ├── IconPrint.tsx
│ │ │ │ ├── IconPrizeStroked.tsx
│ │ │ │ ├── IconPulse.tsx
│ │ │ │ ├── IconPuzzle.tsx
│ │ │ │ ├── IconQingyan.tsx
│ │ │ │ ├── IconQrCode.tsx
│ │ │ │ ├── IconQuit.tsx
│ │ │ │ ├── IconQuote.tsx
│ │ │ │ ├── IconRadio.tsx
│ │ │ │ ├── IconRankingCardStroked.tsx
│ │ │ │ ├── IconRealSizeStroked.tsx
│ │ │ │ ├── IconRedo.tsx
│ │ │ │ ├── IconRedoStroked.tsx
│ │ │ │ ├── IconRefresh.tsx
│ │ │ │ ├── IconRefresh2.tsx
│ │ │ │ ├── IconRegExp.tsx
│ │ │ │ ├── IconReply.tsx
│ │ │ │ ├── IconReplyStroked.tsx
│ │ │ │ ├── IconResso.tsx
│ │ │ │ ├── IconRestart.tsx
│ │ │ │ ├── IconRingChartStroked.tsx
│ │ │ │ ├── IconRotate.tsx
│ │ │ │ ├── IconRotationStroked.tsx
│ │ │ │ ├── IconRoute.tsx
│ │ │ │ ├── IconRowsStroked.tsx
│ │ │ │ ├── IconSafe.tsx
│ │ │ │ ├── IconSave.tsx
│ │ │ │ ├── IconSaveStroked.tsx
│ │ │ │ ├── IconScan.tsx
│ │ │ │ ├── IconScissors.tsx
│ │ │ │ ├── IconSearch.tsx
│ │ │ │ ├── IconSearchStroked.tsx
│ │ │ │ ├── IconSectionStroked.tsx
│ │ │ │ ├── IconSemiLogo.tsx
│ │ │ │ ├── IconSend.tsx
│ │ │ │ ├── IconSendMsgStroked.tsx
│ │ │ │ ├── IconSendStroked.tsx
│ │ │ │ ├── IconServer.tsx
│ │ │ │ ├── IconServerStroked.tsx
│ │ │ │ ├── IconSetting.tsx
│ │ │ │ ├── IconSettingStroked.tsx
│ │ │ │ ├── IconShareMoneyStroked.tsx
│ │ │ │ ├── IconShareStroked.tsx
│ │ │ │ ├── IconShield.tsx
│ │ │ │ ├── IconShieldStroked.tsx
│ │ │ │ ├── IconShift.tsx
│ │ │ │ ├── IconShoppingBag.tsx
│ │ │ │ ├── IconShrink.tsx
│ │ │ │ ├── IconShrinkScreenStroked.tsx
│ │ │ │ ├── IconSidebar.tsx
│ │ │ │ ├── IconSignal.tsx
│ │ │ │ ├── IconSimilarity.tsx
│ │ │ │ ├── IconSmallTriangleDown.tsx
│ │ │ │ ├── IconSmallTriangleLeft.tsx
│ │ │ │ ├── IconSmallTriangleRight.tsx
│ │ │ │ ├── IconSmallTriangleTop.tsx
│ │ │ │ ├── IconSmartphoneCheckStroked.tsx
│ │ │ │ ├── IconSmartphoneStroked.tsx
│ │ │ │ ├── IconSong.tsx
│ │ │ │ ├── IconSonicStroked.tsx
│ │ │ │ ├── IconSort.tsx
│ │ │ │ ├── IconSortStroked.tsx
│ │ │ │ ├── IconSourceControl.tsx
│ │ │ │ ├── IconSpin.tsx
│ │ │ │ ├── IconStackBarChartStroked.tsx
│ │ │ │ ├── IconStar.tsx
│ │ │ │ ├── IconStarStroked.tsx
│ │ │ │ ├── IconStop.tsx
│ │ │ │ ├── IconStopwatchStroked.tsx
│ │ │ │ ├── IconStoryStroked.tsx
│ │ │ │ ├── IconStrikeThrough.tsx
│ │ │ │ ├── IconSun.tsx
│ │ │ │ ├── IconSync.tsx
│ │ │ │ ├── IconTabArrowStroked.tsx
│ │ │ │ ├── IconTabsStroked.tsx
│ │ │ │ ├── IconTaskMoneyStroked.tsx
│ │ │ │ ├── IconTemplate.tsx
│ │ │ │ ├── IconTemplateStroked.tsx
│ │ │ │ ├── IconTerminal.tsx
│ │ │ │ ├── IconTestScoreStroked.tsx
│ │ │ │ ├── IconText.tsx
│ │ │ │ ├── IconTextRectangle.tsx
│ │ │ │ ├── IconTextStroked.tsx
│ │ │ │ ├── IconThumbUpStroked.tsx
│ │ │ │ ├── IconTick.tsx
│ │ │ │ ├── IconTickCircle.tsx
│ │ │ │ ├── IconTicketCodeExchangeStroked.tsx
│ │ │ │ ├── IconTicketCodeStroked.tsx
│ │ │ │ ├── IconTiktokLogo.tsx
│ │ │ │ ├── IconTop.tsx
│ │ │ │ ├── IconTopCenterStroked.tsx
│ │ │ │ ├── IconTopLeftStroked.tsx
│ │ │ │ ├── IconTopRightStroked.tsx
│ │ │ │ ├── IconTopbuzzLogo.tsx
│ │ │ │ ├── IconToutiaoLogo.tsx
│ │ │ │ ├── IconTransparentStroked.tsx
│ │ │ │ ├── IconTreeTriangleDown.tsx
│ │ │ │ ├── IconTreeTriangleRight.tsx
│ │ │ │ ├── IconTriangleArrow.tsx
│ │ │ │ ├── IconTriangleArrowVertical.tsx
│ │ │ │ ├── IconTriangleDown.tsx
│ │ │ │ ├── IconTriangleUp.tsx
│ │ │ │ ├── IconTrueFalseStroked.tsx
│ │ │ │ ├── IconTvCheckedStroked.tsx
│ │ │ │ ├── IconTwitter.tsx
│ │ │ │ ├── IconTypograph.tsx
│ │ │ │ ├── IconUnChainStroked.tsx
│ │ │ │ ├── IconUnderline.tsx
│ │ │ │ ├── IconUndo.tsx
│ │ │ │ ├── IconUnlink.tsx
│ │ │ │ ├── IconUnlock.tsx
│ │ │ │ ├── IconUnlockStroked.tsx
│ │ │ │ ├── IconUpload.tsx
│ │ │ │ ├── IconUploadError.tsx
│ │ │ │ ├── IconUser.tsx
│ │ │ │ ├── IconUserAdd.tsx
│ │ │ │ ├── IconUserCardPhone.tsx
│ │ │ │ ├── IconUserCardVideo.tsx
│ │ │ │ ├── IconUserCircle.tsx
│ │ │ │ ├── IconUserCircleStroked.tsx
│ │ │ │ ├── IconUserGroup.tsx
│ │ │ │ ├── IconUserListStroked.tsx
│ │ │ │ ├── IconUserSetting.tsx
│ │ │ │ ├── IconUserStroked.tsx
│ │ │ │ ├── IconVennChartStroked.tsx
│ │ │ │ ├── IconVerify.tsx
│ │ │ │ ├── IconVersionStroked.tsx
│ │ │ │ ├── IconVideo.tsx
│ │ │ │ ├── IconVideoDouyinStroked.tsx
│ │ │ │ ├── IconVideoListStroked.tsx
│ │ │ │ ├── IconVideoStroked.tsx
│ │ │ │ ├── IconVideoUrlStroked.tsx
│ │ │ │ ├── IconVigoLogo.tsx
│ │ │ │ ├── IconVolume1.tsx
│ │ │ │ ├── IconVolume2.tsx
│ │ │ │ ├── IconVolumnSilent.tsx
│ │ │ │ ├── IconVoteStroked.tsx
│ │ │ │ ├── IconVoteVideoStroked.tsx
│ │ │ │ ├── IconWeibo.tsx
│ │ │ │ ├── IconWholeWord.tsx
│ │ │ │ ├── IconWifi.tsx
│ │ │ │ ├── IconWindowAdaptionStroked.tsx
│ │ │ │ ├── IconWrench.tsx
│ │ │ │ ├── IconXiguaLogo.tsx
│ │ │ │ └── IconYoutube.tsx
│ │ │ ├── index.ts
│ │ │ ├── styles
│ │ │ │ ├── icons.scss
│ │ │ │ └── variables.scss
│ │ │ ├── svgs
│ │ │ │ ├── absolute_stroked.svg
│ │ │ │ ├── activity.svg
│ │ │ │ ├── alarm.svg
│ │ │ │ ├── alert_circle.svg
│ │ │ │ ├── alert_triangle.svg
│ │ │ │ ├── align_bottom.svg
│ │ │ │ ├── align_center.svg
│ │ │ │ ├── align_center_vertical.svg
│ │ │ │ ├── align_h_center_stroked.svg
│ │ │ │ ├── align_h_left_stroked.svg
│ │ │ │ ├── align_h_right_stroked.svg
│ │ │ │ ├── align_justify.svg
│ │ │ │ ├── align_left.svg
│ │ │ │ ├── align_right.svg
│ │ │ │ ├── align_top.svg
│ │ │ │ ├── align_v_bot_stroked.svg
│ │ │ │ ├── align_v_bottom_stroked.svg
│ │ │ │ ├── align_v_center_stroked.svg
│ │ │ │ ├── align_v_top_stroked.svg
│ │ │ │ ├── apartment.svg
│ │ │ │ ├── app_center.svg
│ │ │ │ ├── apps.svg
│ │ │ │ ├── archive.svg
│ │ │ │ ├── arrow_down.svg
│ │ │ │ ├── arrow_down_left.svg
│ │ │ │ ├── arrow_down_right.svg
│ │ │ │ ├── arrow_left.svg
│ │ │ │ ├── arrow_right.svg
│ │ │ │ ├── arrow_up.svg
│ │ │ │ ├── arrow_up_left.svg
│ │ │ │ ├── arrow_up_right.svg
│ │ │ │ ├── article.svg
│ │ │ │ ├── ascend.svg
│ │ │ │ ├── at.svg
│ │ │ │ ├── back_top.svg
│ │ │ │ ├── backward.svg
│ │ │ │ ├── bar_chart_h_stroked.svg
│ │ │ │ ├── bar_chart_v_stroked.svg
│ │ │ │ ├── beaker.svg
│ │ │ │ ├── bell.svg
│ │ │ │ ├── bell_stroked.svg
│ │ │ │ ├── bold.svg
│ │ │ │ ├── bolt.svg
│ │ │ │ ├── book_h5_stroked.svg
│ │ │ │ ├── book_open_stroked.svg
│ │ │ │ ├── book_stroked.svg
│ │ │ │ ├── bookmark.svg
│ │ │ │ ├── bookmark_add_stroked.svg
│ │ │ │ ├── bookmark_delete_stroked.svg
│ │ │ │ ├── bottom_center_stroked.svg
│ │ │ │ ├── bottom_left_stroked.svg
│ │ │ │ ├── bottom_right_stroked.svg
│ │ │ │ ├── box.svg
│ │ │ │ ├── brackets.svg
│ │ │ │ ├── branch.svg
│ │ │ │ ├── brief_stroked.svg
│ │ │ │ ├── briefcase.svg
│ │ │ │ ├── bulb.svg
│ │ │ │ ├── button_stroked.svg
│ │ │ │ ├── bytedance_logo.svg
│ │ │ │ ├── calendar.svg
│ │ │ │ ├── calendar_clock.svg
│ │ │ │ ├── calendar_stroked.svg
│ │ │ │ ├── camera.svg
│ │ │ │ ├── candlestick_chart_stroked.svg
│ │ │ │ ├── caretdown.svg
│ │ │ │ ├── caretup.svg
│ │ │ │ ├── carousel_stroked.svg
│ │ │ │ ├── cart.svg
│ │ │ │ ├── case_sensitive.svg
│ │ │ │ ├── center_left_stroked.svg
│ │ │ │ ├── center_right_stroked.svg
│ │ │ │ ├── chain_stroked.svg
│ │ │ │ ├── check_choice_stroked.svg
│ │ │ │ ├── check_circle_stroked.svg
│ │ │ │ ├── check_list.svg
│ │ │ │ ├── checkbox_indeterminate.svg
│ │ │ │ ├── checkbox_tick.svg
│ │ │ │ ├── checklist_stroked.svg
│ │ │ │ ├── chevron_down.svg
│ │ │ │ ├── chevron_down_stroked.svg
│ │ │ │ ├── chevron_left.svg
│ │ │ │ ├── chevron_right.svg
│ │ │ │ ├── chevron_right_stroked.svg
│ │ │ │ ├── chevron_up.svg
│ │ │ │ ├── chevron_up_down.svg
│ │ │ │ ├── clear.svg
│ │ │ │ ├── clock.svg
│ │ │ │ ├── close.svg
│ │ │ │ ├── cloud.svg
│ │ │ │ ├── cloud_stroked.svg
│ │ │ │ ├── cloud_upload_stroked.svg
│ │ │ │ ├── code.svg
│ │ │ │ ├── code_stroked.svg
│ │ │ │ ├── coin_money_stroked.svg
│ │ │ │ ├── color_palette.svg
│ │ │ │ ├── columns_stroked.svg
│ │ │ │ ├── command.svg
│ │ │ │ ├── comment.svg
│ │ │ │ ├── comment_stroked.svg
│ │ │ │ ├── component.svg
│ │ │ │ ├── component_placeholder_stroked.svg
│ │ │ │ ├── component_stroked.svg
│ │ │ │ ├── config_stroked.svg
│ │ │ │ ├── connection_point_1.svg
│ │ │ │ ├── connection_point_2.svg
│ │ │ │ ├── contrast.svg
│ │ │ │ ├── copy.svg
│ │ │ │ ├── copy_add.svg
│ │ │ │ ├── copy_stroked.svg
│ │ │ │ ├── corner_radius_stroked.svg
│ │ │ │ ├── credit_card.svg
│ │ │ │ ├── crop.svg
│ │ │ │ ├── cross_circle_stroked.svg
│ │ │ │ ├── cross_stroked.svg
│ │ │ │ ├── crown.svg
│ │ │ │ ├── customer_support.svg
│ │ │ │ ├── customer_support_stroked.svg
│ │ │ │ ├── customize.svg
│ │ │ │ ├── delete.svg
│ │ │ │ ├── delete_stroked.svg
│ │ │ │ ├── descend.svg
│ │ │ │ ├── descend2.svg
│ │ │ │ ├── desktop.svg
│ │ │ │ ├── disc.svg
│ │ │ │ ├── dislike_thumb.svg
│ │ │ │ ├── divide.svg
│ │ │ │ ├── dongchedi_logo.svg
│ │ │ │ ├── double_chevron_left.svg
│ │ │ │ ├── double_chevron_right.svg
│ │ │ │ ├── down_circle_stroked.svg
│ │ │ │ ├── download.svg
│ │ │ │ ├── download_stroked.svg
│ │ │ │ ├── duration.svg
│ │ │ │ ├── edit.svg
│ │ │ │ ├── edit_2_stroked.svg
│ │ │ │ ├── edit_stroked.svg
│ │ │ │ ├── element_stroked.svg
│ │ │ │ ├── emoji.svg
│ │ │ │ ├── exit.svg
│ │ │ │ ├── expand.svg
│ │ │ │ ├── export.svg
│ │ │ │ ├── external_open.svg
│ │ │ │ ├── external_open_stroked.svg
│ │ │ │ ├── eye_closed.svg
│ │ │ │ ├── eye_closed_solid.svg
│ │ │ │ ├── eye_opened.svg
│ │ │ │ ├── eyedropper.svg
│ │ │ │ ├── facebook.svg
│ │ │ │ ├── faceu_logo.svg
│ │ │ │ ├── fast_forward.svg
│ │ │ │ ├── fast_foward.svg
│ │ │ │ ├── favorite_list.svg
│ │ │ │ ├── feishu_logo.svg
│ │ │ │ ├── female.svg
│ │ │ │ ├── figma.svg
│ │ │ │ ├── file.svg
│ │ │ │ ├── fill_stroked.svg
│ │ │ │ ├── filled_arrow_down.svg
│ │ │ │ ├── filled_arrow_up.svg
│ │ │ │ ├── filp_vertical.svg
│ │ │ │ ├── filter.svg
│ │ │ │ ├── finger_left_stroked.svg
│ │ │ │ ├── fixed_stroked.svg
│ │ │ │ ├── flag.svg
│ │ │ │ ├── flip_horizontal.svg
│ │ │ │ ├── flow_chart_stroked.svg
│ │ │ │ ├── folder.svg
│ │ │ │ ├── folder_open.svg
│ │ │ │ ├── folder_stroked.svg
│ │ │ │ ├── follow_stroked.svg
│ │ │ │ ├── font.svg
│ │ │ │ ├── font_color.svg
│ │ │ │ ├── forward.svg
│ │ │ │ ├── forward_stroked.svg
│ │ │ │ ├── full_screen_stroked.svg
│ │ │ │ ├── gallery.svg
│ │ │ │ ├── gift.svg
│ │ │ │ ├── gift_stroked.svg
│ │ │ │ ├── git.svg
│ │ │ │ ├── github_logo.svg
│ │ │ │ ├── gitlab_logo.svg
│ │ │ │ ├── globe.svg
│ │ │ │ ├── globe_stroke.svg
│ │ │ │ ├── grid-rectangle.svg
│ │ │ │ ├── grid-square.svg
│ │ │ │ ├── grid_stroked.svg
│ │ │ │ ├── grid_view.svg
│ │ │ │ ├── grid_view1.svg
│ │ │ │ ├── h1.svg
│ │ │ │ ├── h2.svg
│ │ │ │ ├── h3.svg
│ │ │ │ ├── h4.svg
│ │ │ │ ├── h5.svg
│ │ │ │ ├── h6.svg
│ │ │ │ ├── h7.svg
│ │ │ │ ├── h8.svg
│ │ │ │ ├── h9.svg
│ │ │ │ ├── handle.svg
│ │ │ │ ├── hash.svg
│ │ │ │ ├── heart_stroked.svg
│ │ │ │ ├── helm.svg
│ │ │ │ ├── help_circle.svg
│ │ │ │ ├── help_circle_stroked.svg
│ │ │ │ ├── histogram.svg
│ │ │ │ ├── history.svg
│ │ │ │ ├── hn.svg
│ │ │ │ ├── home.svg
│ │ │ │ ├── home_stroked.svg
│ │ │ │ ├── horn.svg
│ │ │ │ ├── hourglass.svg
│ │ │ │ ├── hourglass_stroked.svg
│ │ │ │ ├── id_card.svg
│ │ │ │ ├── identity.svg
│ │ │ │ ├── image.svg
│ │ │ │ ├── image_stroked.svg
│ │ │ │ ├── import.svg
│ │ │ │ ├── inbox.svg
│ │ │ │ ├── indenpent_corners_stroked.svg
│ │ │ │ ├── indent_left.svg
│ │ │ │ ├── indent_right.svg
│ │ │ │ ├── independent_corners_stroked.svg
│ │ │ │ ├── info_circle.svg
│ │ │ │ ├── inherit.svg
│ │ │ │ ├── inherit_stroked.svg
│ │ │ │ ├── inner_section_stroked.svg
│ │ │ │ ├── instagram.svg
│ │ │ │ ├── interactive_stroked.svg
│ │ │ │ ├── invite_stroked.svg
│ │ │ │ ├── issue_stroked.svg
│ │ │ │ ├── italic.svg
│ │ │ │ ├── jianying.svg
│ │ │ │ ├── kanban.svg
│ │ │ │ ├── key.svg
│ │ │ │ ├── key_stroked.svg
│ │ │ │ ├── language.svg
│ │ │ │ ├── layers.svg
│ │ │ │ ├── left_circle_stroked.svg
│ │ │ │ ├── lightning_stroked.svg
│ │ │ │ ├── like_heart.svg
│ │ │ │ ├── like_thumb.svg
│ │ │ │ ├── line_chart_stroked.svg
│ │ │ │ ├── line_height.svg
│ │ │ │ ├── link.svg
│ │ │ │ ├── list.svg
│ │ │ │ ├── list_view.svg
│ │ │ │ ├── live.svg
│ │ │ │ ├── loading.svg
│ │ │ │ ├── lock.svg
│ │ │ │ ├── lock_stroked.svg
│ │ │ │ ├── loop_text_stroked.svg
│ │ │ │ ├── mail.svg
│ │ │ │ ├── mail_stroked.svg
│ │ │ │ ├── mail_stroked_1.svg
│ │ │ │ ├── male.svg
│ │ │ │ ├── map_pin.svg
│ │ │ │ ├── map_pin_stroked.svg
│ │ │ │ ├── margin_left_stroked.svg
│ │ │ │ ├── margin_stroked.svg
│ │ │ │ ├── mark.svg
│ │ │ │ ├── maximize.svg
│ │ │ │ ├── member.svg
│ │ │ │ ├── menu.svg
│ │ │ │ ├── meta.json
│ │ │ │ ├── microphone.svg
│ │ │ │ ├── microphone_off.svg
│ │ │ │ ├── minimize.svg
│ │ │ │ ├── minus.svg
│ │ │ │ ├── minus_circle.svg
│ │ │ │ ├── minus_circle_stroked.svg
│ │ │ │ ├── minus_stroked.svg
│ │ │ │ ├── modal_stroked.svg
│ │ │ │ ├── money_exchange_stroked.svg
│ │ │ │ ├── monitor_stroked.svg
│ │ │ │ ├── moon.svg
│ │ │ │ ├── more.svg
│ │ │ │ ├── more_stroked.svg
│ │ │ │ ├── music.svg
│ │ │ │ ├── music_note_stroked.svg
│ │ │ │ ├── mute.svg
│ │ │ │ ├── nine_grid_stroked.svg
│ │ │ │ ├── note_money_stroked.svg
│ │ │ │ ├── option.svg
│ │ │ │ ├── ordered_list.svg
│ │ │ │ ├── ordered_list_stroked.svg
│ │ │ │ ├── paperclip.svg
│ │ │ │ ├── pause.svg
│ │ │ │ ├── percentage.svg
│ │ │ │ ├── phone.svg
│ │ │ │ ├── phone_stroke.svg
│ │ │ │ ├── pie_chart_2_stroked.svg
│ │ │ │ ├── pie_chart_stroked.svg
│ │ │ │ ├── piechart_h5_stroked.svg
│ │ │ │ ├── pipixia_logo.svg
│ │ │ │ ├── play.svg
│ │ │ │ ├── play_circle.svg
│ │ │ │ ├── plus.svg
│ │ │ │ ├── plus_circle.svg
│ │ │ │ ├── plus_circle_stroked.svg
│ │ │ │ ├── plus_stroked.svg
│ │ │ │ ├── price_tag.svg
│ │ │ │ ├── print.svg
│ │ │ │ ├── prize_stroked.svg
│ │ │ │ ├── pulse.svg
│ │ │ │ ├── puzzle.svg
│ │ │ │ ├── qingyan.svg
│ │ │ │ ├── qr_code.svg
│ │ │ │ ├── quit.svg
│ │ │ │ ├── quote.svg
│ │ │ │ ├── radio.svg
│ │ │ │ ├── ranking_card_stroked.svg
│ │ │ │ ├── real_size_stroked.svg
│ │ │ │ ├── redo.svg
│ │ │ │ ├── redo_stroked.svg
│ │ │ │ ├── refresh.svg
│ │ │ │ ├── refresh2.svg
│ │ │ │ ├── reg_exp.svg
│ │ │ │ ├── reply.svg
│ │ │ │ ├── reply_stroked.svg
│ │ │ │ ├── resso.svg
│ │ │ │ ├── restart.svg
│ │ │ │ ├── ring_chart_stroked.svg
│ │ │ │ ├── rotate.svg
│ │ │ │ ├── rotation_stroked.svg
│ │ │ │ ├── route.svg
│ │ │ │ ├── rows_stroked.svg
│ │ │ │ ├── safe.svg
│ │ │ │ ├── save.svg
│ │ │ │ ├── save_stroked.svg
│ │ │ │ ├── scan.svg
│ │ │ │ ├── scissors.svg
│ │ │ │ ├── search.svg
│ │ │ │ ├── search_stroked.svg
│ │ │ │ ├── section_stroked.svg
│ │ │ │ ├── semi_logo.svg
│ │ │ │ ├── send.svg
│ │ │ │ ├── send_msg_stroked.svg
│ │ │ │ ├── send_stroked.svg
│ │ │ │ ├── server.svg
│ │ │ │ ├── server_stroked.svg
│ │ │ │ ├── setting.svg
│ │ │ │ ├── setting_stroked.svg
│ │ │ │ ├── share_money_stroked.svg
│ │ │ │ ├── share_stroked.svg
│ │ │ │ ├── shield.svg
│ │ │ │ ├── shield_stroked.svg
│ │ │ │ ├── shift.svg
│ │ │ │ ├── shopping_bag.svg
│ │ │ │ ├── shrink.svg
│ │ │ │ ├── shrink_screen_stroked.svg
│ │ │ │ ├── sidebar.svg
│ │ │ │ ├── signal.svg
│ │ │ │ ├── similarity.svg
│ │ │ │ ├── small_triangle_down.svg
│ │ │ │ ├── small_triangle_left.svg
│ │ │ │ ├── small_triangle_right.svg
│ │ │ │ ├── small_triangle_top.svg
│ │ │ │ ├── smartphone_check_stroked.svg
│ │ │ │ ├── smartphone_stroked.svg
│ │ │ │ ├── song.svg
│ │ │ │ ├── sonic_stroked.svg
│ │ │ │ ├── sort.svg
│ │ │ │ ├── sort_stroked.svg
│ │ │ │ ├── source_control.svg
│ │ │ │ ├── spin.svg
│ │ │ │ ├── stack_bar_chart_stroked.svg
│ │ │ │ ├── star.svg
│ │ │ │ ├── star_stroked.svg
│ │ │ │ ├── stop.svg
│ │ │ │ ├── stopwatch_stroked.svg
│ │ │ │ ├── story_stroked.svg
│ │ │ │ ├── strike_through.svg
│ │ │ │ ├── sun.svg
│ │ │ │ ├── sync.svg
│ │ │ │ ├── tab_arrow_stroked.svg
│ │ │ │ ├── tabs_stroked.svg
│ │ │ │ ├── task_money_stroked.svg
│ │ │ │ ├── template.svg
│ │ │ │ ├── template_stroked.svg
│ │ │ │ ├── terminal.svg
│ │ │ │ ├── test_score_stroked.svg
│ │ │ │ ├── text.svg
│ │ │ │ ├── text_rectangle.svg
│ │ │ │ ├── text_stroked.svg
│ │ │ │ ├── thumb_up_stroked.svg
│ │ │ │ ├── tick.svg
│ │ │ │ ├── tick_circle.svg
│ │ │ │ ├── ticket_code_exchange_stroked.svg
│ │ │ │ ├── ticket_code_stroked.svg
│ │ │ │ ├── tiktok_logo.svg
│ │ │ │ ├── top.svg
│ │ │ │ ├── top_center_stroked.svg
│ │ │ │ ├── top_left_stroked.svg
│ │ │ │ ├── top_right_stroked.svg
│ │ │ │ ├── topbuzz_logo.svg
│ │ │ │ ├── toutiao_logo.svg
│ │ │ │ ├── transparent_stroked.svg
│ │ │ │ ├── tree_triangle_down.svg
│ │ │ │ ├── tree_triangle_right.svg
│ │ │ │ ├── triangle_arrow.svg
│ │ │ │ ├── triangle_arrow_vertical.svg
│ │ │ │ ├── triangle_down.svg
│ │ │ │ ├── triangle_up.svg
│ │ │ │ ├── true_false_stroked.svg
│ │ │ │ ├── tv_checked_stroked.svg
│ │ │ │ ├── twitter.svg
│ │ │ │ ├── typograph.svg
│ │ │ │ ├── un_chain_stroked.svg
│ │ │ │ ├── underline.svg
│ │ │ │ ├── undo.svg
│ │ │ │ ├── unlink.svg
│ │ │ │ ├── unlock.svg
│ │ │ │ ├── unlock_stroked.svg
│ │ │ │ ├── upload.svg
│ │ │ │ ├── upload_error.svg
│ │ │ │ ├── user.svg
│ │ │ │ ├── user_add.svg
│ │ │ │ ├── user_card_phone.svg
│ │ │ │ ├── user_card_video.svg
│ │ │ │ ├── user_circle.svg
│ │ │ │ ├── user_circle_stroked.svg
│ │ │ │ ├── user_group.svg
│ │ │ │ ├── user_list_stroked.svg
│ │ │ │ ├── user_setting.svg
│ │ │ │ ├── user_stroked.svg
│ │ │ │ ├── venn_chart_stroked.svg
│ │ │ │ ├── verify.svg
│ │ │ │ ├── version_stroked.svg
│ │ │ │ ├── video.svg
│ │ │ │ ├── video_douyin_stroked.svg
│ │ │ │ ├── video_list_stroked.svg
│ │ │ │ ├── video_stroked.svg
│ │ │ │ ├── video_url_stroked.svg
│ │ │ │ ├── vigo_logo.svg
│ │ │ │ ├── volume_1.svg
│ │ │ │ ├── volume_2.svg
│ │ │ │ ├── volumn_silent.svg
│ │ │ │ ├── vote_stroked.svg
│ │ │ │ ├── vote_video_stroked.svg
│ │ │ │ ├── weibo.svg
│ │ │ │ ├── whole_word.svg
│ │ │ │ ├── wifi.svg
│ │ │ │ ├── window_adaption_stroked.svg
│ │ │ │ ├── wrench.svg
│ │ │ │ ├── xigua_logo.svg
│ │ │ │ └── youtube.svg
│ │ │ └── testIcon.spec.ts
│ │ ├── main.scss
│ │ ├── main.ts
│ │ └── tsconfig.esm.json
│ ├── tsconfig.esm.json
│ ├── tsconfig.json
│ └── vite.config.ts
├── semi-illustrations-vue
│ ├── .gitignore
│ ├── CHANGELOG.md
│ ├── LICENSE
│ ├── README.md
│ ├── build.cjs
│ ├── getBabelConfig.cjs
│ ├── gulpfile.cjs
│ ├── index.html
│ ├── index.ts
│ ├── package.json
│ ├── scripts
│ │ ├── .prettierrc.cjs
│ │ ├── build-icon.cjs
│ │ ├── build-illustration.cjs
│ │ └── compileLib.cjs
│ ├── src
│ │ ├── App.tsx
│ │ ├── components
│ │ │ ├── illustrations
│ │ │ │ ├── IllustrationConstruction.tsx
│ │ │ │ ├── IllustrationConstructionDark.tsx
│ │ │ │ ├── IllustrationFailure.tsx
│ │ │ │ ├── IllustrationFailureDark.tsx
│ │ │ │ ├── IllustrationIdle.tsx
│ │ │ │ ├── IllustrationIdleDark.tsx
│ │ │ │ ├── IllustrationNoAccess.tsx
│ │ │ │ ├── IllustrationNoAccessDark.tsx
│ │ │ │ ├── IllustrationNoContent.tsx
│ │ │ │ ├── IllustrationNoContentDark.tsx
│ │ │ │ ├── IllustrationNoResult.tsx
│ │ │ │ ├── IllustrationNoResultDark.tsx
│ │ │ │ ├── IllustrationNotFound.tsx
│ │ │ │ ├── IllustrationNotFoundDark.tsx
│ │ │ │ ├── IllustrationSuccess.tsx
│ │ │ │ └── IllustrationSuccessDark.tsx
│ │ │ ├── index.ts
│ │ │ └── testIcon.spec.ts
│ │ ├── env.d.ts
│ │ ├── main.scss
│ │ ├── main.ts
│ │ ├── svgs
│ │ │ ├── construction-dark.svg
│ │ │ ├── construction.svg
│ │ │ ├── failure-dark.svg
│ │ │ ├── failure.svg
│ │ │ ├── idle-dark.svg
│ │ │ ├── idle.svg
│ │ │ ├── noAccess-dark.svg
│ │ │ ├── noAccess.svg
│ │ │ ├── noContent-dark.svg
│ │ │ ├── noContent.svg
│ │ │ ├── noResult-dark.svg
│ │ │ ├── noResult.svg
│ │ │ ├── notFound-dark.svg
│ │ │ ├── notFound.svg
│ │ │ ├── success-dark.svg
│ │ │ └── success.svg
│ │ └── tsconfig.esm.json
│ ├── tsconfig.esm.json
│ ├── tsconfig.json
│ └── vite.config.ts
├── semi-ui-vue
│ ├── .gitignore
│ ├── CHANGELOG.md
│ ├── LICENSE
│ ├── README.md
│ ├── build.cjs
│ ├── gulpfile.cjs
│ ├── index.html
│ ├── package.json
│ ├── scripts
│ │ ├── compileLib.cjs
│ │ ├── test.ts
│ │ └── test2.ts
│ ├── src
│ │ ├── App.tsx
│ │ ├── assets
│ │ │ └── logo.png
│ │ ├── components
│ │ │ ├── AriaAttributes.ts
│ │ │ ├── PropTypes.ts
│ │ │ ├── __test__
│ │ │ │ ├── AnimationTest.tsx
│ │ │ │ ├── IconTest.tsx
│ │ │ │ └── test.spec.ts
│ │ │ ├── _base
│ │ │ │ ├── base.scss
│ │ │ │ ├── base.ts
│ │ │ │ ├── baseComponent.tsx
│ │ │ │ ├── reactUtils.ts
│ │ │ │ └── vueUtils.ts
│ │ │ ├── _cssAnimation
│ │ │ │ └── index.tsx
│ │ │ ├── _portal
│ │ │ │ └── index.tsx
│ │ │ ├── _sortable
│ │ │ │ └── index.tsx
│ │ │ ├── _utils
│ │ │ │ ├── index.tsx
│ │ │ │ ├── semi-global.ts
│ │ │ │ ├── setRefJsx.ts
│ │ │ │ └── useMemo.ts
│ │ │ ├── anchor
│ │ │ │ ├── __stories__
│ │ │ │ │ └── Demo.stories.tsx
│ │ │ │ ├── __test__
│ │ │ │ │ ├── AnchorDemo.tsx
│ │ │ │ │ └── test.spec.ts
│ │ │ │ ├── anchor-content
│ │ │ │ │ ├── Consumer.tsx
│ │ │ │ │ └── Provider.tsx
│ │ │ │ ├── anchor-context.ts
│ │ │ │ ├── index-en-US.md
│ │ │ │ ├── index.md
│ │ │ │ ├── index.tsx
│ │ │ │ └── link.tsx
│ │ │ ├── audioPlayer
│ │ │ │ ├── __stories__
│ │ │ │ │ └── Demo.stories.tsx
│ │ │ │ ├── __test__
│ │ │ │ │ └── AudioPlayerDemo.tsx
│ │ │ │ ├── audioSlider.tsx
│ │ │ │ ├── index.tsx
│ │ │ │ └── utils.ts
│ │ │ ├── autoComplete
│ │ │ │ ├── __stories__
│ │ │ │ │ └── AutoComplete.stories.tsx
│ │ │ │ ├── __test__
│ │ │ │ │ ├── AutoCompleteItemsDemo.tsx
│ │ │ │ │ ├── AutoCompleteSFC.vue
│ │ │ │ │ ├── OptionDemo.tsx
│ │ │ │ │ ├── RenderItem.tsx
│ │ │ │ │ ├── diyItemAutoComplete.vue
│ │ │ │ │ ├── remoteAutoComplete.vue
│ │ │ │ │ └── test.spec.tsx
│ │ │ │ ├── index.tsx
│ │ │ │ └── option.tsx
│ │ │ ├── avatar
│ │ │ │ ├── TopSlotSvg.tsx
│ │ │ │ ├── __stories__
│ │ │ │ │ └── Demo.stories.tsx
│ │ │ │ ├── __test__
│ │ │ │ │ ├── AvatarDemo.tsx
│ │ │ │ │ ├── AvatarGroupDemo.tsx
│ │ │ │ │ └── test.spec.ts
│ │ │ │ ├── avatarGroup.tsx
│ │ │ │ ├── index.tsx
│ │ │ │ └── interface.ts
│ │ │ ├── backtop
│ │ │ │ ├── __stories__
│ │ │ │ │ └── Demo.stories.tsx
│ │ │ │ ├── __test__
│ │ │ │ │ ├── BacktopDemo.tsx
│ │ │ │ │ └── test.spec.ts
│ │ │ │ ├── index-en-US.md
│ │ │ │ ├── index.md
│ │ │ │ └── index.tsx
│ │ │ ├── badge
│ │ │ │ ├── __stories__
│ │ │ │ │ └── Demo.stories.tsx
│ │ │ │ ├── __test__
│ │ │ │ │ ├── BadgeDemo.tsx
│ │ │ │ │ └── test.spec.ts
│ │ │ │ └── index.tsx
│ │ │ ├── banner
│ │ │ │ ├── __stories__
│ │ │ │ │ └── Demo.stories.tsx
│ │ │ │ ├── __test__
│ │ │ │ │ ├── BannerDemo.tsx
│ │ │ │ │ └── test.spec.ts
│ │ │ │ ├── index-en-US.md
│ │ │ │ ├── index.md
│ │ │ │ └── index.tsx
│ │ │ ├── breadcrumb
│ │ │ │ ├── __stories__
│ │ │ │ │ └── Demo.stories.tsx
│ │ │ │ ├── __test__
│ │ │ │ │ ├── BreadcrumbDemo.tsx
│ │ │ │ │ ├── BreadcrumbDemo2.tsx
│ │ │ │ │ └── test.spec.ts
│ │ │ │ ├── bread-context.tsx
│ │ │ │ ├── context
│ │ │ │ │ ├── Consumer.tsx
│ │ │ │ │ └── Provider.tsx
│ │ │ │ ├── index-en-US.md
│ │ │ │ ├── index.md
│ │ │ │ ├── index.tsx
│ │ │ │ └── item.tsx
│ │ │ ├── button
│ │ │ │ ├── Button.tsx
│ │ │ │ ├── ButtonGroup.tsx
│ │ │ │ ├── __stories__
│ │ │ │ │ └── Button.stories.tsx
│ │ │ │ ├── __test__
│ │ │ │ │ ├── Demo.tsx
│ │ │ │ │ ├── DemoButtonSFC.vue
│ │ │ │ │ └── test.spec.ts
│ │ │ │ ├── index.tsx
│ │ │ │ └── splitButtonGroup.tsx
│ │ │ ├── calendar
│ │ │ │ ├── __stories__
│ │ │ │ │ └── Demo.stories.tsx
│ │ │ │ ├── __test__
│ │ │ │ │ ├── CalenderDemo.tsx
│ │ │ │ │ ├── EventDemo.tsx
│ │ │ │ │ └── test.spec.ts
│ │ │ │ ├── dayCalendar.tsx
│ │ │ │ ├── dayCol.tsx
│ │ │ │ ├── index-en-US.md
│ │ │ │ ├── index.md
│ │ │ │ ├── index.tsx
│ │ │ │ ├── interface.ts
│ │ │ │ ├── monthCalendar.tsx
│ │ │ │ ├── rangeCalendar.tsx
│ │ │ │ ├── timeCol.tsx
│ │ │ │ └── weekCalendar.tsx
│ │ │ ├── card
│ │ │ │ ├── __stories__
│ │ │ │ │ └── Demo.stories.tsx
│ │ │ │ ├── __test__
│ │ │ │ │ ├── CardDemo.tsx
│ │ │ │ │ └── test.spec.ts
│ │ │ │ ├── cardGroup.tsx
│ │ │ │ ├── index-en-US.md
│ │ │ │ ├── index.md
│ │ │ │ ├── index.tsx
│ │ │ │ └── meta.tsx
│ │ │ ├── carousel
│ │ │ │ ├── CarouselArrow.tsx
│ │ │ │ ├── CarouselIndicator.tsx
│ │ │ │ ├── __stories__
│ │ │ │ │ └── Demo.stories.tsx
│ │ │ │ ├── __test__
│ │ │ │ │ ├── CarouselDemo.tsx
│ │ │ │ │ └── test.spec.ts
│ │ │ │ ├── index.tsx
│ │ │ │ └── interface.ts
│ │ │ ├── cascader
│ │ │ │ ├── __stories__
│ │ │ │ │ └── cascader.stories.tsx
│ │ │ │ ├── __test__
│ │ │ │ │ ├── CascaderDemo.tsx
│ │ │ │ │ ├── CascaderDemo3.tsx
│ │ │ │ │ ├── Demo2.tsx
│ │ │ │ │ ├── test.spec.tsx
│ │ │ │ │ └── treeData.ts
│ │ │ │ ├── index.tsx
│ │ │ │ ├── item.tsx
│ │ │ │ └── virtualRow.tsx
│ │ │ ├── chat
│ │ │ │ ├── __stories__
│ │ │ │ │ └── Demo.stories.tsx
│ │ │ │ ├── __test__
│ │ │ │ │ ├── ChatDemo.tsx
│ │ │ │ │ └── test.spec.ts
│ │ │ │ ├── attachment.tsx
│ │ │ │ ├── chatBox
│ │ │ │ │ ├── chatBoxAction.tsx
│ │ │ │ │ ├── chatBoxAvatar.tsx
│ │ │ │ │ ├── chatBoxContent.tsx
│ │ │ │ │ ├── chatBoxTitle.tsx
│ │ │ │ │ ├── chatPropsType.ts
│ │ │ │ │ ├── code.tsx
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── chatContent.tsx
│ │ │ │ ├── hint.tsx
│ │ │ │ ├── index.tsx
│ │ │ │ ├── inputBox
│ │ │ │ │ └── index.tsx
│ │ │ │ └── interface.ts
│ │ │ ├── checkbox
│ │ │ │ ├── __stories__
│ │ │ │ │ └── checkbox.stories.tsx
│ │ │ │ ├── __test__
│ │ │ │ │ ├── CheckboxDemo.tsx
│ │ │ │ │ ├── ContrlDemo.tsx
│ │ │ │ │ └── test.spec.ts
│ │ │ │ ├── checkbox.tsx
│ │ │ │ ├── checkboxGroup.tsx
│ │ │ │ ├── checkboxInner.tsx
│ │ │ │ ├── context.tsx
│ │ │ │ ├── context
│ │ │ │ │ ├── Consumer.tsx
│ │ │ │ │ └── Provider.tsx
│ │ │ │ ├── index.tsx
│ │ │ │ └── propType.ts
│ │ │ ├── codeHighlight
│ │ │ │ ├── __stories__
│ │ │ │ │ └── codeHighlight.stories.tsx
│ │ │ │ ├── __test__
│ │ │ │ │ ├── CodeHighlightDemo.tsx
│ │ │ │ │ └── test.spec.ts
│ │ │ │ └── index.tsx
│ │ │ ├── collapse
│ │ │ │ ├── __stories__
│ │ │ │ │ └── Demo.stories.tsx
│ │ │ │ ├── __test__
│ │ │ │ │ ├── CollapseDemo.tsx
│ │ │ │ │ └── test.spec.ts
│ │ │ │ ├── collapse-context.tsx
│ │ │ │ ├── context
│ │ │ │ │ ├── Consumer.tsx
│ │ │ │ │ └── Provider.tsx
│ │ │ │ ├── index.tsx
│ │ │ │ └── item.tsx
│ │ │ ├── collapsible
│ │ │ │ ├── __stories__
│ │ │ │ │ └── Demo.stories.tsx
│ │ │ │ ├── __test__
│ │ │ │ │ └── CollapsibleDemo.tsx
│ │ │ │ ├── index-en-US.md
│ │ │ │ ├── index.md
│ │ │ │ └── index.tsx
│ │ │ ├── colorPicker
│ │ │ │ ├── AlphaSlider
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── ColorChooseArea
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── ColorSlider
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── DataPart
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── __stories__
│ │ │ │ │ └── Demo.stories.tsx
│ │ │ │ ├── __test__
│ │ │ │ │ ├── ColorPickerDemo.tsx
│ │ │ │ │ └── test.spec.ts
│ │ │ │ └── index.tsx
│ │ │ ├── configProvider
│ │ │ │ ├── __stories__
│ │ │ │ │ └── Demo.stories.tsx
│ │ │ │ ├── __test__
│ │ │ │ │ ├── ConfigProviderDemo.tsx
│ │ │ │ │ └── test.spec.ts
│ │ │ │ ├── context.tsx
│ │ │ │ ├── context
│ │ │ │ │ ├── Consumer.tsx
│ │ │ │ │ └── Provider.tsx
│ │ │ │ └── index.tsx
│ │ │ ├── cropper
│ │ │ │ ├── __stories__
│ │ │ │ │ └── Demo.stories.tsx
│ │ │ │ ├── __test__
│ │ │ │ │ ├── CropperDemo.tsx
│ │ │ │ │ └── test.spec.ts
│ │ │ │ └── index.tsx
│ │ │ ├── datePicker
│ │ │ │ ├── __stories__
│ │ │ │ │ └── datePicker.stories.tsx
│ │ │ │ ├── __test__
│ │ │ │ │ ├── DatePickerDemo.tsx
│ │ │ │ │ ├── DatePickerDemo2.tsx
│ │ │ │ │ ├── DatePickerTriggerRenderDemo.vue
│ │ │ │ │ └── test.spec.ts
│ │ │ │ ├── dateInput.tsx
│ │ │ │ ├── datePicker.tsx
│ │ │ │ ├── footer.tsx
│ │ │ │ ├── index.tsx
│ │ │ │ ├── insetInput.tsx
│ │ │ │ ├── month.tsx
│ │ │ │ ├── monthsGrid.tsx
│ │ │ │ ├── navigation.tsx
│ │ │ │ ├── quickControl.tsx
│ │ │ │ └── yearAndMonth.tsx
│ │ │ ├── descriptions
│ │ │ │ ├── __stories__
│ │ │ │ │ └── Demo.stories.tsx
│ │ │ │ ├── __test__
│ │ │ │ │ ├── DescriptionsDemo.tsx
│ │ │ │ │ ├── DescriptionsHorizontalDemo.tsx
│ │ │ │ │ └── test.spec.ts
│ │ │ │ ├── context
│ │ │ │ │ ├── Consumer.tsx
│ │ │ │ │ └── Provider.tsx
│ │ │ │ ├── descriptions-context.ts
│ │ │ │ ├── index-en-US.md
│ │ │ │ ├── index.md
│ │ │ │ ├── index.tsx
│ │ │ │ └── item.tsx
│ │ │ ├── divider
│ │ │ │ ├── __stories__
│ │ │ │ │ └── Demo.stories.tsx
│ │ │ │ ├── __test__
│ │ │ │ │ ├── DividerDemo.tsx
│ │ │ │ │ └── test.spec.ts
│ │ │ │ └── index.tsx
│ │ │ ├── dragMove
│ │ │ │ ├── __stories__
│ │ │ │ │ └── Demo.stories.tsx
│ │ │ │ ├── __test__
│ │ │ │ │ ├── DragMoveDemo.tsx
│ │ │ │ │ └── test.spec.ts
│ │ │ │ └── index.ts
│ │ │ ├── dropdown
│ │ │ │ ├── __stories__
│ │ │ │ │ └── Demo.stories.tsx
│ │ │ │ ├── __test__
│ │ │ │ │ ├── DropdownDemo1.tsx
│ │ │ │ │ ├── DropdownDemoSFC.vue
│ │ │ │ │ └── test.spec.ts
│ │ │ │ ├── context.ts
│ │ │ │ ├── context
│ │ │ │ │ ├── Consumer.tsx
│ │ │ │ │ └── Provider.tsx
│ │ │ │ ├── dropdownDivider.tsx
│ │ │ │ ├── dropdownItem.tsx
│ │ │ │ ├── dropdownMenu.tsx
│ │ │ │ ├── dropdownTitle.tsx
│ │ │ │ └── index.tsx
│ │ │ ├── empty
│ │ │ │ ├── __stories__
│ │ │ │ │ └── Demo.stories.tsx
│ │ │ │ ├── __test__
│ │ │ │ │ ├── EmptyDemo.tsx
│ │ │ │ │ └── test.spec.ts
│ │ │ │ └── index.tsx
│ │ │ ├── form
│ │ │ │ ├── __stories__
│ │ │ │ │ └── form.stories.tsx
│ │ │ │ ├── __test__
│ │ │ │ │ ├── FormAllDemo.tsx
│ │ │ │ │ ├── FormArrayField.tsx
│ │ │ │ │ ├── FormDemo.tsx
│ │ │ │ │ ├── FormLayoutDemo.vue
│ │ │ │ │ ├── FormRenderDemo.tsx
│ │ │ │ │ ├── FormSlotDemo.tsx
│ │ │ │ │ ├── FormWinthFieldDemo4.tsx
│ │ │ │ │ ├── ModalForm.tsx
│ │ │ │ │ ├── WithFieldDemo.tsx
│ │ │ │ │ ├── WithFieldDemo2.tsx
│ │ │ │ │ ├── WithFieldDemo2Vitest.tsx
│ │ │ │ │ ├── WithFormApiDemo.tsx
│ │ │ │ │ ├── WithFormStateDemo.tsx
│ │ │ │ │ └── test.spec.ts
│ │ │ │ ├── arrayField.tsx
│ │ │ │ ├── baseForm.tsx
│ │ │ │ ├── context.tsx
│ │ │ │ ├── context
│ │ │ │ │ ├── ArrayField
│ │ │ │ │ │ ├── Consumer.tsx
│ │ │ │ │ │ └── Provider.tsx
│ │ │ │ │ ├── BaseFormApi
│ │ │ │ │ │ ├── Consumer.tsx
│ │ │ │ │ │ └── Provider.tsx
│ │ │ │ │ ├── FormState
│ │ │ │ │ │ ├── Consumer.tsx
│ │ │ │ │ │ └── Provider.tsx
│ │ │ │ │ └── FormUpdaterContext
│ │ │ │ │ │ ├── Consumer.tsx
│ │ │ │ │ │ └── Provider.tsx
│ │ │ │ ├── errorMessage.tsx
│ │ │ │ ├── field.tsx
│ │ │ │ ├── group.tsx
│ │ │ │ ├── hoc
│ │ │ │ │ ├── utils.ts
│ │ │ │ │ ├── withField.tsx
│ │ │ │ │ ├── withFormApi.tsx
│ │ │ │ │ └── withFormState.tsx
│ │ │ │ ├── hooks
│ │ │ │ │ ├── index.ts
│ │ │ │ │ ├── useArrayFieldState.tsx
│ │ │ │ │ ├── useFieldApi.tsx
│ │ │ │ │ ├── useFieldState.tsx
│ │ │ │ │ ├── useFormApi.tsx
│ │ │ │ │ ├── useFormState.tsx
│ │ │ │ │ ├── useFormUpdater.tsx
│ │ │ │ │ └── useStateWithGetter.ts
│ │ │ │ ├── index-en-US.md
│ │ │ │ ├── index.md
│ │ │ │ ├── index.tsx
│ │ │ │ ├── interface.ts
│ │ │ │ ├── label.tsx
│ │ │ │ ├── section.tsx
│ │ │ │ └── slot.tsx
│ │ │ ├── grid
│ │ │ │ ├── __stories__
│ │ │ │ │ └── Demo.stories.tsx
│ │ │ │ ├── __test__
│ │ │ │ │ ├── GridTest.tsx
│ │ │ │ │ └── test.spec.ts
│ │ │ │ ├── col.tsx
│ │ │ │ ├── index.tsx
│ │ │ │ └── row.tsx
│ │ │ ├── highlight
│ │ │ │ ├── __stories__
│ │ │ │ │ └── Demo.stories.tsx
│ │ │ │ ├── __test__
│ │ │ │ │ ├── HighlightDemo.tsx
│ │ │ │ │ └── test.spec.ts
│ │ │ │ ├── index-en-US.md
│ │ │ │ ├── index.md
│ │ │ │ └── index.tsx
│ │ │ ├── hotKeys
│ │ │ │ ├── __stories__
│ │ │ │ │ └── Demo.stories.tsx
│ │ │ │ ├── __test__
│ │ │ │ │ ├── HotKeysDemo.tsx
│ │ │ │ │ ├── HotKeysDemo2.tsx
│ │ │ │ │ ├── HotKeysDocsDemo.tsx
│ │ │ │ │ └── hotkeys.test.tsx
│ │ │ │ └── index.tsx
│ │ │ ├── iconButton
│ │ │ │ └── index.tsx
│ │ │ ├── icons
│ │ │ │ └── index.tsx
│ │ │ ├── image
│ │ │ │ ├── __stories__
│ │ │ │ │ └── Demo.stories.tsx
│ │ │ │ ├── __test__
│ │ │ │ │ ├── ImageDemo.tsx
│ │ │ │ │ ├── ImageDemo2.tsx
│ │ │ │ │ └── test.spec.tsx
│ │ │ │ ├── image.tsx
│ │ │ │ ├── index-en-US.md
│ │ │ │ ├── index.md
│ │ │ │ ├── index.tsx
│ │ │ │ ├── interface.tsx
│ │ │ │ ├── preview.tsx
│ │ │ │ ├── previewContext.tsx
│ │ │ │ ├── previewContext
│ │ │ │ │ ├── Consumer.tsx
│ │ │ │ │ └── Provider.tsx
│ │ │ │ ├── previewFooter.tsx
│ │ │ │ ├── previewHeader.tsx
│ │ │ │ ├── previewImage.tsx
│ │ │ │ └── previewInner.tsx
│ │ │ ├── index.ts
│ │ │ ├── input
│ │ │ │ ├── __stories__
│ │ │ │ │ └── input.stories.tsx
│ │ │ │ ├── __test__
│ │ │ │ │ ├── InputDemo.tsx
│ │ │ │ │ └── test.spec.ts
│ │ │ │ ├── index.tsx
│ │ │ │ ├── inputGroup.tsx
│ │ │ │ └── textArea.tsx
│ │ │ ├── inputNumber
│ │ │ │ ├── __stories__
│ │ │ │ │ └── inputNumber.stories.tsx
│ │ │ │ ├── __test__
│ │ │ │ │ ├── InputNumberDemo.tsx
│ │ │ │ │ └── test.spec.ts
│ │ │ │ ├── index-en-US.md
│ │ │ │ ├── index.md
│ │ │ │ └── index.tsx
│ │ │ ├── interface.ts
│ │ │ ├── jsonViewer
│ │ │ │ ├── __stories__
│ │ │ │ │ └── Demo.stories.tsx
│ │ │ │ ├── __test__
│ │ │ │ │ ├── JsonViewerDemo.tsx
│ │ │ │ │ └── test.spec.ts
│ │ │ │ └── index.tsx
│ │ │ ├── layout
│ │ │ │ ├── Sider.tsx
│ │ │ │ ├── __stories__
│ │ │ │ │ └── Demo.stories.tsx
│ │ │ │ ├── __test__
│ │ │ │ │ ├── LayoutTest.tsx
│ │ │ │ │ └── test.spec.ts
│ │ │ │ ├── context
│ │ │ │ │ ├── Consumer.tsx
│ │ │ │ │ └── Provider.tsx
│ │ │ │ ├── index.tsx
│ │ │ │ └── layoutContext.ts
│ │ │ ├── list
│ │ │ │ ├── __stories__
│ │ │ │ │ └── Demo.stories.tsx
│ │ │ │ ├── __test__
│ │ │ │ │ ├── ListDemo.tsx
│ │ │ │ │ └── test.spec.ts
│ │ │ │ ├── context
│ │ │ │ │ ├── Consumer.tsx
│ │ │ │ │ └── Provider.tsx
│ │ │ │ ├── index-en-US.md
│ │ │ │ ├── index.md
│ │ │ │ ├── index.tsx
│ │ │ │ ├── item.tsx
│ │ │ │ └── list-context.ts
│ │ │ ├── locale
│ │ │ │ ├── __stories__
│ │ │ │ │ └── Demo.stories.tsx
│ │ │ │ ├── __test__
│ │ │ │ │ └── LocaleDemo.tsx
│ │ │ │ ├── context.tsx
│ │ │ │ ├── context
│ │ │ │ │ ├── Consumer.tsx
│ │ │ │ │ └── Provider.tsx
│ │ │ │ ├── interface.ts
│ │ │ │ ├── localeConsumer.tsx
│ │ │ │ ├── localeProvider.tsx
│ │ │ │ └── source
│ │ │ │ │ ├── ar.ts
│ │ │ │ │ ├── de.ts
│ │ │ │ │ ├── en_GB.ts
│ │ │ │ │ ├── en_US.ts
│ │ │ │ │ ├── es.ts
│ │ │ │ │ ├── fr.ts
│ │ │ │ │ ├── id_ID.ts
│ │ │ │ │ ├── it.ts
│ │ │ │ │ ├── ja_JP.ts
│ │ │ │ │ ├── ko_KR.ts
│ │ │ │ │ ├── ms_MY.ts
│ │ │ │ │ ├── nl_NL.ts
│ │ │ │ │ ├── pl_PL.ts
│ │ │ │ │ ├── pt_BR.ts
│ │ │ │ │ ├── ro.ts
│ │ │ │ │ ├── ru_RU.ts
│ │ │ │ │ ├── sv_SE.ts
│ │ │ │ │ ├── th_TH.ts
│ │ │ │ │ ├── tr_TR.ts
│ │ │ │ │ ├── vi_VN.ts
│ │ │ │ │ ├── zh_CN.ts
│ │ │ │ │ └── zh_TW.ts
│ │ │ ├── lottie
│ │ │ │ ├── __stories__
│ │ │ │ │ └── lottie.stories.tsx
│ │ │ │ ├── __test__
│ │ │ │ │ ├── LottieDemo.tsx
│ │ │ │ │ └── test.spec.ts
│ │ │ │ └── index.tsx
│ │ │ ├── markdownRender
│ │ │ │ ├── __stories__
│ │ │ │ │ └── markdownRender.stories.tsx
│ │ │ │ ├── __test__
│ │ │ │ │ ├── markDownRenderDemo.tsx
│ │ │ │ │ └── test.spec.ts
│ │ │ │ ├── components
│ │ │ │ │ ├── a.tsx
│ │ │ │ │ ├── code.tsx
│ │ │ │ │ ├── h1.tsx
│ │ │ │ │ ├── h2.tsx
│ │ │ │ │ ├── h3.tsx
│ │ │ │ │ ├── h4.tsx
│ │ │ │ │ ├── h5.tsx
│ │ │ │ │ ├── h6.tsx
│ │ │ │ │ ├── img.tsx
│ │ │ │ │ ├── index.tsx
│ │ │ │ │ ├── p.tsx
│ │ │ │ │ └── table.tsx
│ │ │ │ └── index.tsx
│ │ │ ├── modal
│ │ │ │ ├── ConfirmModal.tsx
│ │ │ │ ├── Modal.tsx
│ │ │ │ ├── ModalContent.tsx
│ │ │ │ ├── __stories__
│ │ │ │ │ └── Demo.stories.tsx
│ │ │ │ ├── __test__
│ │ │ │ │ ├── ModalDemo.tsx
│ │ │ │ │ ├── ModalDemo2.tsx
│ │ │ │ │ ├── ModalDemoConfirm.tsx
│ │ │ │ │ ├── ModalDemoHook.tsx
│ │ │ │ │ ├── ModalDemoVueSFC.vue
│ │ │ │ │ ├── ModalDocsDemo.tsx
│ │ │ │ │ └── test.spec.ts
│ │ │ │ ├── confirm.tsx
│ │ │ │ ├── index-en-US.md
│ │ │ │ ├── index.md
│ │ │ │ ├── index.tsx
│ │ │ │ └── useModal
│ │ │ │ │ ├── HookModal.tsx
│ │ │ │ │ └── index.tsx
│ │ │ ├── navigation
│ │ │ │ ├── CollapseButton.tsx
│ │ │ │ ├── Footer.tsx
│ │ │ │ ├── Header.tsx
│ │ │ │ ├── Item.tsx
│ │ │ │ ├── README.md
│ │ │ │ ├── SubNav.tsx
│ │ │ │ ├── __stories__
│ │ │ │ │ └── Demo.stories.tsx
│ │ │ │ ├── __test__
│ │ │ │ │ ├── NavDemo2.tsx
│ │ │ │ │ ├── NavigationDemo.tsx
│ │ │ │ │ └── test.spec.ts
│ │ │ │ ├── index-en-US.md
│ │ │ │ ├── index.md
│ │ │ │ ├── index.tsx
│ │ │ │ ├── nav-context.ts
│ │ │ │ └── nav-context
│ │ │ │ │ ├── Consumer.tsx
│ │ │ │ │ └── Provider.tsx
│ │ │ ├── notification
│ │ │ │ ├── NoticeTransition.tsx
│ │ │ │ ├── __stories__
│ │ │ │ │ └── Demo.stories.tsx
│ │ │ │ ├── __test__
│ │ │ │ │ ├── NotificationDemo.tsx
│ │ │ │ │ ├── NotificationDemo2.tsx
│ │ │ │ │ ├── NotificationDemo3.tsx
│ │ │ │ │ └── test.spec.ts
│ │ │ │ ├── index.tsx
│ │ │ │ ├── notice.tsx
│ │ │ │ └── useNotification
│ │ │ │ │ ├── HookNotice.tsx
│ │ │ │ │ └── index.tsx
│ │ │ ├── overflowList
│ │ │ │ ├── __stories__
│ │ │ │ │ └── Demo.stories.tsx
│ │ │ │ ├── __test__
│ │ │ │ │ ├── OverListAllDemo.tsx
│ │ │ │ │ ├── OverflowListDemo.tsx
│ │ │ │ │ ├── OverflowListDemoScroll.tsx
│ │ │ │ │ └── test.spec.ts
│ │ │ │ ├── index.md
│ │ │ │ ├── index.tsx
│ │ │ │ └── intersectionObserver.tsx
│ │ │ ├── pagination
│ │ │ │ ├── __stories__
│ │ │ │ │ └── Demo.stories.tsx
│ │ │ │ ├── __test__
│ │ │ │ │ ├── PaginationDemo.tsx
│ │ │ │ │ └── test.spec.ts
│ │ │ │ ├── index-en-US.md
│ │ │ │ ├── index.md
│ │ │ │ └── index.tsx
│ │ │ ├── pincode
│ │ │ │ ├── __stories__
│ │ │ │ │ └── pincode.stories.tsx
│ │ │ │ ├── __test__
│ │ │ │ │ ├── PinCodeDemo.tsx
│ │ │ │ │ └── test.spec.ts
│ │ │ │ └── index.tsx
│ │ │ ├── popconfirm
│ │ │ │ ├── __stories__
│ │ │ │ │ └── Demo.stories.tsx
│ │ │ │ ├── __test__
│ │ │ │ │ ├── PopComfirmDocsDemo.tsx
│ │ │ │ │ ├── PopconfirmDemo.tsx
│ │ │ │ │ └── test.spec.ts
│ │ │ │ └── index.tsx
│ │ │ ├── popover
│ │ │ │ ├── Arrow.tsx
│ │ │ │ ├── __stories__
│ │ │ │ │ └── Demo.stories.tsx
│ │ │ │ ├── __test__
│ │ │ │ │ ├── PopoverTest.tsx
│ │ │ │ │ └── test.spec.ts
│ │ │ │ └── index.tsx
│ │ │ ├── progress
│ │ │ │ ├── __stories__
│ │ │ │ │ └── Demo.stories.tsx
│ │ │ │ ├── __test__
│ │ │ │ │ ├── ProgressDemo.tsx
│ │ │ │ │ └── test.spec.ts
│ │ │ │ ├── index-en-US.md
│ │ │ │ ├── index.md
│ │ │ │ └── index.tsx
│ │ │ ├── radio
│ │ │ │ ├── __stories__
│ │ │ │ │ └── radio.stories.tsx
│ │ │ │ ├── __test__
│ │ │ │ │ ├── RadioDemo.tsx
│ │ │ │ │ └── test.spec.ts
│ │ │ │ ├── context.tsx
│ │ │ │ ├── index.tsx
│ │ │ │ ├── radio.tsx
│ │ │ │ ├── radioGroup.tsx
│ │ │ │ └── radioInner.tsx
│ │ │ ├── rating
│ │ │ │ ├── __stories__
│ │ │ │ │ └── Demo.stories.tsx
│ │ │ │ ├── __test__
│ │ │ │ │ ├── RatingDemo.tsx
│ │ │ │ │ └── test.spec.ts
│ │ │ │ ├── index-en-US.md
│ │ │ │ ├── index.md
│ │ │ │ ├── index.tsx
│ │ │ │ └── item.tsx
│ │ │ ├── resizable
│ │ │ │ ├── __stories__
│ │ │ │ │ └── resizable.stories.tsx
│ │ │ │ ├── __test__
│ │ │ │ │ ├── ResizableDemo.tsx
│ │ │ │ │ └── test.spec.ts
│ │ │ │ ├── group
│ │ │ │ │ ├── context
│ │ │ │ │ │ ├── Consumer.tsx
│ │ │ │ │ │ └── Provider.tsx
│ │ │ │ │ ├── resizeContext.ts
│ │ │ │ │ ├── resizeGroup.tsx
│ │ │ │ │ ├── resizeHandler.tsx
│ │ │ │ │ └── resizeItem.tsx
│ │ │ │ ├── index.tsx
│ │ │ │ └── single
│ │ │ │ │ ├── resizable.tsx
│ │ │ │ │ └── resizableHandler.tsx
│ │ │ ├── resizeObserver
│ │ │ │ └── index.tsx
│ │ │ ├── scrollList
│ │ │ │ ├── __stories__
│ │ │ │ │ └── Demo.stories.tsx
│ │ │ │ ├── __test__
│ │ │ │ │ ├── ScrollListDemo.tsx
│ │ │ │ │ └── test.spec.ts
│ │ │ │ ├── index.tsx
│ │ │ │ └── scrollItem.tsx
│ │ │ ├── select
│ │ │ │ ├── __stories__
│ │ │ │ │ └── Demo.stories.tsx
│ │ │ │ ├── __test__
│ │ │ │ │ ├── SelectDemo.tsx
│ │ │ │ │ ├── SelectDemo2.tsx
│ │ │ │ │ ├── SelectDemo3.vue
│ │ │ │ │ ├── SelectDemo4.vue
│ │ │ │ │ ├── SelectDemo5.tsx
│ │ │ │ │ ├── SelectDemoToRawTest.tsx
│ │ │ │ │ ├── SelectDocsDemo.tsx
│ │ │ │ │ ├── SelectRenderOptionItem.tsx
│ │ │ │ │ ├── SelectTest.tsx
│ │ │ │ │ └── test.spec.ts
│ │ │ │ ├── index.tsx
│ │ │ │ ├── option.tsx
│ │ │ │ ├── optionGroup.tsx
│ │ │ │ ├── utils.tsx
│ │ │ │ └── virtualRow.tsx
│ │ │ ├── sideSheet
│ │ │ │ ├── SideSheetContent.tsx
│ │ │ │ ├── __stories__
│ │ │ │ │ └── Demo.stories.tsx
│ │ │ │ ├── __test__
│ │ │ │ │ ├── SideSheetDemo.tsx
│ │ │ │ │ ├── SideSheetDemo2.tsx
│ │ │ │ │ └── test.spec.ts
│ │ │ │ ├── index-en-US.md
│ │ │ │ ├── index.md
│ │ │ │ └── index.tsx
│ │ │ ├── skeleton
│ │ │ │ ├── __stories__
│ │ │ │ │ └── Demo.stories.tsx
│ │ │ │ ├── __test__
│ │ │ │ │ ├── SkeletonDemo.tsx
│ │ │ │ │ ├── SkeletonDemoSFC.vue
│ │ │ │ │ ├── placeholder.vue
│ │ │ │ │ └── test.spec.ts
│ │ │ │ ├── index-en-US.md
│ │ │ │ ├── index.md
│ │ │ │ ├── index.tsx
│ │ │ │ └── item.tsx
│ │ │ ├── slider
│ │ │ │ ├── __stories__
│ │ │ │ │ └── Demo.stories.tsx
│ │ │ │ ├── __test__
│ │ │ │ │ ├── SliderDemo.tsx
│ │ │ │ │ └── test.spec.ts
│ │ │ │ ├── index-en-US.md
│ │ │ │ ├── index.md
│ │ │ │ └── index.tsx
│ │ │ ├── space
│ │ │ │ ├── __stories__
│ │ │ │ │ └── Demo.stories.tsx
│ │ │ │ ├── __test__
│ │ │ │ │ ├── SpaceTest.tsx
│ │ │ │ │ └── test.spec.ts
│ │ │ │ ├── index.tsx
│ │ │ │ └── utils.ts
│ │ │ ├── spin
│ │ │ │ ├── __stories__
│ │ │ │ │ └── Demo.stories.tsx
│ │ │ │ ├── __test__
│ │ │ │ │ ├── SpinDemo.tsx
│ │ │ │ │ └── test.spec.tsx
│ │ │ │ ├── icon.tsx
│ │ │ │ └── index.tsx
│ │ │ ├── steps
│ │ │ │ ├── __stories__
│ │ │ │ │ └── Demo.stories.tsx
│ │ │ │ ├── __test__
│ │ │ │ │ ├── StepsDemo.tsx
│ │ │ │ │ └── test.spec.tsx
│ │ │ │ ├── basicStep.tsx
│ │ │ │ ├── basicSteps.tsx
│ │ │ │ ├── context.ts
│ │ │ │ ├── context
│ │ │ │ │ ├── Consumer.tsx
│ │ │ │ │ └── Provider.tsx
│ │ │ │ ├── fillStep.tsx
│ │ │ │ ├── fillSteps.tsx
│ │ │ │ ├── index-en-US.md
│ │ │ │ ├── index.md
│ │ │ │ ├── index.tsx
│ │ │ │ ├── navStep.tsx
│ │ │ │ ├── navSteps.tsx
│ │ │ │ └── step.tsx
│ │ │ ├── switch
│ │ │ │ ├── __stories__
│ │ │ │ │ └── Demo.stories.tsx
│ │ │ │ ├── __test__
│ │ │ │ │ ├── SwitchDemo.tsx
│ │ │ │ │ └── test.spec.ts
│ │ │ │ ├── index-en-US.md
│ │ │ │ ├── index.md
│ │ │ │ └── index.tsx
│ │ │ ├── table
│ │ │ │ ├── Body
│ │ │ │ │ ├── BaseRow.tsx
│ │ │ │ │ ├── ExpandedRow.tsx
│ │ │ │ │ ├── SectionRow.tsx
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── ColGroup.tsx
│ │ │ │ ├── Column.tsx
│ │ │ │ ├── ColumnFilter.tsx
│ │ │ │ ├── ColumnSelection.tsx
│ │ │ │ ├── ColumnShape.ts
│ │ │ │ ├── ColumnSorter.tsx
│ │ │ │ ├── CustomExpandIcon.tsx
│ │ │ │ ├── HeadTable.tsx
│ │ │ │ ├── ResizableHeaderCell.tsx
│ │ │ │ ├── ResizableTable.tsx
│ │ │ │ ├── Table.tsx
│ │ │ │ ├── TableCell.tsx
│ │ │ │ ├── TableContextProvider.tsx
│ │ │ │ ├── TableHeader.tsx
│ │ │ │ ├── TableHeaderRow.tsx
│ │ │ │ ├── TablePagination.tsx
│ │ │ │ ├── __stories__
│ │ │ │ │ └── Demo.stories.tsx
│ │ │ │ ├── __test__
│ │ │ │ │ ├── AllDemo.tsx
│ │ │ │ │ ├── BodyDemo.tsx
│ │ │ │ │ ├── TableColumnsFromChildren.tsx
│ │ │ │ │ ├── TableDemo1.tsx
│ │ │ │ │ ├── TableDemo10.tsx
│ │ │ │ │ ├── TableDemo11.tsx
│ │ │ │ │ ├── TableDemo12.tsx
│ │ │ │ │ ├── TableDemo13Virtualized.tsx
│ │ │ │ │ ├── TableDemo2.tsx
│ │ │ │ │ ├── TableDemo3.tsx
│ │ │ │ │ ├── TableDemo4.tsx
│ │ │ │ │ ├── TableDemo5.tsx
│ │ │ │ │ ├── TableDemo6.tsx
│ │ │ │ │ ├── TableDemo7.tsx
│ │ │ │ │ ├── TableDemo8.tsx
│ │ │ │ │ ├── TableDemo9.tsx
│ │ │ │ │ ├── TableDemoColumnChildren.tsx
│ │ │ │ │ ├── TableDemoSFC.vue
│ │ │ │ │ ├── TableDemoSelectedKey.tsx
│ │ │ │ │ ├── TableDocsDemo.tsx
│ │ │ │ │ ├── demo11
│ │ │ │ │ │ └── SortableItem.tsx
│ │ │ │ │ └── test.spec.tsx
│ │ │ │ ├── getColumns.tsx
│ │ │ │ ├── index-en-US.md
│ │ │ │ ├── index.md
│ │ │ │ ├── index.tsx
│ │ │ │ ├── interface.ts
│ │ │ │ ├── table-context.ts
│ │ │ │ ├── tableContext
│ │ │ │ │ ├── Consumer.tsx
│ │ │ │ │ └── Provider.tsx
│ │ │ │ └── utils.ts
│ │ │ ├── tabs
│ │ │ │ ├── TabBar.tsx
│ │ │ │ ├── TabItem.tsx
│ │ │ │ ├── TabPane.tsx
│ │ │ │ ├── __stories__
│ │ │ │ │ └── Demo.stories.tsx
│ │ │ │ ├── __test__
│ │ │ │ │ ├── TabsDemo.tsx
│ │ │ │ │ ├── TabsDemo2.tsx
│ │ │ │ │ ├── TabsDemo3.tsx
│ │ │ │ │ ├── TabsDemo3VueSFC.vue
│ │ │ │ │ ├── TabsDemo4.tsx
│ │ │ │ │ ├── TabsDemo5.tsx
│ │ │ │ │ ├── TabsDemoMore.tsx
│ │ │ │ │ ├── TabsDemoPaneChildren.tsx
│ │ │ │ │ ├── TabsDemoReact.tsx
│ │ │ │ │ ├── TabsDemoVueSFC.vue
│ │ │ │ │ ├── TabsDocsDemo.tsx
│ │ │ │ │ └── test.spec.tsx
│ │ │ │ ├── index-en-US.md
│ │ │ │ ├── index.md
│ │ │ │ ├── index.tsx
│ │ │ │ ├── interface.ts
│ │ │ │ ├── tabs-context.ts
│ │ │ │ └── tabs-context
│ │ │ │ │ ├── Consumer.tsx
│ │ │ │ │ └── Provider.tsx
│ │ │ ├── tag
│ │ │ │ ├── __stories__
│ │ │ │ │ └── Demo.stories.tsx
│ │ │ │ ├── __test__
│ │ │ │ │ ├── TagDemo.tsx
│ │ │ │ │ ├── TagDocsDemo.tsx
│ │ │ │ │ └── test.spec.ts
│ │ │ │ ├── group.tsx
│ │ │ │ ├── index.tsx
│ │ │ │ └── interface.ts
│ │ │ ├── tagInput
│ │ │ │ ├── __stories__
│ │ │ │ │ └── Demo.stories.tsx
│ │ │ │ ├── __test__
│ │ │ │ │ ├── TagInputDemo.tsx
│ │ │ │ │ └── test.spec.ts
│ │ │ │ └── index.tsx
│ │ │ ├── timePicker
│ │ │ │ ├── Combobox.tsx
│ │ │ │ ├── PanelShape.ts
│ │ │ │ ├── TimeInput.tsx
│ │ │ │ ├── TimePicker.tsx
│ │ │ │ ├── TimeShape.ts
│ │ │ │ ├── __stories__
│ │ │ │ │ └── Demo.stories.tsx
│ │ │ │ ├── __test__
│ │ │ │ │ ├── TimePickerDemo.tsx
│ │ │ │ │ └── test.spec.ts
│ │ │ │ ├── index.tsx
│ │ │ │ └── propTypes.ts
│ │ │ ├── timeline
│ │ │ │ ├── __stories__
│ │ │ │ │ └── Demo.stories.tsx
│ │ │ │ ├── __test__
│ │ │ │ │ ├── TimelineDemo.tsx
│ │ │ │ │ └── test.spec.tsx
│ │ │ │ ├── index-en-US.md
│ │ │ │ ├── index.md
│ │ │ │ ├── index.tsx
│ │ │ │ └── item.tsx
│ │ │ ├── toast
│ │ │ │ ├── __stories__
│ │ │ │ │ └── Demo.stories.tsx
│ │ │ │ ├── __test__
│ │ │ │ │ ├── ToastDemo.tsx
│ │ │ │ │ ├── ToastUseDemo.tsx
│ │ │ │ │ └── test.spec.ts
│ │ │ │ ├── index.tsx
│ │ │ │ ├── toast.tsx
│ │ │ │ └── useToast
│ │ │ │ │ ├── HookToast.tsx
│ │ │ │ │ └── index.tsx
│ │ │ ├── tooltip
│ │ │ │ ├── ArrowBoundingShape.ts
│ │ │ │ ├── TriangleArrow.tsx
│ │ │ │ ├── TriangleArrowVertical.tsx
│ │ │ │ ├── __stories__
│ │ │ │ │ └── Demo.stories.tsx
│ │ │ │ ├── __test__
│ │ │ │ │ ├── TooltipDemo.tsx
│ │ │ │ │ └── test.spec.ts
│ │ │ │ └── index.tsx
│ │ │ ├── transfer
│ │ │ │ ├── __stories__
│ │ │ │ │ └── Demo.stories.tsx
│ │ │ │ ├── __test__
│ │ │ │ │ ├── TransferDemo.tsx
│ │ │ │ │ ├── TransferDemoDocs.tsx
│ │ │ │ │ ├── TransferTreeDemo.tsx
│ │ │ │ │ └── test.spec.ts
│ │ │ │ ├── index-en-US.md
│ │ │ │ ├── index.md
│ │ │ │ └── index.tsx
│ │ │ ├── tree
│ │ │ │ ├── TreeContext
│ │ │ │ │ ├── Consumer.tsx
│ │ │ │ │ └── Provider.tsx
│ │ │ │ ├── __stories__
│ │ │ │ │ └── Demo.stories.tsx
│ │ │ │ ├── __test__
│ │ │ │ │ ├── TreeAllDemo.tsx
│ │ │ │ │ ├── TreeCheckDemo.tsx
│ │ │ │ │ ├── TreeCheckSimpleJsonDemo.tsx
│ │ │ │ │ ├── TreeDemo.tsx
│ │ │ │ │ ├── TreeDemo2.tsx
│ │ │ │ │ ├── TreeDemo3.tsx
│ │ │ │ │ ├── TreeDemo4.tsx
│ │ │ │ │ ├── TreeDemo5.tsx
│ │ │ │ │ ├── VirtualizeTreeDemo.tsx
│ │ │ │ │ └── test.spec.ts
│ │ │ │ ├── autoSizer.tsx
│ │ │ │ ├── collapse.tsx
│ │ │ │ ├── indent.tsx
│ │ │ │ ├── index-en-US.md
│ │ │ │ ├── index.md
│ │ │ │ ├── index.tsx
│ │ │ │ ├── interface.ts
│ │ │ │ ├── nodeList.tsx
│ │ │ │ ├── treeContext.tsx
│ │ │ │ ├── treeNode.tsx
│ │ │ │ └── treeUtil.tsx
│ │ │ ├── treeSelect
│ │ │ │ ├── __stories__
│ │ │ │ │ └── Demo.stories.tsx
│ │ │ │ ├── __test__
│ │ │ │ │ ├── TreeSelectDemo.tsx
│ │ │ │ │ └── test.spec.tsx
│ │ │ │ ├── index-en-US.md
│ │ │ │ ├── index.md
│ │ │ │ └── index.tsx
│ │ │ ├── trigger
│ │ │ │ └── index.tsx
│ │ │ ├── typography
│ │ │ │ ├── __stories__
│ │ │ │ │ └── Demo.stories.tsx
│ │ │ │ ├── __test__
│ │ │ │ │ ├── NumeralDemo.tsx
│ │ │ │ │ ├── TypoCopyDemo.tsx
│ │ │ │ │ ├── TypoDemo.tsx
│ │ │ │ │ ├── TypoDemo2.tsx
│ │ │ │ │ ├── TypoDemo3.tsx
│ │ │ │ │ ├── TypoDemoSFC.vue
│ │ │ │ │ ├── linkDemo.vue
│ │ │ │ │ ├── test.spec.ts
│ │ │ │ │ └── textDemo.vue
│ │ │ │ ├── base.tsx
│ │ │ │ ├── context.tsx
│ │ │ │ ├── context
│ │ │ │ │ ├── Consumer.tsx
│ │ │ │ │ └── Provider.tsx
│ │ │ │ ├── copyable.tsx
│ │ │ │ ├── index.tsx
│ │ │ │ ├── interface.ts
│ │ │ │ ├── numeral.tsx
│ │ │ │ ├── paragraph.tsx
│ │ │ │ ├── text.tsx
│ │ │ │ ├── title.tsx
│ │ │ │ ├── typography.tsx
│ │ │ │ └── util.tsx
│ │ │ ├── upload
│ │ │ │ ├── __stories__
│ │ │ │ │ └── Demo.stories.tsx
│ │ │ │ ├── __test__
│ │ │ │ │ ├── UpdateDemo2.tsx
│ │ │ │ │ ├── UploadDemo.tsx
│ │ │ │ │ ├── UploadDemo3.tsx
│ │ │ │ │ ├── UploadDemo4.tsx
│ │ │ │ │ └── test.spec.ts
│ │ │ │ ├── fileCard.tsx
│ │ │ │ ├── index-en-US.md
│ │ │ │ ├── index.md
│ │ │ │ ├── index.tsx
│ │ │ │ └── interface.ts
│ │ │ ├── userGuide
│ │ │ │ ├── __stories__
│ │ │ │ │ └── Demo.stories.tsx
│ │ │ │ ├── __test__
│ │ │ │ │ ├── UserGuideDemo.tsx
│ │ │ │ │ └── test.spec.ts
│ │ │ │ └── index.tsx
│ │ │ └── withVModel
│ │ │ │ ├── WithVModel.tsx
│ │ │ │ ├── __test__
│ │ │ │ ├── WithVModelDemo.tsx
│ │ │ │ └── test.spec.ts
│ │ │ │ └── index.ts
│ │ ├── docDemo.scss
│ │ ├── env.d.ts
│ │ ├── main.scss
│ │ └── main.ts
│ ├── tsconfig.json
│ ├── vite.config.ts
│ └── web-types.json
└── vite-plugin-semi-theme
│ ├── CHANGELOG.md
│ ├── LICENSE
│ ├── README.md
│ ├── build.config.ts
│ ├── package.json
│ ├── src
│ ├── componentName.ts
│ ├── index.ts
│ └── types.ts
│ └── tsconfig.json
├── patches
├── @douyinfe__semi-foundation@2.63.0.patch
├── @douyinfe__semi-foundation@2.73.0.patch
├── @vue__repl@4.2.1.patch
├── @vue__repl@4.3.1.patch
└── @vue__repl@4.4.2.patch
├── pnpm-lock.yaml
├── pnpm-workspace.yaml
├── script
├── build-svg.js
└── version.js
├── stories
├── Button.stories.ts
├── Button.vue
├── Header.stories.tsx
├── Header.vue
├── Introduction.mdx
├── Page.stories.ts
├── Page.vue
├── assets
│ ├── code-brackets.svg
│ ├── colors.svg
│ ├── comments.svg
│ ├── direction.svg
│ ├── flow.svg
│ ├── plugin.svg
│ ├── repo.svg
│ └── stackalt.svg
├── button.css
├── header.css
└── page.css
├── tsconfig.json
├── vite.config.ts
└── vitest.config.ts
/.changeset/README.md:
--------------------------------------------------------------------------------
1 | # Changesets
2 |
3 | Hello and welcome! This folder has been automatically generated by `@changesets/cli`, a build tool that works
4 | with multi-package repos, or single-package repos to help you version and publish your code. You can
5 | find the full documentation for it [in our repository](https://github.com/changesets/changesets)
6 |
7 | We have a quick list of common questions to get you started engaging with this project in
8 | [our documentation](https://github.com/changesets/changesets/blob/main/docs/common-questions.md)
9 |
--------------------------------------------------------------------------------
/.changeset/config.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://unpkg.com/@changesets/config@2.0.0/schema.json",
3 | "changelog": "@changesets/cli/changelog",
4 | "commit": false,
5 | "fixed": [],
6 | "linked": [],
7 | "access": "restricted",
8 | "baseBranch": "master",
9 | "updateInternalDependencies": "patch",
10 | "ignore": []
11 | }
12 |
--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE/config.yml:
--------------------------------------------------------------------------------
1 | blank_issues_enabled: false
2 | contact_links:
3 | - name: 使用问题
4 | url: https://semi-ui-vue.netlify.app
5 | about: 请先查阅我们的文档
6 |
--------------------------------------------------------------------------------
/.idea/.gitignore:
--------------------------------------------------------------------------------
1 | # 默认忽略的文件
2 | /shelf/
3 | /workspace.xml
4 | # 基于编辑器的 HTTP 客户端请求
5 | /httpRequests/
6 | # Datasource local storage ignored files
7 | /dataSources/
8 | /dataSources.local.xml
9 |
--------------------------------------------------------------------------------
/.idea/jsLibraryMappings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/.idea/modules.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/.idea/vcs.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/.npmrc.bak:
--------------------------------------------------------------------------------
1 | registry=https://registry.npmmirror.com/
2 |
3 | # registry=https://registry.npmjs.org/
4 | auto-install-peers=true
5 |
6 |
--------------------------------------------------------------------------------
/.prettierrc.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | proseWrap: 'never',
3 | printWidth: 120,
4 | tabWidth: 2,
5 | trailingComma: 'es5',
6 | bracketSpacing: true,
7 | singleQuote: true,
8 | useTabs: false,
9 | semi: true,
10 | };
11 |
--------------------------------------------------------------------------------
/.storybook/preview-head.html:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/.storybook/preview.ts:
--------------------------------------------------------------------------------
1 | export const parameters = {
2 | options: {
3 | storySort: (a, b) => {
4 | return a.id.localeCompare(b.id, undefined, { numeric: true })
5 | },
6 | },
7 | // actions: {
8 | // argTypesRegex: "^on[A-Z].*",
9 | // },
10 | tags: ['autodocs'],
11 | controls: {
12 | matchers: {
13 | color: /(background|color)$/i,
14 | date: /Date$/,
15 | },
16 | },
17 | }
18 |
--------------------------------------------------------------------------------
/docs/.vitepress/mdPlugin/overview.ts:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rashagu/semi-design-vue/455ba66bae30c00260f9c8e721f2e618018c9274/docs/.vitepress/mdPlugin/overview.ts
--------------------------------------------------------------------------------
/docs/.vitepress/theme/index.ts:
--------------------------------------------------------------------------------
1 | // .vitepress/theme/index.js
2 |
3 | // You can directly import Vue files in the theme entry
4 | // VitePress is pre-configured with @vitejs/plugin-vue.
5 | import DefaultTheme from 'vitepress/theme'
6 | //@ts-ignore
7 | import myTheme from './layout'
8 |
9 | export default {
10 | // ...DefaultTheme,
11 | ...myTheme
12 | }
13 |
--------------------------------------------------------------------------------
/docs/images/docIcons/dark_mode.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/docs/images/docIcons/doc-a11y.svg:
--------------------------------------------------------------------------------
1 |
5 |
--------------------------------------------------------------------------------
/docs/images/docIcons/doc-backtop.svg:
--------------------------------------------------------------------------------
1 |
5 |
--------------------------------------------------------------------------------
/docs/images/docIcons/doc-badge.svg:
--------------------------------------------------------------------------------
1 |
5 |
--------------------------------------------------------------------------------
/docs/images/docIcons/doc-card.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/docs/images/docIcons/doc-cascader.svg:
--------------------------------------------------------------------------------
1 |
6 |
--------------------------------------------------------------------------------
/docs/images/docIcons/doc-changelog.svg:
--------------------------------------------------------------------------------
1 |
7 |
--------------------------------------------------------------------------------
/docs/images/docIcons/doc-checkbox.svg:
--------------------------------------------------------------------------------
1 |
5 |
--------------------------------------------------------------------------------
/docs/images/docIcons/doc-codesandbox.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/docs/images/docIcons/doc-darkmode.svg:
--------------------------------------------------------------------------------
1 |
5 |
--------------------------------------------------------------------------------
/docs/images/docIcons/doc-intro.svg:
--------------------------------------------------------------------------------
1 |
5 |
--------------------------------------------------------------------------------
/docs/images/docIcons/doc-layout.svg:
--------------------------------------------------------------------------------
1 |
8 |
--------------------------------------------------------------------------------
/docs/images/docIcons/doc-migrate.svg:
--------------------------------------------------------------------------------
1 |
5 |
--------------------------------------------------------------------------------
/docs/images/docIcons/doc-modal.svg:
--------------------------------------------------------------------------------
1 |
7 |
--------------------------------------------------------------------------------
/docs/images/docIcons/doc-navigation.svg:
--------------------------------------------------------------------------------
1 |
12 |
--------------------------------------------------------------------------------
/docs/images/docIcons/doc-overflowList.svg:
--------------------------------------------------------------------------------
1 |
7 |
--------------------------------------------------------------------------------
/docs/images/docIcons/doc-pagination.svg:
--------------------------------------------------------------------------------
1 |
7 |
--------------------------------------------------------------------------------
/docs/images/docIcons/doc-popover-1.svg:
--------------------------------------------------------------------------------
1 |
6 |
--------------------------------------------------------------------------------
/docs/images/docIcons/doc-popover.svg:
--------------------------------------------------------------------------------
1 |
6 |
--------------------------------------------------------------------------------
/docs/images/docIcons/doc-progress.svg:
--------------------------------------------------------------------------------
1 |
5 |
--------------------------------------------------------------------------------
/docs/images/docIcons/doc-radio.svg:
--------------------------------------------------------------------------------
1 |
5 |
--------------------------------------------------------------------------------
/docs/images/docIcons/doc-sidesheet.svg:
--------------------------------------------------------------------------------
1 |
6 |
--------------------------------------------------------------------------------
/docs/images/docIcons/doc-skeleton.svg:
--------------------------------------------------------------------------------
1 |
9 |
--------------------------------------------------------------------------------
/docs/images/docIcons/doc-slider.svg:
--------------------------------------------------------------------------------
1 |
9 |
--------------------------------------------------------------------------------
/docs/images/docIcons/doc-space.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/docs/images/docIcons/doc-steps.svg:
--------------------------------------------------------------------------------
1 |
6 |
--------------------------------------------------------------------------------
/docs/images/docIcons/doc-switch.svg:
--------------------------------------------------------------------------------
1 |
7 |
--------------------------------------------------------------------------------
/docs/images/docIcons/doc-timeline.svg:
--------------------------------------------------------------------------------
1 |
7 |
--------------------------------------------------------------------------------
/docs/images/docIcons/doc-timepicker.svg:
--------------------------------------------------------------------------------
1 |
8 |
--------------------------------------------------------------------------------
/docs/images/docIcons/doc-token.svg:
--------------------------------------------------------------------------------
1 |
7 |
--------------------------------------------------------------------------------
/docs/images/docIcons/doc-userGuide.svg:
--------------------------------------------------------------------------------
1 |
7 |
--------------------------------------------------------------------------------
/docs/images/docIcons/doc-vector.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/docs/images/docIcons/doc-webcomponents.svg:
--------------------------------------------------------------------------------
1 |
7 |
--------------------------------------------------------------------------------
/docs/images/docIcons/index.js:
--------------------------------------------------------------------------------
1 | const iconMap = {};
2 |
3 | const req = require.context('@svgr/webpack?dimensions=true&icon=true!.', false, /.svg$/);
4 | req.keys().forEach(id => {
5 | const x = req(id).default;
6 | const svgName = id.replace('./', '').replace('.svg', '');
7 | iconMap[svgName] = x;
8 | });
9 |
10 | export default iconMap;
--------------------------------------------------------------------------------
/docs/images/docIcons/semi-logo.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/docs/images/semi-icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rashagu/semi-design-vue/455ba66bae30c00260f9c8e721f2e618018c9274/docs/images/semi-icon.png
--------------------------------------------------------------------------------
/docs/src/public/BingSiteAuth.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | 477BB5F1791BCE76FCB6478D6DA68572
4 |
--------------------------------------------------------------------------------
/docs/src/public/font/Inter-Bold.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rashagu/semi-design-vue/455ba66bae30c00260f9c8e721f2e618018c9274/docs/src/public/font/Inter-Bold.ttf
--------------------------------------------------------------------------------
/docs/src/public/font/Inter-Regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rashagu/semi-design-vue/455ba66bae30c00260f9c8e721f2e618018c9274/docs/src/public/font/Inter-Regular.ttf
--------------------------------------------------------------------------------
/docs/src/public/semiIconsLab/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rashagu/semi-design-vue/455ba66bae30c00260f9c8e721f2e618018c9274/docs/src/public/semiIconsLab/favicon.ico
--------------------------------------------------------------------------------
/docs/src/zh-CN/basic/divider/demo/DividerDemo0.vue:
--------------------------------------------------------------------------------
1 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/docs/src/zh-CN/basic/divider/demo/DividerDemo1.vue:
--------------------------------------------------------------------------------
1 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/docs/src/zh-CN/basic/grid/demo/FlexOder.vue:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
7 |
8 | col-4
9 | col-3
10 | col-2
11 | col-1
12 |
13 |
14 |
15 |
16 |
17 |
--------------------------------------------------------------------------------
/docs/src/zh-CN/basic/space/demo/base.vue:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/docs/src/zh-CN/basic/space/demo/verticalDemo.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
12 |
13 |
--------------------------------------------------------------------------------
/docs/src/zh-CN/basic/space/demo/wrapDemo.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
11 |
12 |
13 |
14 |
17 |
--------------------------------------------------------------------------------
/docs/src/zh-CN/input/autocomplete/demo/disabledAutoComplete.vue:
--------------------------------------------------------------------------------
1 |
2 |
12 |
13 |
14 |
17 |
18 |
--------------------------------------------------------------------------------
/docs/src/zh-CN/input/button/demo/base.vue:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
20 |
--------------------------------------------------------------------------------
/docs/src/zh-CN/input/content-guidelines/index.md:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rashagu/semi-design-vue/455ba66bae30c00260f9c8e721f2e618018c9274/docs/src/zh-CN/input/content-guidelines/index.md
--------------------------------------------------------------------------------
/docs/src/zh-CN/input/popover/index.md:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rashagu/semi-design-vue/455ba66bae30c00260f9c8e721f2e618018c9274/docs/src/zh-CN/input/popover/index.md
--------------------------------------------------------------------------------
/env.d.ts:
--------------------------------------------------------------------------------
1 | ///
2 |
--------------------------------------------------------------------------------
/netlify.toml:
--------------------------------------------------------------------------------
1 | [build.environment]
2 | PNPM_VERSION = "10.x"
3 |
--------------------------------------------------------------------------------
/packages/semi-animation-vue/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules
2 | .DS_Store
3 | dist
4 | dist-ssr
5 | *.local
6 |
7 | # 项目排除路径
8 | /src/packages/icons/svgs/
--------------------------------------------------------------------------------
/packages/semi-animation-vue/README.md:
--------------------------------------------------------------------------------
1 | # semi-animation-vue
2 | `npm publish --access public`
3 |
--------------------------------------------------------------------------------
/packages/semi-animation-vue/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | Vite App
8 |
9 |
10 |
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/packages/semi-animation-vue/index.ts:
--------------------------------------------------------------------------------
1 | export { default as StyledAnimation } from './src/animation/StyledAnimation';
2 | export { default as StyledTransition } from './src/animation/StyledTransition';
3 | export { default as Animation } from './src/animation/Animation';
4 | export { default as KeyFrames } from './src/animation/KeyFrames';
5 | export { default as Transition } from './src/animation/Transition';
6 | export { interpolate, presets } from '@douyinfe/semi-animation';
7 |
--------------------------------------------------------------------------------
/packages/semi-animation-vue/public/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rashagu/semi-design-vue/455ba66bae30c00260f9c8e721f2e618018c9274/packages/semi-animation-vue/public/favicon.ico
--------------------------------------------------------------------------------
/packages/semi-animation-vue/src/__test__/test.spec.ts:
--------------------------------------------------------------------------------
1 | import {h} from 'vue'
2 | import {shallowMount, mount} from "@vue/test-utils";
3 | import { expect, test } from 'vitest'
4 |
5 | test('render with scoped-slot', async () => {
6 | const HelloWorld: any = {
7 | render() {
8 | // @ts-ignore
9 | return (h('div', {id:'a'}, '123'))
10 | },
11 | }
12 | const wrapper = shallowMount(HelloWorld, {})
13 |
14 | const profileLink = wrapper.get('#a')
15 | expect(profileLink.text()).toEqual('123')
16 | })
17 |
--------------------------------------------------------------------------------
/packages/semi-animation-vue/src/__test__/test2.spec.ts:
--------------------------------------------------------------------------------
1 | import {shallowMount, mount} from "@vue/test-utils";
2 | import { expect, test } from 'vitest'
3 | import App from '../App'
4 |
5 | test('render with scoped-slot', async () => {
6 | const wrapper = shallowMount(App, {})
7 |
8 | const profileLink = wrapper.get('.aa')
9 | expect(profileLink.text()).toEqual('123')
10 | })
11 |
--------------------------------------------------------------------------------
/packages/semi-animation-vue/src/animation/index.ts:
--------------------------------------------------------------------------------
1 | export { default as StyledAnimation } from './StyledAnimation';
2 | export { default as StyledTransition } from './StyledTransition';
3 | export { default as Animation } from './Animation';
4 | export { default as KeyFrames } from './KeyFrames';
5 | export { default as Transition } from './Transition';
6 | export { interpolate, presets } from '@douyinfe/semi-animation';
7 |
--------------------------------------------------------------------------------
/packages/semi-animation-vue/src/animation/utils/invokeFns.spec.ts:
--------------------------------------------------------------------------------
1 | import { expect, test, describe } from 'vitest'
2 | import {mount} from "@vue/test-utils";
3 | import invokeFns from "./invokeFns";
4 |
5 | test('TypoDemo test', async () => {
6 | invokeFns([
7 | ()=>{}
8 | ], [1,2,3])
9 | })
10 |
--------------------------------------------------------------------------------
/packages/semi-animation-vue/src/animation/utils/invokeFns.ts:
--------------------------------------------------------------------------------
1 | export default function invokeFns(fns: any[], args: any[] = []) {
2 | if (Array.isArray(fns) && fns.length) {
3 | fns.forEach(fn => {
4 | if (typeof fn === 'function') {
5 | fn(...args);
6 | }
7 | });
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/packages/semi-animation-vue/src/animation/utils/noop.ts:
--------------------------------------------------------------------------------
1 | // eslint-disable-next-line @typescript-eslint/no-empty-function
2 | export default function noop() { }
--------------------------------------------------------------------------------
/packages/semi-animation-vue/src/animation/utils/object.ts:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rashagu/semi-design-vue/455ba66bae30c00260f9c8e721f2e618018c9274/packages/semi-animation-vue/src/animation/utils/object.ts
--------------------------------------------------------------------------------
/packages/semi-animation-vue/src/assets/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rashagu/semi-design-vue/455ba66bae30c00260f9c8e721f2e618018c9274/packages/semi-animation-vue/src/assets/logo.png
--------------------------------------------------------------------------------
/packages/semi-animation-vue/src/env.d.ts:
--------------------------------------------------------------------------------
1 | ///
2 | ///
3 |
4 | declare module '*.vue' {
5 | import { DefineComponent } from 'vue'
6 | // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/ban-types
7 | const component: DefineComponent<{}, {}, any>
8 | export default component
9 | }
10 |
--------------------------------------------------------------------------------
/packages/semi-animation-vue/src/main.scss:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rashagu/semi-design-vue/455ba66bae30c00260f9c8e721f2e618018c9274/packages/semi-animation-vue/src/main.scss
--------------------------------------------------------------------------------
/packages/semi-animation-vue/src/main.ts:
--------------------------------------------------------------------------------
1 | import { createApp } from 'vue'
2 | import App from './App'
3 | import './main.scss'
4 |
5 | createApp(App).mount('#app')
6 |
--------------------------------------------------------------------------------
/packages/semi-animation-vue/src/tsconfig.esm.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "../tsconfig.json",
3 | "exclude": ["./**/*.spec.*",
4 | "./main.ts", "../script/*", "../components",
5 | "./Comp1",
6 | "./App.tsx",
7 | "./__test__",
8 | "../scripts"
9 | ],
10 | "include": ["../index.ts"],
11 | "compilerOptions": {
12 | "outDir": "../lib",
13 | "strictNullChecks": false,
14 | "module": "ES6",
15 | "target": "ES6",
16 | "types": ["vite/client", "node"]
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/packages/semi-animation-vue/tsconfig.esm.json:
--------------------------------------------------------------------------------
1 | {
2 | "files": [],
3 | "references": [
4 | {
5 | "path": "./src/tsconfig.esm.json"
6 | },
7 | ]
8 | }
9 |
--------------------------------------------------------------------------------
/packages/semi-icons-lab-vue/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules
2 | .DS_Store
3 | dist
4 | dist-ssr
5 | *.local
6 |
7 | # 项目排除路径
8 | # /src/icons/svgs/
9 |
--------------------------------------------------------------------------------
/packages/semi-icons-lab-vue/README.md:
--------------------------------------------------------------------------------
1 | # semi-icons of vue3
2 |
--------------------------------------------------------------------------------
/packages/semi-icons-lab-vue/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | Vite App
8 |
9 |
10 |
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/packages/semi-icons-lab-vue/public/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rashagu/semi-design-vue/455ba66bae30c00260f9c8e721f2e618018c9274/packages/semi-icons-lab-vue/public/favicon.ico
--------------------------------------------------------------------------------
/packages/semi-icons-lab-vue/scripts/.prettierrc.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | proseWrap: 'never',
3 | printWidth: 120,
4 | tabWidth: 4,
5 | trailingComma: 'es5',
6 | bracketSpacing: true,
7 | singleQuote: true,
8 | useTabs: false,
9 | semi: true,
10 | };
11 |
--------------------------------------------------------------------------------
/packages/semi-icons-lab-vue/scripts/compileLib.cjs:
--------------------------------------------------------------------------------
1 | const gulp = require('gulp');
2 | require('../gulpfile.cjs');
3 |
4 | function compileLib() {
5 | const taskInstance = gulp.task('compileLib');
6 | if (taskInstance === undefined) {
7 | console.error('no task named compileLib registered');
8 | return;
9 | }
10 | taskInstance.apply(gulp);
11 | }
12 |
13 | compileLib();
14 |
--------------------------------------------------------------------------------
/packages/semi-icons-lab-vue/src/__test__/test.spec.ts:
--------------------------------------------------------------------------------
1 | import {h} from 'vue'
2 | import {shallowMount, mount} from "@vue/test-utils";
3 | import { expect, test } from 'vitest'
4 |
5 | test('render with scoped-slot', async () => {
6 | const HelloWorld: any = {
7 | render() {
8 | // @ts-ignore
9 | return (h('div', {id:'a'}, '123'))
10 | },
11 | }
12 | const wrapper = shallowMount(HelloWorld, {})
13 |
14 | const profileLink = wrapper.get('#a')
15 | expect(profileLink.text()).toEqual('123')
16 | })
17 |
--------------------------------------------------------------------------------
/packages/semi-icons-lab-vue/src/__test__/test2.spec.ts:
--------------------------------------------------------------------------------
1 | import {shallowMount, mount} from "@vue/test-utils";
2 | import { expect, test } from 'vitest'
3 | import App from '../App'
4 |
5 | test('render with scoped-slot', async () => {
6 | const wrapper = shallowMount(App, {})
7 |
8 | const profileLink = wrapper.get('.aa')
9 | expect(profileLink.text()).toEqual('123')
10 | })
11 |
--------------------------------------------------------------------------------
/packages/semi-icons-lab-vue/src/assets/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rashagu/semi-design-vue/455ba66bae30c00260f9c8e721f2e618018c9274/packages/semi-icons-lab-vue/src/assets/logo.png
--------------------------------------------------------------------------------
/packages/semi-icons-lab-vue/src/env.d.ts:
--------------------------------------------------------------------------------
1 | ///
2 | ///
3 |
4 | declare module '*.vue' {
5 | import { DefineComponent } from 'vue'
6 | // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/ban-types
7 | const component: DefineComponent<{}, {}, any>
8 | export default component
9 | }
10 |
--------------------------------------------------------------------------------
/packages/semi-icons-lab-vue/src/icons/env.ts:
--------------------------------------------------------------------------------
1 | export const BASE_CLASS_PREFIX = 'semi';
--------------------------------------------------------------------------------
/packages/semi-icons-lab-vue/src/icons/styles/variables.scss:
--------------------------------------------------------------------------------
1 |
2 | $width-icon_extra_small: $width-icon-extra-small; // 图标尺寸 - 超小
3 | $width-icon_small: $width-icon-small; // 图标尺寸 - 小
4 | $width-icon_medium: $width-icon-medium; // 图标尺寸 - 中
5 | $width-icon_large: $width-icon-large; // 图标尺寸 - 大
6 | $width-icon_extra_large: $width-icon-extra-large; // 图标尺寸 - 超大
7 | $motion-icon_spin-animationDuration: .6s;
--------------------------------------------------------------------------------
/packages/semi-icons-lab-vue/src/icons/svgs/accessibility.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/packages/semi-icons-lab-vue/src/icons/svgs/back-top.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/packages/semi-icons-lab-vue/src/icons/svgs/badge.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/packages/semi-icons-lab-vue/src/icons/svgs/banner.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/packages/semi-icons-lab-vue/src/icons/svgs/button.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/packages/semi-icons-lab-vue/src/icons/svgs/card.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/packages/semi-icons-lab-vue/src/icons/svgs/cascader.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/packages/semi-icons-lab-vue/src/icons/svgs/changelog.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/packages/semi-icons-lab-vue/src/icons/svgs/checkbox.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/packages/semi-icons-lab-vue/src/icons/svgs/dark-mode.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/packages/semi-icons-lab-vue/src/icons/svgs/descriptions.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/packages/semi-icons-lab-vue/src/icons/svgs/divider.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/packages/semi-icons-lab-vue/src/icons/svgs/intro.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/packages/semi-icons-lab-vue/src/icons/svgs/layout.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/packages/semi-icons-lab-vue/src/icons/svgs/modal.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/packages/semi-icons-lab-vue/src/icons/svgs/navigation.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/packages/semi-icons-lab-vue/src/icons/svgs/overflow.svg:
--------------------------------------------------------------------------------
1 |
7 |
--------------------------------------------------------------------------------
/packages/semi-icons-lab-vue/src/icons/svgs/pagination.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/packages/semi-icons-lab-vue/src/icons/svgs/popconfirm.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/packages/semi-icons-lab-vue/src/icons/svgs/popover.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/packages/semi-icons-lab-vue/src/icons/svgs/progress.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/packages/semi-icons-lab-vue/src/icons/svgs/radio.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/packages/semi-icons-lab-vue/src/icons/svgs/side-sheet.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/packages/semi-icons-lab-vue/src/icons/svgs/skeleton.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/packages/semi-icons-lab-vue/src/icons/svgs/slider.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/packages/semi-icons-lab-vue/src/icons/svgs/space.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/packages/semi-icons-lab-vue/src/icons/svgs/steps.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/packages/semi-icons-lab-vue/src/icons/svgs/switch.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/packages/semi-icons-lab-vue/src/icons/svgs/time-picker.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/packages/semi-icons-lab-vue/src/icons/svgs/timeline.svg:
--------------------------------------------------------------------------------
1 |
7 |
--------------------------------------------------------------------------------
/packages/semi-icons-lab-vue/src/icons/svgs/token.svg:
--------------------------------------------------------------------------------
1 |
7 |
--------------------------------------------------------------------------------
/packages/semi-icons-lab-vue/src/icons/svgs/webcomponents.svg:
--------------------------------------------------------------------------------
1 |
7 |
--------------------------------------------------------------------------------
/packages/semi-icons-lab-vue/src/main.scss:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rashagu/semi-design-vue/455ba66bae30c00260f9c8e721f2e618018c9274/packages/semi-icons-lab-vue/src/main.scss
--------------------------------------------------------------------------------
/packages/semi-icons-lab-vue/src/main.ts:
--------------------------------------------------------------------------------
1 | import { createApp } from 'vue'
2 | import App from './App'
3 | import './main.scss'
4 |
5 | createApp(App).mount('#app')
6 |
--------------------------------------------------------------------------------
/packages/semi-icons-lab-vue/src/tsconfig.esm.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "../tsconfig.json",
3 | "exclude": ["./**/*.spec.*",
4 | "./main.ts", "../script/*", "../components",
5 | "./Comp1",
6 | "./App.tsx",
7 | "./__test__",
8 | "./**/__test__",
9 | "../scripts"
10 | ],
11 | "compilerOptions": {
12 | "rootDir": "./icons",
13 | "outDir": "../lib",
14 | "strictNullChecks": false,
15 | "module": "ES6",
16 | "target": "ES6",
17 | "jsx": "preserve",
18 | "types": ["vite/client", "node"],
19 | "noImplicitAny": false
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/packages/semi-icons-lab-vue/tsconfig.esm.json:
--------------------------------------------------------------------------------
1 | {
2 | "files": [],
3 | "references": [
4 | {
5 | "path": "./src/tsconfig.esm.json"
6 | },
7 | ]
8 | }
9 |
--------------------------------------------------------------------------------
/packages/semi-icons-vue/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules
2 | .DS_Store
3 | dist
4 | dist-ssr
5 | *.local
6 |
7 | # 项目排除路径
8 | # /src/icons/svgs/
9 |
--------------------------------------------------------------------------------
/packages/semi-icons-vue/README.md:
--------------------------------------------------------------------------------
1 | # semi-icons of vue3
2 |
--------------------------------------------------------------------------------
/packages/semi-icons-vue/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | Vite App
8 |
9 |
10 |
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/packages/semi-icons-vue/public/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rashagu/semi-design-vue/455ba66bae30c00260f9c8e721f2e618018c9274/packages/semi-icons-vue/public/favicon.ico
--------------------------------------------------------------------------------
/packages/semi-icons-vue/scripts/.prettierrc.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | proseWrap: 'never',
3 | printWidth: 120,
4 | tabWidth: 4,
5 | trailingComma: 'es5',
6 | bracketSpacing: true,
7 | singleQuote: true,
8 | useTabs: false,
9 | semi: true,
10 | };
11 |
--------------------------------------------------------------------------------
/packages/semi-icons-vue/scripts/compileLib.cjs:
--------------------------------------------------------------------------------
1 | const gulp = require('gulp');
2 | require('../gulpfile.cjs');
3 |
4 | function compileLib() {
5 | const taskInstance = gulp.task('compileLib');
6 | if (taskInstance === undefined) {
7 | console.error('no task named compileLib registered');
8 | return;
9 | }
10 | taskInstance.apply(gulp);
11 | }
12 |
13 | compileLib();
14 |
--------------------------------------------------------------------------------
/packages/semi-icons-vue/src/__test__/test.spec.ts:
--------------------------------------------------------------------------------
1 | import {h} from 'vue'
2 | import {shallowMount, mount} from "@vue/test-utils";
3 | import { expect, test } from 'vitest'
4 |
5 | test('render with scoped-slot', async () => {
6 | const HelloWorld: any = {
7 | render() {
8 | // @ts-ignore
9 | return (h('div', {id:'a'}, '123'))
10 | },
11 | }
12 | const wrapper = shallowMount(HelloWorld, {})
13 |
14 | const profileLink = wrapper.get('#a')
15 | expect(profileLink.text()).toEqual('123')
16 | })
17 |
--------------------------------------------------------------------------------
/packages/semi-icons-vue/src/__test__/test2.spec.ts:
--------------------------------------------------------------------------------
1 | import {shallowMount, mount} from "@vue/test-utils";
2 | import { expect, test } from 'vitest'
3 | import App from '../App'
4 |
5 | test('render with scoped-slot', async () => {
6 | const wrapper = shallowMount(App, {})
7 |
8 | const profileLink = wrapper.get('.aa')
9 | expect(profileLink.text()).toEqual('123')
10 | })
11 |
--------------------------------------------------------------------------------
/packages/semi-icons-vue/src/assets/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rashagu/semi-design-vue/455ba66bae30c00260f9c8e721f2e618018c9274/packages/semi-icons-vue/src/assets/logo.png
--------------------------------------------------------------------------------
/packages/semi-icons-vue/src/env.d.ts:
--------------------------------------------------------------------------------
1 | ///
2 | ///
3 |
4 | declare module '*.vue' {
5 | import { DefineComponent } from 'vue'
6 | // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/ban-types
7 | const component: DefineComponent<{}, {}, any>
8 | export default component
9 | }
10 |
--------------------------------------------------------------------------------
/packages/semi-icons-vue/src/icons/components/interface.ts:
--------------------------------------------------------------------------------
1 |
2 | // 约束vuePropsType
3 | import type { PropType } from 'vue';
4 |
5 | export type IsOptional = {} extends Pick ? true : false;
6 | export type CombineProps = {
7 | [K in keyof Required]: IsOptional extends true ?({
8 | type: PropType;
9 | default?: any;
10 | required?: false;
11 | } | PropType):({
12 | type: PropType;
13 | default?: any;
14 | required: true;
15 | })
16 | }
17 |
--------------------------------------------------------------------------------
/packages/semi-icons-vue/src/icons/env.ts:
--------------------------------------------------------------------------------
1 | export const BASE_CLASS_PREFIX = 'semi';
--------------------------------------------------------------------------------
/packages/semi-icons-vue/src/icons/styles/variables.scss:
--------------------------------------------------------------------------------
1 |
2 | $width-icon_extra_small: $width-icon-extra-small; // 图标尺寸 - 超小
3 | $width-icon_small: $width-icon-small; // 图标尺寸 - 小
4 | $width-icon_medium: $width-icon-medium; // 图标尺寸 - 中
5 | $width-icon_large: $width-icon-large; // 图标尺寸 - 大
6 | $width-icon_extra_large: $width-icon-extra-large; // 图标尺寸 - 超大
7 | $motion-icon_spin-animationDuration: .6s;
--------------------------------------------------------------------------------
/packages/semi-icons-vue/src/icons/svgs/align_h_left_stroked.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/packages/semi-icons-vue/src/icons/svgs/archive.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/packages/semi-icons-vue/src/icons/svgs/arrow_down.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/packages/semi-icons-vue/src/icons/svgs/arrow_down_left.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/packages/semi-icons-vue/src/icons/svgs/arrow_down_right.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/packages/semi-icons-vue/src/icons/svgs/arrow_right.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/packages/semi-icons-vue/src/icons/svgs/arrow_up_left.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/packages/semi-icons-vue/src/icons/svgs/arrow_up_right.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/packages/semi-icons-vue/src/icons/svgs/backward.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/packages/semi-icons-vue/src/icons/svgs/bold.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/packages/semi-icons-vue/src/icons/svgs/bolt.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/packages/semi-icons-vue/src/icons/svgs/book_stroked.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/packages/semi-icons-vue/src/icons/svgs/bookmark.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/packages/semi-icons-vue/src/icons/svgs/bottom_center_stroked.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/packages/semi-icons-vue/src/icons/svgs/bottom_left_stroked.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/packages/semi-icons-vue/src/icons/svgs/bottom_right_stroked.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/packages/semi-icons-vue/src/icons/svgs/box.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/packages/semi-icons-vue/src/icons/svgs/button_stroked.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/packages/semi-icons-vue/src/icons/svgs/bytedance_logo.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/packages/semi-icons-vue/src/icons/svgs/caretdown.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/packages/semi-icons-vue/src/icons/svgs/caretup.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/packages/semi-icons-vue/src/icons/svgs/carousel_stroked.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/packages/semi-icons-vue/src/icons/svgs/center_left_stroked.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/packages/semi-icons-vue/src/icons/svgs/center_right_stroked.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/packages/semi-icons-vue/src/icons/svgs/checkbox_indeterminate.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/packages/semi-icons-vue/src/icons/svgs/checkbox_tick.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/packages/semi-icons-vue/src/icons/svgs/chevron_down.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/packages/semi-icons-vue/src/icons/svgs/chevron_down_stroked.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/packages/semi-icons-vue/src/icons/svgs/chevron_left.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/packages/semi-icons-vue/src/icons/svgs/chevron_right.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/packages/semi-icons-vue/src/icons/svgs/chevron_right_stroked.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/packages/semi-icons-vue/src/icons/svgs/chevron_up.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/packages/semi-icons-vue/src/icons/svgs/clock.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/packages/semi-icons-vue/src/icons/svgs/cloud.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/packages/semi-icons-vue/src/icons/svgs/columns_stroked.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/packages/semi-icons-vue/src/icons/svgs/component.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/packages/semi-icons-vue/src/icons/svgs/component_stroked.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/packages/semi-icons-vue/src/icons/svgs/connection_point_1.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/packages/semi-icons-vue/src/icons/svgs/connection_point_2.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/packages/semi-icons-vue/src/icons/svgs/contrast.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/packages/semi-icons-vue/src/icons/svgs/copy.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/packages/semi-icons-vue/src/icons/svgs/corner_radius_stroked.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/packages/semi-icons-vue/src/icons/svgs/credit_card.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/packages/semi-icons-vue/src/icons/svgs/crop.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/packages/semi-icons-vue/src/icons/svgs/desktop.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/packages/semi-icons-vue/src/icons/svgs/disc.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/packages/semi-icons-vue/src/icons/svgs/duration.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/packages/semi-icons-vue/src/icons/svgs/eye_opened.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/packages/semi-icons-vue/src/icons/svgs/facebook.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/packages/semi-icons-vue/src/icons/svgs/fast_forward.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/packages/semi-icons-vue/src/icons/svgs/fast_foward.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/packages/semi-icons-vue/src/icons/svgs/filled_arrow_down.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/packages/semi-icons-vue/src/icons/svgs/filled_arrow_up.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/packages/semi-icons-vue/src/icons/svgs/filter.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/packages/semi-icons-vue/src/icons/svgs/folder.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/packages/semi-icons-vue/src/icons/svgs/folder_stroked.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/packages/semi-icons-vue/src/icons/svgs/font.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/packages/semi-icons-vue/src/icons/svgs/forward.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/packages/semi-icons-vue/src/icons/svgs/gallery.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/packages/semi-icons-vue/src/icons/svgs/grid-rectangle.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/packages/semi-icons-vue/src/icons/svgs/grid-square.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/packages/semi-icons-vue/src/icons/svgs/histogram.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/packages/semi-icons-vue/src/icons/svgs/home.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/packages/semi-icons-vue/src/icons/svgs/inherit.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/packages/semi-icons-vue/src/icons/svgs/inherit_stroked.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/packages/semi-icons-vue/src/icons/svgs/inner_section_stroked.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/packages/semi-icons-vue/src/icons/svgs/italic.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/packages/semi-icons-vue/src/icons/svgs/kanban.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/packages/semi-icons-vue/src/icons/svgs/key.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/packages/semi-icons-vue/src/icons/svgs/like_heart.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/packages/semi-icons-vue/src/icons/svgs/list_view.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/packages/semi-icons-vue/src/icons/svgs/lock.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/packages/semi-icons-vue/src/icons/svgs/lock_stroked.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/packages/semi-icons-vue/src/icons/svgs/mail.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/packages/semi-icons-vue/src/icons/svgs/mail_stroked.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/packages/semi-icons-vue/src/icons/svgs/mail_stroked_1.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/packages/semi-icons-vue/src/icons/svgs/map_pin.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/packages/semi-icons-vue/src/icons/svgs/minus.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/packages/semi-icons-vue/src/icons/svgs/minus_circle.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/packages/semi-icons-vue/src/icons/svgs/minus_circle_stroked.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/packages/semi-icons-vue/src/icons/svgs/minus_stroked.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/packages/semi-icons-vue/src/icons/svgs/modal_stroked.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/packages/semi-icons-vue/src/icons/svgs/monitor_stroked.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/packages/semi-icons-vue/src/icons/svgs/moon.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/packages/semi-icons-vue/src/icons/svgs/music.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/packages/semi-icons-vue/src/icons/svgs/option.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/packages/semi-icons-vue/src/icons/svgs/pause.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/packages/semi-icons-vue/src/icons/svgs/phone.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/packages/semi-icons-vue/src/icons/svgs/pie_chart_stroked.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/packages/semi-icons-vue/src/icons/svgs/play.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/packages/semi-icons-vue/src/icons/svgs/play_circle.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/packages/semi-icons-vue/src/icons/svgs/plus.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/packages/semi-icons-vue/src/icons/svgs/plus_stroked.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/packages/semi-icons-vue/src/icons/svgs/qingyan.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/packages/semi-icons-vue/src/icons/svgs/radio.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/packages/semi-icons-vue/src/icons/svgs/reply.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/packages/semi-icons-vue/src/icons/svgs/restart.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/packages/semi-icons-vue/src/icons/svgs/rows_stroked.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/packages/semi-icons-vue/src/icons/svgs/save_stroked.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/packages/semi-icons-vue/src/icons/svgs/section_stroked.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/packages/semi-icons-vue/src/icons/svgs/semi_logo.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/packages/semi-icons-vue/src/icons/svgs/send.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/packages/semi-icons-vue/src/icons/svgs/shield_stroked.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/packages/semi-icons-vue/src/icons/svgs/shopping_bag.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/packages/semi-icons-vue/src/icons/svgs/sidebar.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/packages/semi-icons-vue/src/icons/svgs/small_triangle_down.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/packages/semi-icons-vue/src/icons/svgs/small_triangle_left.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/packages/semi-icons-vue/src/icons/svgs/small_triangle_right.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/packages/semi-icons-vue/src/icons/svgs/small_triangle_top.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/packages/semi-icons-vue/src/icons/svgs/smartphone_stroked.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/packages/semi-icons-vue/src/icons/svgs/sort.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/packages/semi-icons-vue/src/icons/svgs/star.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/packages/semi-icons-vue/src/icons/svgs/stop.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/packages/semi-icons-vue/src/icons/svgs/tabs_stroked.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/packages/semi-icons-vue/src/icons/svgs/text.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/packages/semi-icons-vue/src/icons/svgs/text_stroked.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/packages/semi-icons-vue/src/icons/svgs/tick.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/packages/semi-icons-vue/src/icons/svgs/top.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/packages/semi-icons-vue/src/icons/svgs/top_center_stroked.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/packages/semi-icons-vue/src/icons/svgs/top_left_stroked.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/packages/semi-icons-vue/src/icons/svgs/top_right_stroked.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/packages/semi-icons-vue/src/icons/svgs/transparent_stroked.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/packages/semi-icons-vue/src/icons/svgs/tree_triangle_down.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/packages/semi-icons-vue/src/icons/svgs/tree_triangle_right.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/packages/semi-icons-vue/src/icons/svgs/triangle_arrow.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/packages/semi-icons-vue/src/icons/svgs/triangle_arrow_vertical.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/packages/semi-icons-vue/src/icons/svgs/triangle_down.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/packages/semi-icons-vue/src/icons/svgs/triangle_up.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/packages/semi-icons-vue/src/icons/svgs/underline.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/packages/semi-icons-vue/src/icons/svgs/unlock.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/packages/semi-icons-vue/src/icons/svgs/unlock_stroked.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/packages/semi-icons-vue/src/icons/svgs/video.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/packages/semi-icons-vue/src/icons/svgs/volumn_silent.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/packages/semi-icons-vue/src/main.scss:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rashagu/semi-design-vue/455ba66bae30c00260f9c8e721f2e618018c9274/packages/semi-icons-vue/src/main.scss
--------------------------------------------------------------------------------
/packages/semi-icons-vue/src/main.ts:
--------------------------------------------------------------------------------
1 | import { createApp } from 'vue'
2 | import App from './App'
3 | import './main.scss'
4 |
5 | createApp(App).mount('#app')
6 |
--------------------------------------------------------------------------------
/packages/semi-icons-vue/src/tsconfig.esm.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "../tsconfig.json",
3 | "exclude": ["./**/*.spec.*",
4 | "./main.ts", "../script/*", "../components",
5 | "./Comp1",
6 | "./App.tsx",
7 | "./__test__",
8 | "./**/__test__",
9 | "../scripts"
10 | ],
11 | "compilerOptions": {
12 | "rootDir": "./icons",
13 | "outDir": "../lib",
14 | "strictNullChecks": false,
15 | "module": "ES6",
16 | "target": "ES6",
17 | "jsx": "preserve",
18 | "types": ["vite/client", "node"],
19 | "noImplicitAny": false
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/packages/semi-icons-vue/tsconfig.esm.json:
--------------------------------------------------------------------------------
1 | {
2 | "files": [],
3 | "references": [
4 | {
5 | "path": "./src/tsconfig.esm.json"
6 | },
7 | ]
8 | }
9 |
--------------------------------------------------------------------------------
/packages/semi-illustrations-vue/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules
2 | .DS_Store
3 | dist
4 | dist-ssr
5 | *.local
6 |
7 | # 项目排除路径
8 | # /src/icons/svgs/
9 |
--------------------------------------------------------------------------------
/packages/semi-illustrations-vue/README.md:
--------------------------------------------------------------------------------
1 | # semi-illustrations-vue of vue3
2 |
--------------------------------------------------------------------------------
/packages/semi-illustrations-vue/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | Vite App
8 |
9 |
10 |
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/packages/semi-illustrations-vue/scripts/.prettierrc.cjs:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | proseWrap: 'never',
3 | printWidth: 120,
4 | tabWidth: 4,
5 | trailingComma: 'es5',
6 | bracketSpacing: true,
7 | singleQuote: true,
8 | useTabs: false,
9 | semi: true,
10 | };
11 |
--------------------------------------------------------------------------------
/packages/semi-illustrations-vue/scripts/compileLib.cjs:
--------------------------------------------------------------------------------
1 | const gulp = require('gulp');
2 | require('../gulpfile.cjs');
3 |
4 | function compileLib() {
5 | const taskInstance = gulp.task('compileLib');
6 | if (taskInstance === undefined) {
7 | console.error('no task named compileLib registered');
8 | return;
9 | }
10 | taskInstance.apply(gulp);
11 | }
12 |
13 | compileLib();
14 |
--------------------------------------------------------------------------------
/packages/semi-illustrations-vue/src/App.tsx:
--------------------------------------------------------------------------------
1 | import {defineComponent, ref, h, onMounted,} from 'vue'
2 |
3 | export interface ExampleProps {
4 | name?: string
5 | }
6 |
7 | export const VuePropsType = {
8 | name: String
9 | }
10 |
11 | const App = defineComponent((props, {slots}) => {
12 |
13 | return () => (
14 |
17 | )
18 | })
19 |
20 |
21 | // @ts-ignore
22 | App.props = VuePropsType
23 |
24 | export default App
25 |
--------------------------------------------------------------------------------
/packages/semi-illustrations-vue/src/env.d.ts:
--------------------------------------------------------------------------------
1 | ///
2 | ///
3 |
4 | declare module '*.vue' {
5 | import { DefineComponent } from 'vue'
6 | // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/ban-types
7 | const component: DefineComponent<{}, {}, any>
8 | export default component
9 | }
10 |
--------------------------------------------------------------------------------
/packages/semi-illustrations-vue/src/main.scss:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rashagu/semi-design-vue/455ba66bae30c00260f9c8e721f2e618018c9274/packages/semi-illustrations-vue/src/main.scss
--------------------------------------------------------------------------------
/packages/semi-illustrations-vue/src/main.ts:
--------------------------------------------------------------------------------
1 | import { createApp } from 'vue'
2 | import App from './App'
3 | import './main.scss'
4 |
5 | createApp(App).mount('#app')
6 |
--------------------------------------------------------------------------------
/packages/semi-illustrations-vue/src/tsconfig.esm.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "../tsconfig.json",
3 | "exclude": ["./**/*.spec.*",
4 | "./main.ts", "../script/*", "../components",
5 | "./Comp1",
6 | "./App.tsx",
7 | "./__test__",
8 | "./**/__test__",
9 | "../scripts"
10 | ],
11 | "compilerOptions": {
12 | "outDir": "../lib",
13 | "strictNullChecks": false,
14 | "module": "ES6",
15 | "target": "ES6",
16 | "jsx": "preserve",
17 | "types": ["vite/client", "node"],
18 | "noImplicitAny": false
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/packages/semi-illustrations-vue/tsconfig.esm.json:
--------------------------------------------------------------------------------
1 | {
2 | "files": [],
3 | "references": [
4 | {
5 | "path": "./src/tsconfig.esm.json"
6 | },
7 | ]
8 | }
9 |
--------------------------------------------------------------------------------
/packages/semi-ui-vue/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules
2 | .DS_Store
3 | dist
4 | dist-ssr
5 | *.local
6 | /build/
7 |
--------------------------------------------------------------------------------
/packages/semi-ui-vue/README.md:
--------------------------------------------------------------------------------
1 | # semi-ui-vue
2 |
3 | # 🔥 安装
4 |
5 |
6 | ```sh
7 | # with npm
8 | npm install @kousum/semi-ui-vue
9 | npm install @kousum/semi-icons-vue
10 |
11 | # with yarn
12 | yarn add @kousum/semi-ui-vue
13 | yarn add @kousum/semi-icons-vue
14 |
15 | ```
16 |
17 | # 👍 使用
18 |
19 | ```vue
20 | #Component.vue
21 |
24 |
25 |
26 |
27 |
28 |
29 |
30 | ```
31 |
--------------------------------------------------------------------------------
/packages/semi-ui-vue/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | Vite App
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/packages/semi-ui-vue/scripts/compileLib.cjs:
--------------------------------------------------------------------------------
1 | const gulp = require('gulp');
2 | require('../gulpfile.cjs');
3 |
4 | function compileLib() {
5 | const taskInstance = gulp.task('compileLib');
6 | if (taskInstance === undefined) {
7 | console.error('no task named compileLib registered');
8 | return;
9 | }
10 | taskInstance.apply(gulp);
11 | }
12 |
13 | compileLib();
14 |
--------------------------------------------------------------------------------
/packages/semi-ui-vue/src/assets/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rashagu/semi-design-vue/455ba66bae30c00260f9c8e721f2e618018c9274/packages/semi-ui-vue/src/assets/logo.png
--------------------------------------------------------------------------------
/packages/semi-ui-vue/src/components/__test__/test.spec.ts:
--------------------------------------------------------------------------------
1 | import {h} from 'vue'
2 | import {shallowMount, mount} from "@vue/test-utils";
3 | import { expect, test } from 'vitest'
4 |
5 | test('render with scoped-slot', async () => {
6 | const HelloWorld: any = {
7 | render() {
8 | return (h('div', {id:'a'}, '123'))
9 | },
10 | }
11 | const wrapper = shallowMount(HelloWorld, {})
12 |
13 | const profileLink = wrapper.get('#a')
14 | expect(profileLink.text()).toEqual('123')
15 | })
16 |
--------------------------------------------------------------------------------
/packages/semi-ui-vue/src/components/_base/base.scss:
--------------------------------------------------------------------------------
1 | @import '@douyinfe/semi-foundation/base/base';
2 | .semi-base {
3 | }
4 |
--------------------------------------------------------------------------------
/packages/semi-ui-vue/src/components/_base/vueUtils.ts:
--------------------------------------------------------------------------------
1 |
2 |
3 | function autoStyleUnit(obj: any ) {
4 | if (typeof obj !== 'object'){
5 | return obj
6 | }
7 | const newObj = {}
8 | for (const objKey in obj) {
9 |
10 |
11 |
12 | if (obj.hasOwnProperty(objKey) && typeof obj[objKey] === 'number'){
13 | newObj[objKey] = obj[objKey] + 'px'
14 | }
15 |
16 | }
17 |
18 | }
--------------------------------------------------------------------------------
/packages/semi-ui-vue/src/components/_utils/setRefJsx.ts:
--------------------------------------------------------------------------------
1 | import { isRef } from 'vue';
2 |
3 | export function setRefJsx(ref:any, node:any) {
4 | if (ref) {
5 | if (typeof ref.r === 'function') {
6 | ref.r(node);
7 | } else if (ref.r && typeof ref.r === 'object' && isRef(ref.r)) {
8 | ref.r.value = node;
9 | }
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/packages/semi-ui-vue/src/components/_utils/useMemo.ts:
--------------------------------------------------------------------------------
1 | import { type ShallowRef, shallowRef, watch } from 'vue'
2 |
3 | export function useMemo(getValue: (...arg:any[])=>T, sources: any[]):ShallowRef {
4 | const value = shallowRef(getValue())
5 | watch(sources, ()=>{
6 | value.value = getValue()
7 | }, {immediate: true})
8 | return value
9 | }
10 |
--------------------------------------------------------------------------------
/packages/semi-ui-vue/src/components/anchor/__test__/test.spec.ts:
--------------------------------------------------------------------------------
1 | import { expect, test, describe } from 'vitest'
2 | import Comp from "./AnchorDemo";
3 | import {mount} from "@vue/test-utils";
4 |
5 | test('DatePickerDemo qwe', async () => {
6 | expect(Comp).toBeTruthy()
7 |
8 | const wrapper = mount(Comp, {})
9 |
10 | const profileLink = wrapper.get('.semi-anchor-link-title')
11 | expect(profileLink.text()).toEqual('基本示例')
12 |
13 | })
14 |
--------------------------------------------------------------------------------
/packages/semi-ui-vue/src/components/anchor/index-en-US.md:
--------------------------------------------------------------------------------
1 | ../../../content/navigation/anchor/index-en-US.md
--------------------------------------------------------------------------------
/packages/semi-ui-vue/src/components/anchor/index.md:
--------------------------------------------------------------------------------
1 | ../../../content/navigation/anchor/index.md
--------------------------------------------------------------------------------
/packages/semi-ui-vue/src/components/audioPlayer/utils.ts:
--------------------------------------------------------------------------------
1 | export const formatTime = (time: number) => {
2 | const minutes = Math.floor(time / 60);
3 | const seconds = Math.floor(time % 60);
4 | return `${minutes}:${seconds.toString().padStart(2, '0')}`;
5 | };
--------------------------------------------------------------------------------
/packages/semi-ui-vue/src/components/avatar/__test__/test.spec.ts:
--------------------------------------------------------------------------------
1 | import { expect, test, describe } from 'vitest'
2 | import Comp from "./AvatarDemo";
3 | import {mount} from "@vue/test-utils";
4 |
5 | test('DatePickerDemo qwe', async () => {
6 | expect(Comp).toBeTruthy()
7 | const wrapper = mount(Comp, {})
8 | // wrapper.setProps()
9 | const profileLink = wrapper.get('.semi-avatar-group span')
10 | expect(profileLink.attributes('class')).toEqual('semi-avatar semi-avatar-circle semi-avatar-medium semi-avatar-red semi-avatar-item-start-0')
11 | })
12 |
--------------------------------------------------------------------------------
/packages/semi-ui-vue/src/components/backtop/__test__/test.spec.ts:
--------------------------------------------------------------------------------
1 | import { expect, test, describe } from 'vitest'
2 | import Comp from "./BacktopDemo";
3 | import {mount} from "@vue/test-utils";
4 |
5 | test('Demo test', async () => {
6 | expect(Comp).toBeTruthy()
7 | const wrapper = mount(Comp, {})
8 | await new Promise((resolve, reject)=>{
9 | setTimeout(()=>{
10 | resolve(1)
11 | }, 500)
12 | })
13 | const profileLink = wrapper.find('.semi-backtop')
14 | expect(profileLink.exists()).toEqual(true)
15 | })
16 |
--------------------------------------------------------------------------------
/packages/semi-ui-vue/src/components/backtop/index-en-US.md:
--------------------------------------------------------------------------------
1 | ../../../content/navigation/backtop/index-en-US.md
--------------------------------------------------------------------------------
/packages/semi-ui-vue/src/components/backtop/index.md:
--------------------------------------------------------------------------------
1 | ../../../content/navigation/backtop/index.md
--------------------------------------------------------------------------------
/packages/semi-ui-vue/src/components/badge/__test__/test.spec.ts:
--------------------------------------------------------------------------------
1 | import { expect, test, describe } from 'vitest'
2 | import Comp from "./BadgeDemo";
3 | import {mount} from "@vue/test-utils";
4 |
5 | test('Demo test', async () => {
6 | expect(Comp).toBeTruthy()
7 | const wrapper = mount(Comp, {})
8 | const profileLink = wrapper.get('.semi-badge-primary')
9 | expect(profileLink.text()).toEqual("5")
10 | })
11 |
--------------------------------------------------------------------------------
/packages/semi-ui-vue/src/components/banner/__test__/test.spec.ts:
--------------------------------------------------------------------------------
1 | import { expect, test, describe } from 'vitest'
2 | import Comp from "./BannerDemo";
3 | import {mount} from "@vue/test-utils";
4 |
5 | test('BannerDemo qwe', async () => {
6 | const wrapper = mount(Comp, {})
7 |
8 | const profileLink = wrapper.get('.test').text()
9 | expect(profileLink).toEqual('Sounds great!')
10 | })
11 |
--------------------------------------------------------------------------------
/packages/semi-ui-vue/src/components/banner/index-en-US.md:
--------------------------------------------------------------------------------
1 | ../../../content/feedback/banner/index-en-US.md
--------------------------------------------------------------------------------
/packages/semi-ui-vue/src/components/banner/index.md:
--------------------------------------------------------------------------------
1 | ../../../content/feedback/banner/index.md
--------------------------------------------------------------------------------
/packages/semi-ui-vue/src/components/breadcrumb/__test__/test.spec.ts:
--------------------------------------------------------------------------------
1 | import {mount} from "@vue/test-utils";
2 | import { expect, test } from 'vitest'
3 | import Comp from "./BreadcrumbDemo";
4 |
5 | test('render with scoped-slot', async () => {
6 | const wrapper = mount(Comp, {})
7 |
8 | const profileLink = wrapper.get('#aa')
9 | expect(profileLink.text()).toEqual('Semi-ui')
10 | })
11 |
--------------------------------------------------------------------------------
/packages/semi-ui-vue/src/components/breadcrumb/index-en-US.md:
--------------------------------------------------------------------------------
1 | ../../../content/navigation/breadcrumb/index-en-US.md
--------------------------------------------------------------------------------
/packages/semi-ui-vue/src/components/breadcrumb/index.md:
--------------------------------------------------------------------------------
1 | ../../../content/navigation/breadcrumb/index.md
--------------------------------------------------------------------------------
/packages/semi-ui-vue/src/components/button/__test__/DemoButtonSFC.vue:
--------------------------------------------------------------------------------
1 |
15 |
16 |
17 |
18 |
19 |
20 |
23 |
--------------------------------------------------------------------------------
/packages/semi-ui-vue/src/components/button/__test__/test.spec.ts:
--------------------------------------------------------------------------------
1 | import { expect, test, describe } from 'vitest'
2 | import Comp from "./Demo";
3 | import { render, screen, } from '@testing-library/vue';
4 |
5 |
6 | test('PaginationDemo test', async () => {
7 | render(Comp)
8 | const img = await screen.findByText("分裂按钮");
9 | })
10 |
--------------------------------------------------------------------------------
/packages/semi-ui-vue/src/components/calendar/index-en-US.md:
--------------------------------------------------------------------------------
1 | ../../../content/show/calendar/index-en-US.md
--------------------------------------------------------------------------------
/packages/semi-ui-vue/src/components/calendar/index.md:
--------------------------------------------------------------------------------
1 | ../../../content/show/calendar/index.md
--------------------------------------------------------------------------------
/packages/semi-ui-vue/src/components/card/__test__/test.spec.ts:
--------------------------------------------------------------------------------
1 | import { expect, test, describe } from 'vitest'
2 | import Comp from "./CardDemo";
3 | import {mount} from "@vue/test-utils";
4 |
5 | test('Demo test', async () => {
6 | expect(Comp).toBeTruthy()
7 | const wrapper = mount(Comp, {})
8 |
9 | const profileLink = wrapper.get('.semi-typography-link-text')
10 | expect(profileLink.text()).toEqual("More")
11 | })
12 |
--------------------------------------------------------------------------------
/packages/semi-ui-vue/src/components/card/index-en-US.md:
--------------------------------------------------------------------------------
1 | ../../../content/show/card/index-en-US.md
--------------------------------------------------------------------------------
/packages/semi-ui-vue/src/components/card/index.md:
--------------------------------------------------------------------------------
1 | ../../../content/show/card/index.md
--------------------------------------------------------------------------------
/packages/semi-ui-vue/src/components/carousel/__test__/test.spec.ts:
--------------------------------------------------------------------------------
1 | import { expect, test, describe } from 'vitest'
2 | import Comp from "./CarouselDemo";
3 | import {mount} from "@vue/test-utils";
4 |
5 | test('Demo test', async () => {
6 | expect(Comp).toBeTruthy()
7 | const wrapper = mount(Comp, {})
8 |
9 | const profileLink = wrapper.get('img')
10 | expect(profileLink.attributes('alt')).toEqual("semi_logo")
11 | })
12 |
--------------------------------------------------------------------------------
/packages/semi-ui-vue/src/components/cascader/virtualRow.tsx:
--------------------------------------------------------------------------------
1 | import type { FunctionalComponent } from 'vue';
2 | import { type CSSProperties } from 'vue';
3 |
4 | export interface virtualRowProps {
5 | index: number;
6 | data: Record;
7 | style?: CSSProperties;
8 | }
9 |
10 | const VirtualRow:FunctionalComponent = ({ index, data, style }) => {
11 | const { visibleOptions, renderOption } = data;
12 | const option = visibleOptions[index];
13 | return renderOption(option, index, style);
14 | };
15 |
16 | export default VirtualRow;
17 |
18 |
--------------------------------------------------------------------------------
/packages/semi-ui-vue/src/components/checkbox/__test__/test.spec.ts:
--------------------------------------------------------------------------------
1 | import { expect, test, describe } from 'vitest'
2 | import Comp from "./CheckboxDemo";
3 | import {mount} from "@vue/test-utils";
4 |
5 | test('DatePickerDemo qwe', async () => {
6 | const wrapper = mount(Comp, {})
7 |
8 | const profileLink = wrapper.find('.semi-icon-checkbox_tick svg')
9 | expect(profileLink.exists()).toEqual(true)
10 | })
11 |
--------------------------------------------------------------------------------
/packages/semi-ui-vue/src/components/codeHighlight/__test__/test.spec.ts:
--------------------------------------------------------------------------------
1 | import {mount} from "@vue/test-utils";
2 | import {beforeAll, expect, test, vi} from 'vitest'
3 | import Comp from "./CodeHighlightDemo";
4 | import { fireEvent, render, screen } from '@testing-library/vue';
5 |
6 | test('PaginationDemo test', async () => {
7 | render(Comp)
8 | const input = await screen.findAllByText("return")
9 | expect(input[0].getAttribute('class')).toContain('token keyword')
10 | })
11 |
--------------------------------------------------------------------------------
/packages/semi-ui-vue/src/components/collapsible/index-en-US.md:
--------------------------------------------------------------------------------
1 | ../../../content/show/collapsible/index-en-US.md
--------------------------------------------------------------------------------
/packages/semi-ui-vue/src/components/collapsible/index.md:
--------------------------------------------------------------------------------
1 | ../../../content/show/collapsible/index.md
--------------------------------------------------------------------------------
/packages/semi-ui-vue/src/components/configProvider/__test__/test.spec.ts:
--------------------------------------------------------------------------------
1 | import { expect, test, describe } from 'vitest'
2 | import Comp from "./ConfigProviderDemo";
3 | import {mount} from "@vue/test-utils";
4 |
5 | test('DatePickerDemo qwe', async () => {
6 | expect(Comp).toBeTruthy()
7 | const wrapper = mount(Comp, {})
8 |
9 | const profileLink = wrapper.get('.semi-input').attributes().placeholder
10 | expect(profileLink).toEqual('Select date')
11 | })
12 |
--------------------------------------------------------------------------------
/packages/semi-ui-vue/src/components/configProvider/context.tsx:
--------------------------------------------------------------------------------
1 | import { Locale } from '../locale/interface';
2 | import Provider from './context/Provider'
3 | import Consumer from './context/Consumer'
4 | export interface ContextValue {
5 | direction?: 'ltr' | 'rtl';
6 | timeZone?: string | number;
7 | locale?: Locale;
8 | getPopupContainer?(): HTMLElement;
9 | }
10 |
11 | const ConfigContext = {
12 | Provider,
13 | Consumer
14 | };
15 |
16 | export default ConfigContext;
17 |
--------------------------------------------------------------------------------
/packages/semi-ui-vue/src/components/descriptions/descriptions-context.ts:
--------------------------------------------------------------------------------
1 | import Provider from "./context/Provider";
2 | import Consumer from "./context/Consumer";
3 |
4 |
5 | export type DescriptionsAlign = 'center' | 'justify' | 'left' | 'plain';
6 | export type DescriptionLayout = 'horizontal' | 'vertical'
7 |
8 | export interface DescriptionsContextValue {
9 | align?: DescriptionsAlign;
10 | layout?: DescriptionLayout
11 | }
12 |
13 | const DescriptionsContext = {
14 | Provider,
15 | Consumer
16 | }
17 |
18 | export default DescriptionsContext;
19 |
--------------------------------------------------------------------------------
/packages/semi-ui-vue/src/components/descriptions/index-en-US.md:
--------------------------------------------------------------------------------
1 | ../../../content/show/descriptions/index-en-US.md
--------------------------------------------------------------------------------
/packages/semi-ui-vue/src/components/descriptions/index.md:
--------------------------------------------------------------------------------
1 | ../../../content/show/descriptions/index.md
--------------------------------------------------------------------------------
/packages/semi-ui-vue/src/components/divider/__test__/test.spec.ts:
--------------------------------------------------------------------------------
1 | import { expect, test, describe, beforeAll } from 'vitest'
2 | import Comp from "./DividerDemo";
3 | import {mount} from "@vue/test-utils";
4 |
5 | test('Demo test', async () => {
6 | expect(Comp).toBeTruthy()
7 | const wrapper = mount(Comp, {})
8 |
9 | const profileLink = wrapper.find('.semi-divider-vertical')
10 | expect(profileLink.exists()).toEqual(true)
11 | })
12 |
--------------------------------------------------------------------------------
/packages/semi-ui-vue/src/components/dropdown/__test__/test.spec.ts:
--------------------------------------------------------------------------------
1 | import { expect, test, describe } from 'vitest'
2 | import Comp from "./DropdownDemo1";
3 |
4 | test('DatePickerDemo qwe', async () => {
5 | expect(Comp).toBeTruthy()
6 | })
7 |
--------------------------------------------------------------------------------
/packages/semi-ui-vue/src/components/dropdown/context.ts:
--------------------------------------------------------------------------------
1 | import type { TooltipProps } from '../tooltip';
2 | import Consumer from "./context/Consumer";
3 | import Provider from "./context/Provider";
4 |
5 | export interface DropdownContextType {
6 | level?: number;
7 | showTick?: boolean;
8 | trigger?: TooltipProps['trigger'];
9 | }
10 |
11 | export const DropdownContext = {
12 | Consumer: Consumer,
13 | Provider: Provider,
14 | };
15 |
--------------------------------------------------------------------------------
/packages/semi-ui-vue/src/components/empty/__test__/test.spec.ts:
--------------------------------------------------------------------------------
1 | import { expect, test, describe } from 'vitest'
2 | import Comp from "./EmptyDemo";
3 | import {mount} from "@vue/test-utils";
4 |
5 | test('DatePickerDemo qwe', async () => {
6 | expect(Comp).toBeTruthy()
7 | const wrapper = mount(Comp, {})
8 |
9 | const profileLink = wrapper.find('.semi-empty-image svg')
10 | expect(profileLink.exists()).toEqual(true)
11 | })
12 |
--------------------------------------------------------------------------------
/packages/semi-ui-vue/src/components/form/hoc/withFormApi.tsx:
--------------------------------------------------------------------------------
1 | import { FormApiContext } from '../context';
2 | import {h} from 'vue'
3 |
4 | const withFormApi = (Component: any) => (props) => (
5 |
6 | {formApi => }
7 |
8 | )
9 |
10 | export default withFormApi;
11 |
--------------------------------------------------------------------------------
/packages/semi-ui-vue/src/components/form/hoc/withFormState.tsx:
--------------------------------------------------------------------------------
1 |
2 | import { FormStateContext } from '../context';
3 | import {h} from 'vue'
4 |
5 | const withFormState = (Component: any) => (props) => (
6 |
7 | {formState => }
8 |
9 | )
10 |
11 | export default withFormState;
12 |
--------------------------------------------------------------------------------
/packages/semi-ui-vue/src/components/form/hooks/useArrayFieldState.tsx:
--------------------------------------------------------------------------------
1 | import { ArrayFieldContext } from '../context';
2 | import {useArrayFieldContext} from "../context/ArrayField/Consumer";
3 |
4 | function useArrayFieldState() {
5 | return useArrayFieldContext();
6 | }
7 |
8 | export default useArrayFieldState;
9 |
--------------------------------------------------------------------------------
/packages/semi-ui-vue/src/components/form/hooks/useFormApi.tsx:
--------------------------------------------------------------------------------
1 | import {useBaseFormApiContext} from "../context/BaseFormApi/Consumer";
2 |
3 | export default function useFormApi = any>() {
4 | return useBaseFormApiContext();
5 | }
--------------------------------------------------------------------------------
/packages/semi-ui-vue/src/components/form/hooks/useFormState.tsx:
--------------------------------------------------------------------------------
1 | import {useFormStateContext} from "../context/FormState/Consumer";
2 |
3 | function useFormState() {
4 | const {context} = useFormStateContext();
5 | return context;
6 | }
7 |
8 | export default useFormState;
--------------------------------------------------------------------------------
/packages/semi-ui-vue/src/components/form/hooks/useFormUpdater.tsx:
--------------------------------------------------------------------------------
1 | import {useFormUpdaterContext} from "../context/FormUpdaterContext/Consumer";
2 |
3 | export default function useFormUpdater() {
4 | return useFormUpdaterContext()
5 | }
--------------------------------------------------------------------------------
/packages/semi-ui-vue/src/components/form/index-en-US.md:
--------------------------------------------------------------------------------
1 | ../../../content/input/form/index-en-US.md
--------------------------------------------------------------------------------
/packages/semi-ui-vue/src/components/form/index.md:
--------------------------------------------------------------------------------
1 | ../../../content/input/form/index.md
--------------------------------------------------------------------------------
/packages/semi-ui-vue/src/components/grid/index.tsx:
--------------------------------------------------------------------------------
1 | import Row from './row';
2 | import Col from './col';
3 |
4 | export { Row, Col };
5 |
6 | export type { ColSize, ColProps } from './col';
7 | export type { Breakpoint, Gutter, RowProps } from './row';
8 |
--------------------------------------------------------------------------------
/packages/semi-ui-vue/src/components/highlight/__test__/test.spec.ts:
--------------------------------------------------------------------------------
1 | import {expect, test, describe, beforeAll, vi} from 'vitest'
2 | import Comp from "./HighlightDemo";
3 | import {mount} from "@vue/test-utils";
4 |
5 | test('grid qwe', async () => {
6 | const wrapper = mount(Comp, {})
7 |
8 | const profileLink = wrapper.get('.semi-highlight-tag')
9 | expect(profileLink.text()).toEqual("Semi Design")
10 | })
11 |
--------------------------------------------------------------------------------
/packages/semi-ui-vue/src/components/highlight/index-en-US.md:
--------------------------------------------------------------------------------
1 | ../../../content/show/highlight/index-en-US.md
--------------------------------------------------------------------------------
/packages/semi-ui-vue/src/components/highlight/index.md:
--------------------------------------------------------------------------------
1 | ../../../content/show/highlight/index.md
--------------------------------------------------------------------------------
/packages/semi-ui-vue/src/components/icons/index.tsx:
--------------------------------------------------------------------------------
1 | import {Icon} from '@kousum/semi-icons-vue';
2 | import type { IconProps, IconSize } from '@kousum/semi-icons-vue';
3 | export type { IconProps, IconSize };
4 |
5 | export default Icon;
6 |
--------------------------------------------------------------------------------
/packages/semi-ui-vue/src/components/image/index-en-US.md:
--------------------------------------------------------------------------------
1 | ../../../content/show/image/index-en-US.md
--------------------------------------------------------------------------------
/packages/semi-ui-vue/src/components/image/index.md:
--------------------------------------------------------------------------------
1 | ../../../content/show/image/index.md
--------------------------------------------------------------------------------
/packages/semi-ui-vue/src/components/image/index.tsx:
--------------------------------------------------------------------------------
1 | import Image from "./image";
2 | import PreviewInner from "./previewInner";
3 | import Preview from "./preview";
4 | import "@douyinfe/semi-foundation/image/image.scss";
5 |
6 | export default Image;
7 | export {
8 | PreviewInner,
9 | Preview,
10 | };
11 |
12 | export type {
13 | ImageProps,
14 | PreviewImageProps,
15 | PreviewProps,
16 | MenuProps
17 | } from "./interface";
18 |
--------------------------------------------------------------------------------
/packages/semi-ui-vue/src/components/input/__test__/test.spec.ts:
--------------------------------------------------------------------------------
1 | import { expect, test, describe } from 'vitest'
2 | import Comp from "./InputDemo";
3 | import {mount} from "@vue/test-utils";
4 |
5 | test('DatePickerDemo qwe', async () => {
6 | expect(Comp).toBeTruthy()
7 |
8 | const wrapper = mount(Comp, {});
9 | const profileLink = wrapper.find('textarea');
10 | expect(profileLink.exists()).toEqual(true);
11 | })
12 |
--------------------------------------------------------------------------------
/packages/semi-ui-vue/src/components/inputNumber/__test__/test.spec.ts:
--------------------------------------------------------------------------------
1 | import { expect, test, describe } from 'vitest'
2 | import Comp from "./InputNumberDemo";
3 | import {mount} from "@vue/test-utils";
4 |
5 | test('InputNumberDemo qwe', async () => {
6 | expect(Comp).toBeTruthy()
7 | const wrapper = mount(Comp, {})
8 |
9 | const profileLink = wrapper.find('.semi-input-number-suffix-btns')
10 | expect(profileLink.exists()).toEqual(true)
11 | })
12 |
--------------------------------------------------------------------------------
/packages/semi-ui-vue/src/components/inputNumber/index-en-US.md:
--------------------------------------------------------------------------------
1 | ../../../content/input/inputnumber/index-en-US.md
--------------------------------------------------------------------------------
/packages/semi-ui-vue/src/components/inputNumber/index.md:
--------------------------------------------------------------------------------
1 | ../../../content/input/inputnumber/index.md
--------------------------------------------------------------------------------
/packages/semi-ui-vue/src/components/layout/__test__/test.spec.ts:
--------------------------------------------------------------------------------
1 | import { expect, test, describe } from 'vitest'
2 | import Comp from "./LayoutTest";
3 | import {mount} from "@vue/test-utils";
4 |
5 | test('LayoutTest qwe', async () => {
6 | expect(Comp).toBeTruthy()
7 | const wrapper = mount(Comp, {})
8 |
9 | const profileLink = wrapper.get('.semi-layout-content')
10 | expect(profileLink.text()).toEqual("Content")
11 | })
12 |
--------------------------------------------------------------------------------
/packages/semi-ui-vue/src/components/layout/layoutContext.ts:
--------------------------------------------------------------------------------
1 | import Provider from "./context/Provider";
2 | import Consumer from "./context/Consumer";
3 |
4 | export interface ContextType{
5 | siderHook: {
6 | addSider: (id: string) => void;
7 | removeSider: (id: string) => void;
8 | };
9 | }
10 |
11 | const LayoutContext = {
12 | Provider,
13 | Consumer
14 | }
15 |
16 | export default LayoutContext;
17 |
--------------------------------------------------------------------------------
/packages/semi-ui-vue/src/components/list/index-en-US.md:
--------------------------------------------------------------------------------
1 | ../../../content/show/list/index-en-US.md
--------------------------------------------------------------------------------
/packages/semi-ui-vue/src/components/list/index.md:
--------------------------------------------------------------------------------
1 | ../../../content/show/list/index.md
--------------------------------------------------------------------------------
/packages/semi-ui-vue/src/components/list/list-context.ts:
--------------------------------------------------------------------------------
1 |
2 | import type { RowProps } from '../grid';
3 | import type { ColProps } from '../grid';
4 | import Provider from "./context/Provider";
5 | import Consumer from "./context/Consumer";
6 |
7 | export interface Grid extends RowProps, ColProps {}
8 |
9 | export interface ListContextValue {
10 | onRightClick?: (e: MouseEvent)=>void;
11 | onClick?: (e: MouseEvent)=>void;
12 | grid?: Grid
13 | }
14 |
15 | const ListContext = {
16 | Provider,
17 | Consumer
18 | }
19 |
20 | export default ListContext;
21 |
--------------------------------------------------------------------------------
/packages/semi-ui-vue/src/components/locale/context.tsx:
--------------------------------------------------------------------------------
1 | import Consumer from "./context/Consumer";
2 | import Provider from "./context/Provider";
3 |
4 | const LocaleContext = {
5 | Consumer: Consumer,
6 | Provider: Provider,
7 | }
8 | export default LocaleContext;
--------------------------------------------------------------------------------
/packages/semi-ui-vue/src/components/locale/context/Consumer.tsx:
--------------------------------------------------------------------------------
1 | import {defineComponent, ref, h, Fragment, useSlots, inject} from 'vue'
2 | import {Locale} from '../interface';
3 |
4 | export const vuePropsType = {
5 | }
6 | const Consumer = defineComponent(() => {
7 | const slots = useSlots()
8 | const config = inject('semi_LocalContext', ref(null))
9 | return ()=>slots.default?slots.default(config):null
10 | }, {
11 | props: { ...vuePropsType },
12 | name: 'LocaleContextConsumer'
13 | })
14 |
15 |
16 | export default Consumer
17 |
18 |
--------------------------------------------------------------------------------
/packages/semi-ui-vue/src/components/lottie/__test__/test.spec.ts:
--------------------------------------------------------------------------------
1 | import {mount} from "@vue/test-utils";
2 | import {beforeAll, expect, test, vi} from 'vitest'
3 | import Comp from "./LottieDemo";
4 | import { fireEvent, render, screen } from '@testing-library/vue';
5 |
6 | test('PaginationDemo test', async () => {
7 | render(Comp)
8 | })
9 |
--------------------------------------------------------------------------------
/packages/semi-ui-vue/src/components/markdownRender/__test__/test.spec.ts:
--------------------------------------------------------------------------------
1 | import {mount} from "@vue/test-utils";
2 | import {beforeAll, expect, test, vi} from 'vitest'
3 | import Comp from "./markDownRenderDemo";
4 | import { fireEvent, render, screen } from '@testing-library/vue';
5 |
6 | test('PaginationDemo test', async () => {
7 | render(Comp)
8 | const img = await screen.findByText("低成本快速创建风格各异的设计系统,更少时间,更快交付");
9 | const img2 = await screen.findByText("Markdown 表格");
10 | })
11 |
--------------------------------------------------------------------------------
/packages/semi-ui-vue/src/components/markdownRender/components/a.tsx:
--------------------------------------------------------------------------------
1 |
2 | import Typography from "../../typography";
3 | import { omit } from 'lodash';
4 |
5 | const a = (props: any)=>{
6 | return
7 | {props.children}
8 | ;
9 | };
10 |
11 | export default a;
12 |
--------------------------------------------------------------------------------
/packages/semi-ui-vue/src/components/markdownRender/components/h1.tsx:
--------------------------------------------------------------------------------
1 |
2 | import Typography from '../../typography';
3 | import { cssClasses } from '@douyinfe/semi-foundation/markdownRender/constants';
4 | import { TitleProps } from '../../typography/title';
5 |
6 | const h1 = (props: TitleProps)=>{
7 | console.log(props);
8 | return ;
9 | };
10 |
11 | export default h1;
12 |
--------------------------------------------------------------------------------
/packages/semi-ui-vue/src/components/markdownRender/components/h2.tsx:
--------------------------------------------------------------------------------
1 | import Typography from '../../typography';
2 | import { cssClasses } from '@douyinfe/semi-foundation/markdownRender/constants';
3 | import { TitleProps } from '../../typography/title';
4 |
5 | const h2 = (props: TitleProps)=>{
6 | return ;
7 | };
8 |
9 | export default h2;
10 |
--------------------------------------------------------------------------------
/packages/semi-ui-vue/src/components/markdownRender/components/h3.tsx:
--------------------------------------------------------------------------------
1 | import Typography from '../../typography';
2 | import { cssClasses } from '@douyinfe/semi-foundation/markdownRender/constants';
3 | import { TitleProps } from '../../typography/title';
4 |
5 | const h3 = (props: TitleProps)=>{
6 | return ;
7 | };
8 |
9 | export default h3;
10 |
--------------------------------------------------------------------------------
/packages/semi-ui-vue/src/components/markdownRender/components/h4.tsx:
--------------------------------------------------------------------------------
1 | import Typography from '../../typography';
2 | import { cssClasses } from '@douyinfe/semi-foundation/markdownRender/constants';
3 | import { TitleProps } from '../../typography/title';
4 |
5 | const h4 = (props: TitleProps)=>{
6 | return ;
7 | };
8 |
9 | export default h4;
10 |
--------------------------------------------------------------------------------
/packages/semi-ui-vue/src/components/markdownRender/components/h5.tsx:
--------------------------------------------------------------------------------
1 | import Typography from '../../typography';
2 | import { cssClasses } from '@douyinfe/semi-foundation/markdownRender/constants';
3 | import { TitleProps } from '../../typography/title';
4 |
5 | const h5 = (props: TitleProps)=>{
6 | return ;
7 | };
8 |
9 | export default h5;
10 |
--------------------------------------------------------------------------------
/packages/semi-ui-vue/src/components/markdownRender/components/h6.tsx:
--------------------------------------------------------------------------------
1 | import Typography from '../../typography';
2 | import { cssClasses } from '@douyinfe/semi-foundation/markdownRender/constants';
3 | import { TitleProps } from '../../typography/title';
4 |
5 | const h6 = (props: TitleProps)=>{
6 | return ;
7 | };
8 |
9 | export default h6;
10 |
--------------------------------------------------------------------------------
/packages/semi-ui-vue/src/components/markdownRender/components/index.tsx:
--------------------------------------------------------------------------------
1 | export { default as h1 } from "./h1";
2 | export { default as h2 } from "./h2";
3 | export { default as h3 } from "./h3";
4 | export { default as h4 } from "./h4";
5 | export { default as h5 } from "./h5";
6 | export { default as h6 } from "./h6";
7 | export { default as a } from "./a";
8 | export { default as img } from "./img";
9 | export { default as table } from "./table";
10 | export { default as p } from "./p";
11 | export { default as code } from "./code";
12 |
13 |
14 |
--------------------------------------------------------------------------------
/packages/semi-ui-vue/src/components/markdownRender/components/p.tsx:
--------------------------------------------------------------------------------
1 |
2 | import Typography from '../../typography';
3 | import { cssClasses } from '@douyinfe/semi-foundation/markdownRender/constants';
4 | import { TitleProps } from '../../typography/title';
5 | import { FunctionalComponent } from 'vue';
6 |
7 | const p:FunctionalComponent = (props: TitleProps)=>{
8 | return
9 | ;
10 | };
11 |
12 | export default p;
13 |
--------------------------------------------------------------------------------
/packages/semi-ui-vue/src/components/modal/index-en-US.md:
--------------------------------------------------------------------------------
1 | ../../../content/show/modal/index-en-US.md
--------------------------------------------------------------------------------
/packages/semi-ui-vue/src/components/modal/index.md:
--------------------------------------------------------------------------------
1 | ../../../content/show/modal/index.md
--------------------------------------------------------------------------------
/packages/semi-ui-vue/src/components/modal/index.tsx:
--------------------------------------------------------------------------------
1 |
2 | import '@douyinfe/semi-foundation/modal/modal.scss';
3 | import { ModalState } from '@douyinfe/semi-foundation/modal/modalFoundation';
4 | import Modal, {ModalClass} from './Modal';
5 | import { ModalReactProps } from './Modal';
6 | import useModal from './useModal';
7 |
8 | export type { ConfirmProps } from './confirm';
9 |
10 | export type Directions = 'ltr' | 'rtl';
11 |
12 | export type { ModalReactProps, ModalState };
13 |
14 | export {
15 | ModalClass,
16 | useModal
17 | }
18 | export default Modal;
19 |
--------------------------------------------------------------------------------
/packages/semi-ui-vue/src/components/navigation/README.md:
--------------------------------------------------------------------------------
1 | ## Description
2 | navigation component
3 |
4 | ## CSS Selector
5 |
6 | - .semi-navigation-item:普通 item
7 | - .semi-navigation-item-normal:normal 标记为普通 item
8 | - .semi-navigation-sub-wrap:sub-wrap 标记为有 children item,同级有个 .semi-navigation-item-sub,只设置了一个 padding
9 | - .semi-navigation-sub-title:嵌套部分的标题,sub-title 设置了 paddingY(8px) 和 paddingX(12px)
10 | - .semi-navigation-sub:嵌套部分的children wrapper
--------------------------------------------------------------------------------
/packages/semi-ui-vue/src/components/navigation/index-en-US.md:
--------------------------------------------------------------------------------
1 | ../../../content/navigation/navigation/index-en-US.md
--------------------------------------------------------------------------------
/packages/semi-ui-vue/src/components/navigation/index.md:
--------------------------------------------------------------------------------
1 | ../../../content/navigation/navigation/index.md
--------------------------------------------------------------------------------
/packages/semi-ui-vue/src/components/overflowList/index.md:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rashagu/semi-design-vue/455ba66bae30c00260f9c8e721f2e618018c9274/packages/semi-ui-vue/src/components/overflowList/index.md
--------------------------------------------------------------------------------
/packages/semi-ui-vue/src/components/pagination/__test__/test.spec.ts:
--------------------------------------------------------------------------------
1 | import {mount} from "@vue/test-utils";
2 | import {beforeAll, expect, test, vi} from 'vitest'
3 | import Comp from "./PaginationDemo";
4 | import { render, screen } from '@testing-library/vue';
5 |
6 | test('PaginationDemo test', async () => {
7 | render(Comp)
8 | const input = await screen.findByText("每页条数:10")
9 | })
10 |
--------------------------------------------------------------------------------
/packages/semi-ui-vue/src/components/pagination/index-en-US.md:
--------------------------------------------------------------------------------
1 | ../../../content/navigation/pagination/index-en-US.md
--------------------------------------------------------------------------------
/packages/semi-ui-vue/src/components/pagination/index.md:
--------------------------------------------------------------------------------
1 | ../../../content/navigation/pagination/index.md
--------------------------------------------------------------------------------
/packages/semi-ui-vue/src/components/pincode/__test__/test.spec.ts:
--------------------------------------------------------------------------------
1 | import {mount} from "@vue/test-utils";
2 | import {beforeAll, expect, test, vi} from 'vitest'
3 | import Comp from "./PinCodeDemo";
4 | import { fireEvent, render, screen } from '@testing-library/vue';
5 |
6 | test('PaginationDemo test', async () => {
7 | render(Comp)
8 | const input = await screen.findAllByTestId("pin-code-input") as HTMLInputElement[]
9 | await fireEvent.pause(input[5], {target: {value: '9'}})
10 | expect(input[5].value).toEqual('9')
11 | })
12 |
--------------------------------------------------------------------------------
/packages/semi-ui-vue/src/components/popover/__test__/test.spec.ts:
--------------------------------------------------------------------------------
1 | import { expect, test, describe } from 'vitest'
2 | import Comp from "./PopoverTest";
3 | import {mount} from "@vue/test-utils";
4 |
5 | test('PopoverTest qwe', async () => {
6 | expect(Comp).toBeTruthy()
7 |
8 | const wrapper = mount(Comp, { })
9 | })
10 |
--------------------------------------------------------------------------------
/packages/semi-ui-vue/src/components/progress/__test__/test.spec.ts:
--------------------------------------------------------------------------------
1 | import { expect, test, describe } from 'vitest'
2 | import Comp from "./ProgressDemo";
3 | import {mount} from "@vue/test-utils";
4 |
5 | test('ProgressDemo test', async () => {
6 | expect(Comp).toBeTruthy()
7 | const wrapper = mount(Comp, {})
8 |
9 | const profileLink = wrapper.find('.semi-progress-track-inner').exists()
10 | expect(profileLink).toEqual(true)
11 | })
12 |
--------------------------------------------------------------------------------
/packages/semi-ui-vue/src/components/progress/index-en-US.md:
--------------------------------------------------------------------------------
1 | ../../../content/feedback/progress/index-en-US.md
--------------------------------------------------------------------------------
/packages/semi-ui-vue/src/components/progress/index.md:
--------------------------------------------------------------------------------
1 | ../../../content/feedback/progress/index.md
--------------------------------------------------------------------------------
/packages/semi-ui-vue/src/components/radio/__test__/test.spec.ts:
--------------------------------------------------------------------------------
1 | import { expect, test, describe } from 'vitest'
2 | import Comp from "./RadioDemo";
3 | import {mount} from "@vue/test-utils";
4 |
5 | test('PopoverTest qwe', async () => {
6 | expect(Comp).toBeTruthy()
7 | const wrapper = mount(Comp, {})
8 |
9 | const profileLink = wrapper.get('.semi-radio-addon-buttonRadio').text()
10 | expect(profileLink).toEqual("A")
11 | })
12 |
--------------------------------------------------------------------------------
/packages/semi-ui-vue/src/components/radio/index.tsx:
--------------------------------------------------------------------------------
1 | import Group from './radioGroup';
2 | import Radio from './radio';
3 |
4 |
5 | export { Group, Radio };
6 |
7 |
8 | import type { RadioInnerMode, RadioInnerProps } from './radioInner';
9 | import type { RadioGroupProps, OptionItem } from './radioGroup';
10 | import type { RadioDisplayMode, RadioType, RadioProps, RadioChangeEvent } from './radio';
11 |
12 |
13 | export { RadioInnerMode, RadioInnerProps }
14 | export { RadioGroupProps, OptionItem }
15 | export { RadioDisplayMode, RadioType, RadioProps, RadioChangeEvent }
--------------------------------------------------------------------------------
/packages/semi-ui-vue/src/components/rating/__test__/test.spec.ts:
--------------------------------------------------------------------------------
1 | import { expect, test, describe } from 'vitest'
2 | import Comp from "./RatingDemo";
3 | import {mount} from "@vue/test-utils";
4 |
5 | test('RatingDemo qwe', async () => {
6 | expect(Comp).toBeTruthy()
7 | const wrapper = mount(Comp, {})
8 |
9 | const profileLink = wrapper.find('.semi-rating-star-second').exists()
10 | expect(profileLink).toEqual(true)
11 | })
12 |
--------------------------------------------------------------------------------
/packages/semi-ui-vue/src/components/rating/index-en-US.md:
--------------------------------------------------------------------------------
1 | ../../../content/input/rating/index-en-US.md
--------------------------------------------------------------------------------
/packages/semi-ui-vue/src/components/rating/index.md:
--------------------------------------------------------------------------------
1 | ../../../content/input/rating/index.md
--------------------------------------------------------------------------------
/packages/semi-ui-vue/src/components/resizable/index.tsx:
--------------------------------------------------------------------------------
1 | /**
2 | * reference:https://github.com/bokuweb/re-resizable
3 | * Resizable组件的api与功能代码均参考了v6.10.0,将逻辑部分放在Foundation中,react部分放在组件中
4 | * ResizeGroup的伸缩逻辑也有同上的参考
5 | */
6 | import Resizable from "./single/resizable";
7 | export {
8 | Resizable
9 | };
10 |
11 | import ResizeItem from "./group/resizeItem";
12 | import ResizeHandler from "./group/resizeHandler";
13 | import ResizeGroup from "./group/resizeGroup";
14 |
15 | export {
16 | ResizeItem,
17 | ResizeHandler,
18 | ResizeGroup
19 | };
--------------------------------------------------------------------------------
/packages/semi-ui-vue/src/components/scrollList/__test__/test.spec.ts:
--------------------------------------------------------------------------------
1 | import { expect, test, describe } from 'vitest'
2 | import Comp from "./ScrollListDemo";
3 |
4 | test('ScrollListDemo qwe', async () => {
5 | expect(Comp).toBeTruthy()
6 | })
7 |
--------------------------------------------------------------------------------
/packages/semi-ui-vue/src/components/select/virtualRow.tsx:
--------------------------------------------------------------------------------
1 | import {CSSProperties} from "vue";
2 | export interface VirtualRowProps{
3 | index: number;
4 | data: Record;
5 | style?: CSSProperties;
6 | }
7 | const VirtualRow = ({ index, data, style }: VirtualRowProps) => {
8 | const { visibleOptions, renderOption } = data;
9 | const option = visibleOptions[index];
10 | return renderOption(option, index, style);
11 | };
12 |
13 | export default VirtualRow;
14 |
--------------------------------------------------------------------------------
/packages/semi-ui-vue/src/components/sideSheet/index-en-US.md:
--------------------------------------------------------------------------------
1 | ../../../content/show/sidesheet/index-en-US.md
--------------------------------------------------------------------------------
/packages/semi-ui-vue/src/components/sideSheet/index.md:
--------------------------------------------------------------------------------
1 | ../../../content/show/sidesheet/index.md
--------------------------------------------------------------------------------
/packages/semi-ui-vue/src/components/skeleton/__test__/test.spec.ts:
--------------------------------------------------------------------------------
1 | import {expect, test, describe, beforeAll} from 'vitest'
2 | import Comp from "./SkeletonDemo";
3 | import {mount} from "@vue/test-utils";
4 | // beforeAll(() => {
5 | // global.matchMedia = ()=>{};
6 | // });
7 | test('grid qwe', async () => {
8 | const wrapper = mount(Comp, {})
9 |
10 | const profileLink = wrapper.find('.semi-skeleton-title')
11 | expect(profileLink.exists()).toEqual(true)
12 | })
13 |
--------------------------------------------------------------------------------
/packages/semi-ui-vue/src/components/skeleton/index-en-US.md:
--------------------------------------------------------------------------------
1 | ../../../content/feedback/skeleton/index-en-US.md
--------------------------------------------------------------------------------
/packages/semi-ui-vue/src/components/skeleton/index.md:
--------------------------------------------------------------------------------
1 | ../../../content/feedback/skeleton/index.md
--------------------------------------------------------------------------------
/packages/semi-ui-vue/src/components/slider/__test__/test.spec.ts:
--------------------------------------------------------------------------------
1 | import { expect, test, describe } from 'vitest'
2 | import Comp from "./SliderDemo";
3 | import {mount} from "@vue/test-utils";
4 |
5 | test('TypoDemo test', async () => {
6 | expect(Comp).toBeTruthy()
7 |
8 | const wrapper = mount(Comp, {})
9 |
10 | const profileLink = wrapper.get('.semi-slider-boundary-max').text()
11 | expect(profileLink).toEqual('100')
12 |
13 | })
14 |
--------------------------------------------------------------------------------
/packages/semi-ui-vue/src/components/slider/index-en-US.md:
--------------------------------------------------------------------------------
1 | ../../../content/input/slider/index-en-US.md
--------------------------------------------------------------------------------
/packages/semi-ui-vue/src/components/slider/index.md:
--------------------------------------------------------------------------------
1 | ../../../content/input/slider/index.md
--------------------------------------------------------------------------------
/packages/semi-ui-vue/src/components/space/__test__/test.spec.ts:
--------------------------------------------------------------------------------
1 | import { expect, test, describe } from 'vitest'
2 | import Comp from "./SpaceTest";
3 |
4 | test('SpaceTest qwe', async () => {
5 | expect(Comp).toBeTruthy()
6 | })
7 |
--------------------------------------------------------------------------------
/packages/semi-ui-vue/src/components/steps/context.ts:
--------------------------------------------------------------------------------
1 | import Provider from "./context/Provider";
2 | import Consumer from "./context/Consumer";
3 |
4 | export interface ContextValue {
5 | type?: 'nav' | 'fill' | 'basic'
6 | }
7 |
8 | export default {
9 | Provider,
10 | Consumer
11 | };
12 |
--------------------------------------------------------------------------------
/packages/semi-ui-vue/src/components/steps/index-en-US.md:
--------------------------------------------------------------------------------
1 | ../../../content/navigation/steps/index-en-US.md
--------------------------------------------------------------------------------
/packages/semi-ui-vue/src/components/steps/index.md:
--------------------------------------------------------------------------------
1 | ../../../content/navigation/steps/index.md
--------------------------------------------------------------------------------
/packages/semi-ui-vue/src/components/switch/__test__/test.spec.ts:
--------------------------------------------------------------------------------
1 | import { expect, test, describe } from 'vitest'
2 | import Comp from "./SwitchDemo";
3 |
4 | test('SwitchDemo test', async () => {
5 | expect(Comp).toBeTruthy()
6 | })
7 |
--------------------------------------------------------------------------------
/packages/semi-ui-vue/src/components/switch/index-en-US.md:
--------------------------------------------------------------------------------
1 | ../../../content/input/switch/index-en-US.md
--------------------------------------------------------------------------------
/packages/semi-ui-vue/src/components/switch/index.md:
--------------------------------------------------------------------------------
1 | ../../../content/input/switch/index.md
--------------------------------------------------------------------------------
/packages/semi-ui-vue/src/components/table/index-en-US.md:
--------------------------------------------------------------------------------
1 | ../../../content/show/table/index-en-US.md
--------------------------------------------------------------------------------
/packages/semi-ui-vue/src/components/table/index.md:
--------------------------------------------------------------------------------
1 | ../../../content/show/table/index.md
--------------------------------------------------------------------------------
/packages/semi-ui-vue/src/components/tabs/__test__/TabsDocsDemo.tsx:
--------------------------------------------------------------------------------
1 | import Tabs from '../index';
2 | import TabPane from '../TabPane';
3 |
4 | const Demo = ()=>(
5 |
6 | {[10,2324325324324,1111].map(i => (
7 |
8 | Content of card tab {i}
9 |
10 | ))}
11 |
12 | )
13 | export default Demo
14 |
--------------------------------------------------------------------------------
/packages/semi-ui-vue/src/components/tabs/index-en-US.md:
--------------------------------------------------------------------------------
1 | ../../../content/navigation/tabs/index-en-US.md
--------------------------------------------------------------------------------
/packages/semi-ui-vue/src/components/tabs/index.md:
--------------------------------------------------------------------------------
1 | ../../../content/navigation/tabs/index.md
--------------------------------------------------------------------------------
/packages/semi-ui-vue/src/components/tabs/tabs-context.ts:
--------------------------------------------------------------------------------
1 |
2 | import Provider from "./tabs-context/Provider";
3 | import Consumer from "./tabs-context/Consumer";
4 |
5 | const TabsContext = {
6 | Provider,
7 | Consumer
8 | };
9 |
10 | export default TabsContext;
11 |
--------------------------------------------------------------------------------
/packages/semi-ui-vue/src/components/tag/__test__/test.spec.ts:
--------------------------------------------------------------------------------
1 | import { expect, test, describe } from 'vitest'
2 | import Comp from "./TagDemo";
3 | import { render, screen } from '@testing-library/vue';
4 |
5 | test('TagDemo qwe', async () => {
6 | expect(Comp).toBeTruthy()
7 | })
8 | test('TabsDemo2', async () => {
9 | render(Comp)
10 | const input = await screen.findAllByText("焦锐志")
11 | expect(input.length).toEqual(6)
12 | })
13 |
--------------------------------------------------------------------------------
/packages/semi-ui-vue/src/components/tagInput/__test__/test.spec.ts:
--------------------------------------------------------------------------------
1 | import { test } from 'vitest';
2 | import Comp from './TagInputDemo';
3 | import { render, screen } from '@testing-library/vue';
4 |
5 | test('TagInputDemo', async () => {
6 | render(Comp)
7 | const input = await screen.findAllByText("抖音")
8 | })
9 |
--------------------------------------------------------------------------------
/packages/semi-ui-vue/src/components/timePicker/PanelShape.ts:
--------------------------------------------------------------------------------
1 | import * as PropTypes from '../PropTypes';
2 | import {PropType, VNode} from "vue";
3 |
4 | export const PanelShape = {
5 | panelHeader: PropTypes.node as PropType,
6 | panelFooter: PropTypes.node as PropType,
7 | };
8 |
9 | export const PanelShapeDefaults = {};
10 |
--------------------------------------------------------------------------------
/packages/semi-ui-vue/src/components/timePicker/TimeShape.ts:
--------------------------------------------------------------------------------
1 |
2 | import * as PropTypes from '../PropTypes'
3 |
4 | const PlainTimeShape = [PropTypes.string, PropTypes.number, PropTypes.object];
5 |
6 | /**
7 | * Can be
8 | * - 12:00:12
9 | * - \[12:00:12]
10 | * - \[12:00:12, 12:21:12]
11 | * - \[[12:00:12, 12:21:12], [12:11:12, 12:32:12]]
12 | */
13 | const TimeShape = [
14 | ...PlainTimeShape,
15 | Array,
16 | ];
17 |
18 | export { TimeShape };
19 |
--------------------------------------------------------------------------------
/packages/semi-ui-vue/src/components/timeline/index-en-US.md:
--------------------------------------------------------------------------------
1 | ../../../content/show/timeline/index-en-US.md
--------------------------------------------------------------------------------
/packages/semi-ui-vue/src/components/timeline/index.md:
--------------------------------------------------------------------------------
1 | ../../../content/show/timeline/index.md
--------------------------------------------------------------------------------
/packages/semi-ui-vue/src/components/tooltip/ArrowBoundingShape.ts:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/packages/semi-ui-vue/src/components/tooltip/__test__/test.spec.ts:
--------------------------------------------------------------------------------
1 | import { expect, test, describe } from 'vitest'
2 | import Comp from "./TooltipDemo";
3 |
4 | test('TooltipDemo test', async () => {
5 | expect(Comp).toBeTruthy()
6 | })
7 |
--------------------------------------------------------------------------------
/packages/semi-ui-vue/src/components/transfer/__test__/test.spec.ts:
--------------------------------------------------------------------------------
1 | import { expect, test, describe } from 'vitest'
2 | import Comp from "./TransferDemo";
3 | import {mount} from "@vue/test-utils";
4 |
5 | test('TransferDemo test', async () => {
6 | const wrapper = mount(Comp, {})
7 |
8 | const profileLink = wrapper.get('.semi-transfer-right-item-text')
9 | expect(profileLink.text()).toEqual("B-3(disabled)")
10 | })
11 |
--------------------------------------------------------------------------------
/packages/semi-ui-vue/src/components/transfer/index-en-US.md:
--------------------------------------------------------------------------------
1 | ../../../content/input/transfer/index-en-US.md
--------------------------------------------------------------------------------
/packages/semi-ui-vue/src/components/transfer/index.md:
--------------------------------------------------------------------------------
1 | ../../../content/input/transfer/index.md
--------------------------------------------------------------------------------
/packages/semi-ui-vue/src/components/tree/index-en-US.md:
--------------------------------------------------------------------------------
1 | ../../../content/navigation/tree/index-en-US.md
--------------------------------------------------------------------------------
/packages/semi-ui-vue/src/components/tree/index.md:
--------------------------------------------------------------------------------
1 | ../../../content/navigation/tree/index.md
--------------------------------------------------------------------------------
/packages/semi-ui-vue/src/components/tree/treeUtil.tsx:
--------------------------------------------------------------------------------
1 | import { cloneDeepWith, isPlainObject } from 'lodash';
2 | import {isVNode} from "vue";
3 |
4 | export function cloneDeep(treeNodeList: any) {
5 | return cloneDeepWith(treeNodeList, val => {
6 | // only clone treeNode inner data and skip user data
7 | if (isPlainObject(val) && !val._innerDataTag) {
8 | return val;
9 | }
10 | if (isVNode(val)) {
11 | return val;
12 | }
13 | });
14 | }
15 |
--------------------------------------------------------------------------------
/packages/semi-ui-vue/src/components/treeSelect/__test__/test.spec.tsx:
--------------------------------------------------------------------------------
1 | import { expect, test, describe } from 'vitest'
2 | import Comp from "./TreeSelectDemo";
3 | import {mount} from "@vue/test-utils";
4 |
5 | test('UploadDemo test', async () => {
6 | expect(Comp).toBeTruthy()
7 | const wrapper = mount(Comp, { })
8 |
9 | const profileLink = wrapper.get('.semi-tree-select-selection-placeholder').text()
10 | expect(profileLink).toEqual("请选择")
11 | })
12 |
--------------------------------------------------------------------------------
/packages/semi-ui-vue/src/components/treeSelect/index-en-US.md:
--------------------------------------------------------------------------------
1 | ../../../content/input/treeselect/index-en-US.md
--------------------------------------------------------------------------------
/packages/semi-ui-vue/src/components/treeSelect/index.md:
--------------------------------------------------------------------------------
1 | ../../../content/input/treeselect/index.md
--------------------------------------------------------------------------------
/packages/semi-ui-vue/src/components/typography/context.tsx:
--------------------------------------------------------------------------------
1 | import Provider from "./context/Provider";
2 | import Consumer from "./context/Consumer";
3 | export type { TypographyBaseSize } from './interface';
4 |
5 |
6 | const Context = {
7 | Provider,
8 | Consumer
9 | };
10 | export default Context;
11 |
--------------------------------------------------------------------------------
/packages/semi-ui-vue/src/components/upload/index-en-US.md:
--------------------------------------------------------------------------------
1 | ../../../content/input/upload/index-en-US.md
--------------------------------------------------------------------------------
/packages/semi-ui-vue/src/components/upload/index.md:
--------------------------------------------------------------------------------
1 | ../../../content/input/upload/index.md
--------------------------------------------------------------------------------
/packages/semi-ui-vue/src/components/userGuide/__test__/test.spec.ts:
--------------------------------------------------------------------------------
1 | import { expect, test, describe, beforeAll, vi } from 'vitest';
2 | import Comp from "./UserGuideDemo";
3 | import { fireEvent, render, screen } from '@testing-library/vue';
4 |
5 |
6 | beforeAll(() => {
7 | });
8 | test('upload sss', async () => {
9 |
10 | render(Comp)
11 | const bt1 = await screen.findByTestId("showDialogBt")
12 | await fireEvent.click(bt1)
13 |
14 |
15 | await screen.findByText("跳过")
16 |
17 | })
18 |
--------------------------------------------------------------------------------
/packages/semi-ui-vue/src/components/withVModel/__test__/test.spec.ts:
--------------------------------------------------------------------------------
1 | import { expect, test, describe } from 'vitest'
2 |
3 | import {fireEvent, render, screen} from "@testing-library/vue";
4 | import Comp from './WithVModelDemo';
5 |
6 | test('DatePickerDemo qwe', async () => {
7 |
8 | render(Comp)
9 | const img = await screen.findByText("dy.jpeg")
10 | expect(img.innerHTML).toEqual("dy.jpeg")
11 | })
12 |
--------------------------------------------------------------------------------
/packages/semi-ui-vue/src/env.d.ts:
--------------------------------------------------------------------------------
1 | ///
2 | ///
3 |
4 | declare module '*.vue' {
5 | import { DefineComponent } from 'vue'
6 | // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/ban-types
7 | const component: DefineComponent<{}, {}, any>
8 | export default component
9 | }
10 |
--------------------------------------------------------------------------------
/packages/semi-ui-vue/src/main.scss:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rashagu/semi-design-vue/455ba66bae30c00260f9c8e721f2e618018c9274/packages/semi-ui-vue/src/main.scss
--------------------------------------------------------------------------------
/packages/semi-ui-vue/src/main.ts:
--------------------------------------------------------------------------------
1 | import { createApp } from 'vue'
2 | import App from './App'
3 | // import 'reset-css'
4 | import './main.scss'
5 | import './docDemo.scss'
6 |
7 | createApp(App).mount('#app')
8 |
--------------------------------------------------------------------------------
/packages/semi-ui-vue/web-types.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "../schema/web-types.json",
3 | "name": "hammerjs",
4 | "framework": "angular",
5 | "version": "2.0.0",
6 | "contributions": {
7 | "html": {
8 | "types-syntax": "typescript",
9 | "description-markup": "markdown",
10 | "tags": []
11 | }
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/packages/vite-plugin-semi-theme/README.md:
--------------------------------------------------------------------------------
1 | # vite-plugin-semi-theme
2 |
3 | - [theme options docs](https://github.com/DouyinFE/semi-design/tree/main/packages/semi-webpack#api)
4 | - support `vite > 5.0` `pnpm`
5 |
6 | ```js
7 | // vite.config.js
8 | import SemiTheme from "@kousum/vite-plugin-semi-theme";
9 |
10 | export default {
11 | plugins: [
12 | SemiTheme({
13 | // name: '@douyinfe/semi-theme-default'
14 | theme: '@semi-bot/semi-theme-nky'
15 | })
16 | ],
17 | }
18 | ```
19 |
--------------------------------------------------------------------------------
/packages/vite-plugin-semi-theme/build.config.ts:
--------------------------------------------------------------------------------
1 | import { defineBuildConfig } from 'unbuild'
2 |
3 | export default defineBuildConfig({
4 | entries: ['src/index'],
5 | clean: true,
6 | declaration: true,
7 | rollup: {
8 | emitCJS: true,
9 | },
10 | })
11 |
--------------------------------------------------------------------------------
/packages/vite-plugin-semi-theme/src/types.ts:
--------------------------------------------------------------------------------
1 | export type Options = { theme: string; include?: string; variables?: string; prefixCls?: string; cssLayer?: boolean };
2 |
--------------------------------------------------------------------------------
/packages/vite-plugin-semi-theme/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "include": ["src"],
3 | "exclude": ["**/*.spec.ts"],
4 | "compilerOptions": {
5 | "outDir": "dist",
6 | "target": "ES2020",
7 | "module": "ES2020",
8 | "moduleResolution": "Node",
9 | "strict": true,
10 | "declaration": true,
11 | "sourceMap": true,
12 | "noUnusedLocals": true,
13 | "esModuleInterop": true,
14 | "paths": {
15 | "vite": ["../vite/src/node/index.js"]
16 | }
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/pnpm-workspace.yaml:
--------------------------------------------------------------------------------
1 | packages:
2 | - 'packages/semi-animation-vue'
3 | - 'packages/semi-icons-vue'
4 | - 'packages/semi-icons-lab-vue'
5 | - 'packages/semi-ui-vue'
6 | - 'packages/semi-illustrations-vue'
7 | - 'packages/vite-plugin-semi-theme'
8 |
--------------------------------------------------------------------------------
/script/version.js:
--------------------------------------------------------------------------------
1 |
2 |
3 | function main() {
4 | const { version } = require("../packages/semi-ui-vue/package.json");
5 | return version;
6 | }
7 |
8 | console.log(main())
9 |
--------------------------------------------------------------------------------
/vite.config.ts:
--------------------------------------------------------------------------------
1 | import {defineConfig} from 'vite'
2 | import Vue from '@vitejs/plugin-vue'
3 | import Jsx from '@vitejs/plugin-vue-jsx'
4 |
5 | export default defineConfig({
6 | plugins: [Vue(), Jsx()],
7 | })
8 |
--------------------------------------------------------------------------------