├── docs ├── .vitepress │ ├── mdPlugin │ │ └── overview.ts │ └── theme │ │ └── index.ts ├── src │ ├── zh-CN │ │ ├── input │ │ │ ├── popover │ │ │ │ └── index.md │ │ │ ├── content-guidelines │ │ │ │ └── index.md │ │ │ ├── autocomplete │ │ │ │ └── demo │ │ │ │ │ └── disabledAutoComplete.vue │ │ │ └── button │ │ │ │ └── demo │ │ │ │ └── base.vue │ │ └── basic │ │ │ ├── divider │ │ │ └── demo │ │ │ │ ├── DividerDemo0.vue │ │ │ │ └── DividerDemo1.vue │ │ │ ├── space │ │ │ └── demo │ │ │ │ ├── base.vue │ │ │ │ ├── wrapDemo.vue │ │ │ │ └── verticalDemo.vue │ │ │ └── grid │ │ │ └── demo │ │ │ └── FlexOder.vue │ └── public │ │ ├── BingSiteAuth.xml │ │ ├── font │ │ ├── Inter-Bold.ttf │ │ └── Inter-Regular.ttf │ │ └── semiIconsLab │ │ └── favicon.ico └── images │ ├── semi-icon.png │ └── docIcons │ ├── doc-radio.svg │ ├── doc-card.svg │ ├── doc-popover.svg │ ├── doc-timeline.svg │ ├── index.js │ ├── doc-overflowList.svg │ ├── doc-backtop.svg │ ├── doc-progress.svg │ ├── doc-changelog.svg │ ├── doc-switch.svg │ ├── doc-checkbox.svg │ ├── doc-token.svg │ ├── doc-modal.svg │ ├── doc-sidesheet.svg │ ├── doc-userGuide.svg │ ├── semi-logo.svg │ ├── doc-webcomponents.svg │ ├── doc-vector.svg │ ├── doc-layout.svg │ ├── doc-badge.svg │ ├── doc-migrate.svg │ ├── doc-navigation.svg │ ├── doc-skeleton.svg │ ├── doc-cascader.svg │ ├── doc-slider.svg │ ├── doc-popover-1.svg │ ├── doc-steps.svg │ ├── doc-timepicker.svg │ ├── dark_mode.svg │ ├── doc-codesandbox.svg │ ├── doc-space.svg │ ├── doc-darkmode.svg │ ├── doc-pagination.svg │ ├── doc-intro.svg │ └── doc-a11y.svg ├── packages ├── semi-icons-vue │ ├── src │ │ ├── main.scss │ │ ├── icons │ │ │ ├── env.ts │ │ │ ├── svgs │ │ │ │ ├── radio.svg │ │ │ │ ├── triangle_arrow_vertical.svg │ │ │ │ ├── stop.svg │ │ │ │ ├── minus_stroked.svg │ │ │ │ ├── minus.svg │ │ │ │ ├── checkbox_indeterminate.svg │ │ │ │ ├── play.svg │ │ │ │ ├── bookmark.svg │ │ │ │ ├── mail.svg │ │ │ │ ├── component_stroked.svg │ │ │ │ ├── small_triangle_right.svg │ │ │ │ ├── triangle_up.svg │ │ │ │ ├── component.svg │ │ │ │ ├── modal_stroked.svg │ │ │ │ ├── tree_triangle_down.svg │ │ │ │ ├── tree_triangle_right.svg │ │ │ │ ├── small_triangle_down.svg │ │ │ │ ├── small_triangle_left.svg │ │ │ │ ├── small_triangle_top.svg │ │ │ │ ├── triangle_down.svg │ │ │ │ ├── contrast.svg │ │ │ │ ├── transparent_stroked.svg │ │ │ │ ├── corner_radius_stroked.svg │ │ │ │ ├── semi_logo.svg │ │ │ │ ├── bolt.svg │ │ │ │ ├── folder.svg │ │ │ │ ├── tabs_stroked.svg │ │ │ │ ├── copy.svg │ │ │ │ ├── map_pin.svg │ │ │ │ ├── unlock.svg │ │ │ │ ├── bytedance_logo.svg │ │ │ │ ├── sidebar.svg │ │ │ │ ├── filled_arrow_up.svg │ │ │ │ ├── plus_stroked.svg │ │ │ │ ├── button_stroked.svg │ │ │ │ ├── credit_card.svg │ │ │ │ ├── mail_stroked.svg │ │ │ │ ├── minus_circle.svg │ │ │ │ ├── phone.svg │ │ │ │ ├── triangle_arrow.svg │ │ │ │ ├── center_left_stroked.svg │ │ │ │ ├── center_right_stroked.svg │ │ │ │ ├── lock.svg │ │ │ │ ├── top_center_stroked.svg │ │ │ │ ├── box.svg │ │ │ │ ├── caretdown.svg │ │ │ │ ├── histogram.svg │ │ │ │ ├── italic.svg │ │ │ │ ├── pause.svg │ │ │ │ ├── bottom_center_stroked.svg │ │ │ │ ├── cloud.svg │ │ │ │ ├── monitor_stroked.svg │ │ │ │ ├── caretup.svg │ │ │ │ ├── filled_arrow_down.svg │ │ │ │ ├── inherit.svg │ │ │ │ ├── plus.svg │ │ │ │ ├── section_stroked.svg │ │ │ │ ├── inner_section_stroked.svg │ │ │ │ ├── bottom_right_stroked.svg │ │ │ │ ├── folder_stroked.svg │ │ │ │ ├── smartphone_stroked.svg │ │ │ │ ├── text_stroked.svg │ │ │ │ ├── top_right_stroked.svg │ │ │ │ ├── video.svg │ │ │ │ ├── arrow_up_left.svg │ │ │ │ ├── arrow_up_right.svg │ │ │ │ ├── bottom_left_stroked.svg │ │ │ │ ├── carousel_stroked.svg │ │ │ │ ├── mail_stroked_1.svg │ │ │ │ ├── play_circle.svg │ │ │ │ ├── top_left_stroked.svg │ │ │ │ ├── arrow_down_left.svg │ │ │ │ ├── arrow_down_right.svg │ │ │ │ ├── home.svg │ │ │ │ ├── volumn_silent.svg │ │ │ │ ├── restart.svg │ │ │ │ ├── like_heart.svg │ │ │ │ ├── moon.svg │ │ │ │ ├── chevron_down_stroked.svg │ │ │ │ ├── chevron_left.svg │ │ │ │ ├── chevron_right_stroked.svg │ │ │ │ ├── chevron_up.svg │ │ │ │ ├── desktop.svg │ │ │ │ ├── eye_opened.svg │ │ │ │ ├── grid-square.svg │ │ │ │ ├── chevron_down.svg │ │ │ │ ├── chevron_right.svg │ │ │ │ ├── grid-rectangle.svg │ │ │ │ ├── key.svg │ │ │ │ ├── reply.svg │ │ │ │ ├── text.svg │ │ │ │ ├── forward.svg │ │ │ │ ├── gallery.svg │ │ │ │ ├── music.svg │ │ │ │ ├── disc.svg │ │ │ │ ├── shopping_bag.svg │ │ │ │ ├── connection_point_1.svg │ │ │ │ ├── fast_forward.svg │ │ │ │ ├── fast_foward.svg │ │ │ │ ├── backward.svg │ │ │ │ ├── columns_stroked.svg │ │ │ │ ├── book_stroked.svg │ │ │ │ ├── sort.svg │ │ │ │ ├── top.svg │ │ │ │ ├── clock.svg │ │ │ │ ├── duration.svg │ │ │ │ ├── send.svg │ │ │ │ ├── star.svg │ │ │ │ ├── connection_point_2.svg │ │ │ │ ├── inherit_stroked.svg │ │ │ │ ├── kanban.svg │ │ │ │ ├── minus_circle_stroked.svg │ │ │ │ ├── shield_stroked.svg │ │ │ │ ├── tick.svg │ │ │ │ ├── pie_chart_stroked.svg │ │ │ │ ├── checkbox_tick.svg │ │ │ │ ├── bold.svg │ │ │ │ ├── unlock_stroked.svg │ │ │ │ ├── arrow_down.svg │ │ │ │ ├── crop.svg │ │ │ │ ├── facebook.svg │ │ │ │ ├── filter.svg │ │ │ │ ├── qingyan.svg │ │ │ │ ├── archive.svg │ │ │ │ ├── underline.svg │ │ │ │ ├── lock_stroked.svg │ │ │ │ ├── rows_stroked.svg │ │ │ │ ├── arrow_right.svg │ │ │ │ ├── font.svg │ │ │ │ ├── list_view.svg │ │ │ │ ├── option.svg │ │ │ │ ├── save_stroked.svg │ │ │ │ ├── align_h_left_stroked.svg │ │ │ │ ├── arrow_left.svg │ │ │ │ └── arrow_up.svg │ │ │ ├── styles │ │ │ │ └── variables.scss │ │ │ └── components │ │ │ │ └── interface.ts │ │ ├── assets │ │ │ └── logo.png │ │ ├── main.ts │ │ ├── __test__ │ │ │ ├── test2.spec.ts │ │ │ └── test.spec.ts │ │ ├── env.d.ts │ │ └── tsconfig.esm.json │ ├── README.md │ ├── .gitignore │ ├── public │ │ └── favicon.ico │ ├── tsconfig.esm.json │ ├── scripts │ │ ├── .prettierrc.js │ │ └── compileLib.cjs │ └── index.html ├── semi-ui-vue │ ├── src │ │ ├── main.scss │ │ ├── components │ │ │ ├── overflowList │ │ │ │ └── index.md │ │ │ ├── tooltip │ │ │ │ ├── ArrowBoundingShape.ts │ │ │ │ └── __test__ │ │ │ │ │ └── test.spec.ts │ │ │ ├── card │ │ │ │ ├── index.md │ │ │ │ ├── index-en-US.md │ │ │ │ └── __test__ │ │ │ │ │ └── test.spec.ts │ │ │ ├── form │ │ │ │ ├── index.md │ │ │ │ ├── index-en-US.md │ │ │ │ ├── hooks │ │ │ │ │ ├── useFormUpdater.tsx │ │ │ │ │ ├── useFormApi.tsx │ │ │ │ │ ├── useFormState.tsx │ │ │ │ │ └── useArrayFieldState.tsx │ │ │ │ └── hoc │ │ │ │ │ ├── withFormApi.tsx │ │ │ │ │ └── withFormState.tsx │ │ │ ├── image │ │ │ │ ├── index.md │ │ │ │ ├── index-en-US.md │ │ │ │ └── index.tsx │ │ │ ├── list │ │ │ │ ├── index.md │ │ │ │ ├── index-en-US.md │ │ │ │ └── list-context.ts │ │ │ ├── modal │ │ │ │ ├── index.md │ │ │ │ ├── index-en-US.md │ │ │ │ └── index.tsx │ │ │ ├── table │ │ │ │ ├── index.md │ │ │ │ └── index-en-US.md │ │ │ ├── banner │ │ │ │ ├── index.md │ │ │ │ ├── index-en-US.md │ │ │ │ └── __test__ │ │ │ │ │ └── test.spec.ts │ │ │ ├── calendar │ │ │ │ ├── index.md │ │ │ │ └── index-en-US.md │ │ │ ├── rating │ │ │ │ ├── index.md │ │ │ │ ├── index-en-US.md │ │ │ │ └── __test__ │ │ │ │ │ └── test.spec.ts │ │ │ ├── slider │ │ │ │ ├── index.md │ │ │ │ ├── index-en-US.md │ │ │ │ └── __test__ │ │ │ │ │ └── test.spec.ts │ │ │ ├── steps │ │ │ │ ├── index.md │ │ │ │ ├── index-en-US.md │ │ │ │ └── context.ts │ │ │ ├── switch │ │ │ │ ├── index.md │ │ │ │ ├── index-en-US.md │ │ │ │ └── __test__ │ │ │ │ │ └── test.spec.ts │ │ │ ├── tabs │ │ │ │ ├── index.md │ │ │ │ ├── index-en-US.md │ │ │ │ ├── tabs-context.ts │ │ │ │ └── __test__ │ │ │ │ │ └── TabsDocsDemo.tsx │ │ │ ├── timeline │ │ │ │ ├── index.md │ │ │ │ └── index-en-US.md │ │ │ ├── transfer │ │ │ │ ├── index.md │ │ │ │ ├── index-en-US.md │ │ │ │ └── __test__ │ │ │ │ │ └── test.spec.ts │ │ │ ├── tree │ │ │ │ ├── index.md │ │ │ │ ├── index-en-US.md │ │ │ │ └── treeUtil.tsx │ │ │ ├── upload │ │ │ │ ├── index.md │ │ │ │ └── index-en-US.md │ │ │ ├── anchor │ │ │ │ ├── index.md │ │ │ │ ├── index-en-US.md │ │ │ │ └── __test__ │ │ │ │ │ └── test.spec.ts │ │ │ ├── backtop │ │ │ │ ├── index.md │ │ │ │ ├── index-en-US.md │ │ │ │ └── __test__ │ │ │ │ │ └── test.spec.ts │ │ │ ├── collapsible │ │ │ │ ├── index.md │ │ │ │ └── index-en-US.md │ │ │ ├── highlight │ │ │ │ ├── index.md │ │ │ │ ├── index-en-US.md │ │ │ │ └── __test__ │ │ │ │ │ └── test.spec.ts │ │ │ ├── progress │ │ │ │ ├── index.md │ │ │ │ ├── index-en-US.md │ │ │ │ └── __test__ │ │ │ │ │ └── test.spec.ts │ │ │ ├── sideSheet │ │ │ │ ├── index.md │ │ │ │ └── index-en-US.md │ │ │ ├── skeleton │ │ │ │ ├── index.md │ │ │ │ ├── index-en-US.md │ │ │ │ └── __test__ │ │ │ │ │ └── test.spec.ts │ │ │ ├── treeSelect │ │ │ │ ├── index.md │ │ │ │ ├── index-en-US.md │ │ │ │ └── __test__ │ │ │ │ │ └── test.spec.tsx │ │ │ ├── breadcrumb │ │ │ │ ├── index.md │ │ │ │ ├── index-en-US.md │ │ │ │ └── __test__ │ │ │ │ │ └── test.spec.ts │ │ │ ├── descriptions │ │ │ │ ├── index.md │ │ │ │ ├── index-en-US.md │ │ │ │ └── descriptions-context.ts │ │ │ ├── inputNumber │ │ │ │ ├── index.md │ │ │ │ ├── index-en-US.md │ │ │ │ └── __test__ │ │ │ │ │ └── test.spec.ts │ │ │ ├── navigation │ │ │ │ ├── index.md │ │ │ │ ├── index-en-US.md │ │ │ │ └── README.md │ │ │ ├── pagination │ │ │ │ ├── index.md │ │ │ │ ├── index-en-US.md │ │ │ │ └── __test__ │ │ │ │ │ └── test.spec.ts │ │ │ ├── _base │ │ │ │ ├── base.scss │ │ │ │ └── vueUtils.ts │ │ │ ├── space │ │ │ │ └── __test__ │ │ │ │ │ └── test.spec.ts │ │ │ ├── icons │ │ │ │ └── index.tsx │ │ │ ├── dropdown │ │ │ │ ├── __test__ │ │ │ │ │ └── test.spec.ts │ │ │ │ └── context.ts │ │ │ ├── scrollList │ │ │ │ └── __test__ │ │ │ │ │ └── test.spec.ts │ │ │ ├── grid │ │ │ │ └── index.tsx │ │ │ ├── locale │ │ │ │ ├── context.tsx │ │ │ │ └── context │ │ │ │ │ └── Consumer.tsx │ │ │ ├── audioPlayer │ │ │ │ └── utils.ts │ │ │ ├── tagInput │ │ │ │ └── __test__ │ │ │ │ │ └── test.spec.ts │ │ │ ├── typography │ │ │ │ └── context.tsx │ │ │ ├── popover │ │ │ │ └── __test__ │ │ │ │ │ └── test.spec.ts │ │ │ ├── lottie │ │ │ │ └── __test__ │ │ │ │ │ └── test.spec.ts │ │ │ ├── button │ │ │ │ └── __test__ │ │ │ │ │ ├── test.spec.ts │ │ │ │ │ └── DemoButtonSFC.vue │ │ │ ├── _utils │ │ │ │ ├── setRefJsx.ts │ │ │ │ └── useMemo.ts │ │ │ ├── markdownRender │ │ │ │ ├── components │ │ │ │ │ ├── a.tsx │ │ │ │ │ ├── h2.tsx │ │ │ │ │ ├── h3.tsx │ │ │ │ │ ├── h4.tsx │ │ │ │ │ ├── h5.tsx │ │ │ │ │ ├── h6.tsx │ │ │ │ │ ├── h1.tsx │ │ │ │ │ ├── p.tsx │ │ │ │ │ └── index.tsx │ │ │ │ └── __test__ │ │ │ │ │ └── test.spec.ts │ │ │ ├── timePicker │ │ │ │ ├── PanelShape.ts │ │ │ │ └── TimeShape.ts │ │ │ ├── withVModel │ │ │ │ └── __test__ │ │ │ │ │ └── test.spec.ts │ │ │ ├── badge │ │ │ │ └── __test__ │ │ │ │ │ └── test.spec.ts │ │ │ ├── checkbox │ │ │ │ └── __test__ │ │ │ │ │ └── test.spec.ts │ │ │ ├── input │ │ │ │ └── __test__ │ │ │ │ │ └── test.spec.ts │ │ │ ├── carousel │ │ │ │ └── __test__ │ │ │ │ │ └── test.spec.ts │ │ │ ├── empty │ │ │ │ └── __test__ │ │ │ │ │ └── test.spec.ts │ │ │ ├── layout │ │ │ │ ├── __test__ │ │ │ │ │ └── test.spec.ts │ │ │ │ └── layoutContext.ts │ │ │ ├── radio │ │ │ │ ├── __test__ │ │ │ │ │ └── test.spec.ts │ │ │ │ └── index.tsx │ │ │ ├── divider │ │ │ │ └── __test__ │ │ │ │ │ └── test.spec.ts │ │ │ ├── tag │ │ │ │ └── __test__ │ │ │ │ │ └── test.spec.ts │ │ │ ├── configProvider │ │ │ │ ├── __test__ │ │ │ │ │ └── test.spec.ts │ │ │ │ └── context.tsx │ │ │ ├── select │ │ │ │ └── virtualRow.tsx │ │ │ ├── codeHighlight │ │ │ │ └── __test__ │ │ │ │ │ └── test.spec.ts │ │ │ ├── userGuide │ │ │ │ └── __test__ │ │ │ │ │ └── test.spec.ts │ │ │ ├── __test__ │ │ │ │ └── test.spec.ts │ │ │ ├── pincode │ │ │ │ └── __test__ │ │ │ │ │ └── test.spec.ts │ │ │ ├── avatar │ │ │ │ └── __test__ │ │ │ │ │ └── test.spec.ts │ │ │ ├── resizable │ │ │ │ └── index.tsx │ │ │ └── cascader │ │ │ │ └── virtualRow.tsx │ │ ├── assets │ │ │ └── logo.png │ │ ├── main.ts │ │ └── env.d.ts │ ├── .gitignore │ ├── web-types.json │ ├── index.html │ ├── scripts │ │ └── compileLib.cjs │ └── README.md ├── semi-animation-vue │ ├── src │ │ ├── main.scss │ │ ├── animation │ │ │ ├── utils │ │ │ │ ├── object.ts │ │ │ │ ├── noop.ts │ │ │ │ ├── invokeFns.spec.ts │ │ │ │ └── invokeFns.ts │ │ │ └── index.ts │ │ ├── assets │ │ │ └── logo.png │ │ ├── main.ts │ │ ├── __test__ │ │ │ ├── test2.spec.ts │ │ │ └── test.spec.ts │ │ ├── env.d.ts │ │ └── tsconfig.esm.json │ ├── README.md │ ├── .gitignore │ ├── public │ │ └── favicon.ico │ ├── tsconfig.esm.json │ ├── index.html │ └── index.ts ├── semi-icons-lab-vue │ ├── src │ │ ├── main.scss │ │ ├── icons │ │ │ ├── env.ts │ │ │ ├── svgs │ │ │ │ ├── radio.svg │ │ │ │ ├── card.svg │ │ │ │ ├── popover.svg │ │ │ │ ├── back-top.svg │ │ │ │ ├── switch.svg │ │ │ │ ├── changelog.svg │ │ │ │ ├── progress.svg │ │ │ │ ├── checkbox.svg │ │ │ │ ├── modal.svg │ │ │ │ ├── timeline.svg │ │ │ │ ├── overflow.svg │ │ │ │ ├── side-sheet.svg │ │ │ │ ├── layout.svg │ │ │ │ ├── token.svg │ │ │ │ ├── navigation.svg │ │ │ │ ├── badge.svg │ │ │ │ ├── webcomponents.svg │ │ │ │ ├── skeleton.svg │ │ │ │ ├── slider.svg │ │ │ │ ├── cascader.svg │ │ │ │ ├── time-picker.svg │ │ │ │ ├── steps.svg │ │ │ │ ├── dark-mode.svg │ │ │ │ ├── pagination.svg │ │ │ │ ├── intro.svg │ │ │ │ ├── space.svg │ │ │ │ ├── popconfirm.svg │ │ │ │ ├── descriptions.svg │ │ │ │ ├── divider.svg │ │ │ │ ├── accessibility.svg │ │ │ │ ├── banner.svg │ │ │ │ └── button.svg │ │ │ └── styles │ │ │ │ └── variables.scss │ │ ├── assets │ │ │ └── logo.png │ │ ├── main.ts │ │ ├── __test__ │ │ │ ├── test2.spec.ts │ │ │ └── test.spec.ts │ │ ├── env.d.ts │ │ └── tsconfig.esm.json │ ├── README.md │ ├── .gitignore │ ├── public │ │ └── favicon.ico │ ├── tsconfig.esm.json │ ├── scripts │ │ ├── .prettierrc.js │ │ └── compileLib.cjs │ └── index.html ├── semi-illustrations-vue │ ├── src │ │ ├── main.scss │ │ ├── main.ts │ │ ├── env.d.ts │ │ ├── tsconfig.esm.json │ │ └── App.tsx │ ├── README.md │ ├── .gitignore │ ├── tsconfig.esm.json │ ├── scripts │ │ ├── .prettierrc.cjs │ │ └── compileLib.cjs │ └── index.html └── vite-plugin-semi-theme │ ├── src │ └── types.ts │ ├── build.config.ts │ ├── tsconfig.json │ └── README.md ├── env.d.ts ├── netlify.toml ├── .storybook ├── preview-head.html └── preview.ts ├── .npmrc.bak ├── .github └── ISSUE_TEMPLATE │ └── config.yml ├── script └── version.js ├── .idea ├── .gitignore ├── vcs.xml ├── jsLibraryMappings.xml └── modules.xml ├── vite.config.ts ├── pnpm-workspace.yaml ├── .prettierrc.js └── .changeset ├── config.json └── README.md /docs/.vitepress/mdPlugin/overview.ts: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /docs/src/zh-CN/input/popover/index.md: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/semi-icons-vue/src/main.scss: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/semi-ui-vue/src/main.scss: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/semi-animation-vue/src/main.scss: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/semi-icons-lab-vue/src/main.scss: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /docs/src/zh-CN/input/content-guidelines/index.md: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/semi-illustrations-vue/src/main.scss: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | -------------------------------------------------------------------------------- /packages/semi-animation-vue/src/animation/utils/object.ts: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/semi-icons-vue/README.md: -------------------------------------------------------------------------------- 1 | # semi-icons of vue3 2 | -------------------------------------------------------------------------------- /packages/semi-ui-vue/src/components/overflowList/index.md: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/semi-icons-lab-vue/README.md: -------------------------------------------------------------------------------- 1 | # semi-icons of vue3 2 | -------------------------------------------------------------------------------- /netlify.toml: -------------------------------------------------------------------------------- 1 | [build.environment] 2 | PNPM_VERSION = "10.x" 3 | -------------------------------------------------------------------------------- /packages/semi-ui-vue/src/components/tooltip/ArrowBoundingShape.ts: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /packages/semi-illustrations-vue/README.md: -------------------------------------------------------------------------------- 1 | # semi-illustrations-vue of vue3 2 | -------------------------------------------------------------------------------- /packages/semi-icons-vue/src/icons/env.ts: -------------------------------------------------------------------------------- 1 | export const BASE_CLASS_PREFIX = 'semi'; -------------------------------------------------------------------------------- /.storybook/preview-head.html: -------------------------------------------------------------------------------- 1 | 4 | -------------------------------------------------------------------------------- /packages/semi-icons-lab-vue/src/icons/env.ts: -------------------------------------------------------------------------------- 1 | export const BASE_CLASS_PREFIX = 'semi'; -------------------------------------------------------------------------------- /packages/semi-ui-vue/src/components/card/index.md: -------------------------------------------------------------------------------- 1 | ../../../content/show/card/index.md -------------------------------------------------------------------------------- /packages/semi-ui-vue/src/components/form/index.md: -------------------------------------------------------------------------------- 1 | ../../../content/input/form/index.md -------------------------------------------------------------------------------- /packages/semi-ui-vue/src/components/image/index.md: -------------------------------------------------------------------------------- 1 | ../../../content/show/image/index.md -------------------------------------------------------------------------------- /packages/semi-ui-vue/src/components/list/index.md: -------------------------------------------------------------------------------- 1 | ../../../content/show/list/index.md -------------------------------------------------------------------------------- /packages/semi-ui-vue/src/components/modal/index.md: -------------------------------------------------------------------------------- 1 | ../../../content/show/modal/index.md -------------------------------------------------------------------------------- /packages/semi-ui-vue/src/components/table/index.md: -------------------------------------------------------------------------------- 1 | ../../../content/show/table/index.md -------------------------------------------------------------------------------- /packages/semi-ui-vue/src/components/banner/index.md: -------------------------------------------------------------------------------- 1 | ../../../content/feedback/banner/index.md -------------------------------------------------------------------------------- /packages/semi-ui-vue/src/components/calendar/index.md: -------------------------------------------------------------------------------- 1 | ../../../content/show/calendar/index.md -------------------------------------------------------------------------------- /packages/semi-ui-vue/src/components/rating/index.md: -------------------------------------------------------------------------------- 1 | ../../../content/input/rating/index.md -------------------------------------------------------------------------------- /packages/semi-ui-vue/src/components/slider/index.md: -------------------------------------------------------------------------------- 1 | ../../../content/input/slider/index.md -------------------------------------------------------------------------------- /packages/semi-ui-vue/src/components/steps/index.md: -------------------------------------------------------------------------------- 1 | ../../../content/navigation/steps/index.md -------------------------------------------------------------------------------- /packages/semi-ui-vue/src/components/switch/index.md: -------------------------------------------------------------------------------- 1 | ../../../content/input/switch/index.md -------------------------------------------------------------------------------- /packages/semi-ui-vue/src/components/tabs/index.md: -------------------------------------------------------------------------------- 1 | ../../../content/navigation/tabs/index.md -------------------------------------------------------------------------------- /packages/semi-ui-vue/src/components/timeline/index.md: -------------------------------------------------------------------------------- 1 | ../../../content/show/timeline/index.md -------------------------------------------------------------------------------- /packages/semi-ui-vue/src/components/transfer/index.md: -------------------------------------------------------------------------------- 1 | ../../../content/input/transfer/index.md -------------------------------------------------------------------------------- /packages/semi-ui-vue/src/components/tree/index.md: -------------------------------------------------------------------------------- 1 | ../../../content/navigation/tree/index.md -------------------------------------------------------------------------------- /packages/semi-ui-vue/src/components/upload/index.md: -------------------------------------------------------------------------------- 1 | ../../../content/input/upload/index.md -------------------------------------------------------------------------------- /packages/semi-animation-vue/README.md: -------------------------------------------------------------------------------- 1 | # semi-animation-vue 2 | `npm publish --access public` 3 | -------------------------------------------------------------------------------- /packages/semi-ui-vue/src/components/anchor/index.md: -------------------------------------------------------------------------------- 1 | ../../../content/navigation/anchor/index.md -------------------------------------------------------------------------------- /packages/semi-ui-vue/src/components/backtop/index.md: -------------------------------------------------------------------------------- 1 | ../../../content/navigation/backtop/index.md -------------------------------------------------------------------------------- /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/collapsible/index.md: -------------------------------------------------------------------------------- 1 | ../../../content/show/collapsible/index.md -------------------------------------------------------------------------------- /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/highlight/index.md: -------------------------------------------------------------------------------- 1 | ../../../content/show/highlight/index.md -------------------------------------------------------------------------------- /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/list/index-en-US.md: -------------------------------------------------------------------------------- 1 | ../../../content/show/list/index-en-US.md -------------------------------------------------------------------------------- /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/progress/index.md: -------------------------------------------------------------------------------- 1 | ../../../content/feedback/progress/index.md -------------------------------------------------------------------------------- /packages/semi-ui-vue/src/components/sideSheet/index.md: -------------------------------------------------------------------------------- 1 | ../../../content/show/sidesheet/index.md -------------------------------------------------------------------------------- /packages/semi-ui-vue/src/components/skeleton/index.md: -------------------------------------------------------------------------------- 1 | ../../../content/feedback/skeleton/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/treeSelect/index.md: -------------------------------------------------------------------------------- 1 | ../../../content/input/treeselect/index.md -------------------------------------------------------------------------------- /packages/semi-ui-vue/src/components/breadcrumb/index.md: -------------------------------------------------------------------------------- 1 | ../../../content/navigation/breadcrumb/index.md -------------------------------------------------------------------------------- /packages/semi-ui-vue/src/components/descriptions/index.md: -------------------------------------------------------------------------------- 1 | ../../../content/show/descriptions/index.md -------------------------------------------------------------------------------- /packages/semi-ui-vue/src/components/inputNumber/index.md: -------------------------------------------------------------------------------- 1 | ../../../content/input/inputnumber/index.md -------------------------------------------------------------------------------- /packages/semi-ui-vue/src/components/navigation/index.md: -------------------------------------------------------------------------------- 1 | ../../../content/navigation/navigation/index.md -------------------------------------------------------------------------------- /packages/semi-ui-vue/src/components/pagination/index.md: -------------------------------------------------------------------------------- 1 | ../../../content/navigation/pagination/index.md -------------------------------------------------------------------------------- /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/slider/index-en-US.md: -------------------------------------------------------------------------------- 1 | ../../../content/input/slider/index-en-US.md -------------------------------------------------------------------------------- /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/tabs/index-en-US.md: -------------------------------------------------------------------------------- 1 | ../../../content/navigation/tabs/index-en-US.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/upload/index-en-US.md: -------------------------------------------------------------------------------- 1 | ../../../content/input/upload/index-en-US.md -------------------------------------------------------------------------------- /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/src/components/anchor/index-en-US.md: -------------------------------------------------------------------------------- 1 | ../../../content/navigation/anchor/index-en-US.md -------------------------------------------------------------------------------- /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/banner/index-en-US.md: -------------------------------------------------------------------------------- 1 | ../../../content/feedback/banner/index-en-US.md -------------------------------------------------------------------------------- /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/highlight/index-en-US.md: -------------------------------------------------------------------------------- 1 | ../../../content/show/highlight/index-en-US.md -------------------------------------------------------------------------------- /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/sideSheet/index-en-US.md: -------------------------------------------------------------------------------- 1 | ../../../content/show/sidesheet/index-en-US.md -------------------------------------------------------------------------------- /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/steps/index-en-US.md: -------------------------------------------------------------------------------- 1 | ../../../content/navigation/steps/index-en-US.md -------------------------------------------------------------------------------- /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/transfer/index-en-US.md: -------------------------------------------------------------------------------- 1 | ../../../content/input/transfer/index-en-US.md -------------------------------------------------------------------------------- /docs/images/semi-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rashagu/semi-design-vue/HEAD/docs/images/semi-icon.png -------------------------------------------------------------------------------- /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/descriptions/index-en-US.md: -------------------------------------------------------------------------------- 1 | ../../../content/show/descriptions/index-en-US.md -------------------------------------------------------------------------------- /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/treeSelect/index-en-US.md: -------------------------------------------------------------------------------- 1 | ../../../content/input/treeselect/index-en-US.md -------------------------------------------------------------------------------- /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/navigation/index-en-US.md: -------------------------------------------------------------------------------- 1 | ../../../content/navigation/navigation/index-en-US.md -------------------------------------------------------------------------------- /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/_base/base.scss: -------------------------------------------------------------------------------- 1 | @import '@douyinfe/semi-foundation/base/base'; 2 | .semi-base { 3 | } 4 | -------------------------------------------------------------------------------- /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/HEAD/docs/src/public/font/Inter-Bold.ttf -------------------------------------------------------------------------------- /.npmrc.bak: -------------------------------------------------------------------------------- 1 | registry=https://registry.npmmirror.com/ 2 | 3 | # registry=https://registry.npmjs.org/ 4 | auto-install-peers=true 5 | 6 | -------------------------------------------------------------------------------- /docs/src/public/font/Inter-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rashagu/semi-design-vue/HEAD/docs/src/public/font/Inter-Regular.ttf -------------------------------------------------------------------------------- /docs/src/public/semiIconsLab/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rashagu/semi-design-vue/HEAD/docs/src/public/semiIconsLab/favicon.ico -------------------------------------------------------------------------------- /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/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rashagu/semi-design-vue/HEAD/packages/semi-icons-vue/public/favicon.ico -------------------------------------------------------------------------------- /packages/semi-ui-vue/src/assets/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rashagu/semi-design-vue/HEAD/packages/semi-ui-vue/src/assets/logo.png -------------------------------------------------------------------------------- /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-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-vue/src/assets/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rashagu/semi-design-vue/HEAD/packages/semi-icons-vue/src/assets/logo.png -------------------------------------------------------------------------------- /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-animation-vue/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rashagu/semi-design-vue/HEAD/packages/semi-animation-vue/public/favicon.ico -------------------------------------------------------------------------------- /packages/semi-animation-vue/src/assets/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rashagu/semi-design-vue/HEAD/packages/semi-animation-vue/src/assets/logo.png -------------------------------------------------------------------------------- /packages/semi-icons-lab-vue/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rashagu/semi-design-vue/HEAD/packages/semi-icons-lab-vue/public/favicon.ico -------------------------------------------------------------------------------- /packages/semi-icons-lab-vue/src/assets/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rashagu/semi-design-vue/HEAD/packages/semi-icons-lab-vue/src/assets/logo.png -------------------------------------------------------------------------------- /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-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-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-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-vue/tsconfig.esm.json: -------------------------------------------------------------------------------- 1 | { 2 | "files": [], 3 | "references": [ 4 | { 5 | "path": "./src/tsconfig.esm.json" 6 | }, 7 | ] 8 | } 9 | -------------------------------------------------------------------------------- /packages/vite-plugin-semi-theme/src/types.ts: -------------------------------------------------------------------------------- 1 | export type Options = { theme: string; include?: string; variables?: string; prefixCls?: string; cssLayer?: boolean }; 2 | -------------------------------------------------------------------------------- /.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 | -------------------------------------------------------------------------------- /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/tsconfig.esm.json: -------------------------------------------------------------------------------- 1 | { 2 | "files": [], 3 | "references": [ 4 | { 5 | "path": "./src/tsconfig.esm.json" 6 | }, 7 | ] 8 | } 9 | -------------------------------------------------------------------------------- /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/tsconfig.esm.json: -------------------------------------------------------------------------------- 1 | { 2 | "files": [], 3 | "references": [ 4 | { 5 | "path": "./src/tsconfig.esm.json" 6 | }, 7 | ] 8 | } 9 | -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /packages/semi-icons-vue/src/icons/svgs/radio.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /.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/vcs.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /packages/semi-icons-lab-vue/src/icons/svgs/radio.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /.idea/jsLibraryMappings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /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/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/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/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/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 | -------------------------------------------------------------------------------- /docs/images/docIcons/doc-radio.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /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/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/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 | -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /.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 | -------------------------------------------------------------------------------- /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/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/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/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/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/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/semi-icons-vue/src/icons/svgs/triangle_arrow_vertical.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /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/src/icons/svgs/stop.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /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-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-icons-lab-vue/src/icons/svgs/card.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/semi-icons-vue/src/icons/svgs/minus_stroked.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/semi-icons-vue/src/icons/svgs/minus.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /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-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-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/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 | -------------------------------------------------------------------------------- /.idea/modules.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /docs/images/docIcons/doc-card.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/semi-icons-lab-vue/src/icons/svgs/popover.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/semi-icons-vue/src/icons/svgs/checkbox_indeterminate.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /docs/src/zh-CN/basic/divider/demo/DividerDemo0.vue: -------------------------------------------------------------------------------- 1 | 6 | 7 | 13 | -------------------------------------------------------------------------------- /docs/src/zh-CN/basic/divider/demo/DividerDemo1.vue: -------------------------------------------------------------------------------- 1 | 6 | 7 | 13 | -------------------------------------------------------------------------------- /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-icons-vue/src/icons/svgs/play.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /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-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-icons-vue/src/icons/svgs/bookmark.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /.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 | -------------------------------------------------------------------------------- /docs/images/docIcons/doc-popover.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /packages/semi-icons-lab-vue/src/icons/svgs/back-top.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/semi-icons-vue/src/icons/svgs/mail.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /docs/images/docIcons/doc-timeline.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 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; -------------------------------------------------------------------------------- /packages/semi-icons-lab-vue/src/icons/svgs/switch.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/semi-icons-vue/src/icons/svgs/component_stroked.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/semi-icons-vue/src/icons/svgs/small_triangle_right.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/semi-icons-lab-vue/src/icons/svgs/changelog.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/semi-icons-lab-vue/src/icons/svgs/progress.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/semi-icons-vue/src/icons/svgs/triangle_up.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /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/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 | -------------------------------------------------------------------------------- /docs/images/docIcons/doc-overflowList.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /packages/semi-icons-vue/src/icons/svgs/component.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/semi-icons-vue/src/icons/svgs/modal_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 | -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /docs/images/docIcons/doc-backtop.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /packages/semi-icons-lab-vue/src/icons/svgs/checkbox.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/semi-icons-lab-vue/src/icons/svgs/modal.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/semi-icons-lab-vue/src/icons/svgs/timeline.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /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-icons-lab-vue/src/icons/svgs/overflow.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /packages/semi-icons-lab-vue/src/icons/svgs/side-sheet.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_top.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /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/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 | -------------------------------------------------------------------------------- /docs/images/docIcons/doc-progress.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /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/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/svgs/triangle_down.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /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-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/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/__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/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/svgs/contrast.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /docs/images/docIcons/doc-changelog.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /docs/images/docIcons/doc-switch.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /docs/src/zh-CN/basic/space/demo/base.vue: -------------------------------------------------------------------------------- 1 | 4 | 5 | 13 | -------------------------------------------------------------------------------- /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-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-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-icons-vue/src/icons/svgs/transparent_stroked.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /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/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/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/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/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 | -------------------------------------------------------------------------------- /docs/images/docIcons/doc-checkbox.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /docs/images/docIcons/doc-token.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /docs/src/zh-CN/basic/space/demo/wrapDemo.vue: -------------------------------------------------------------------------------- 1 | 13 | 14 | 17 | -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /docs/images/docIcons/doc-modal.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /docs/images/docIcons/doc-sidesheet.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /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-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/icons/svgs/corner_radius_stroked.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/semi-icons-vue/src/icons/svgs/semi_logo.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /docs/images/docIcons/doc-userGuide.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /packages/semi-icons-lab-vue/src/icons/svgs/layout.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /docs/images/docIcons/semi-logo.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /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-icons-lab-vue/src/icons/svgs/token.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /packages/semi-icons-vue/src/icons/svgs/bolt.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/semi-icons-vue/src/icons/svgs/folder.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/semi-icons-vue/src/icons/svgs/tabs_stroked.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /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-icons-vue/src/icons/svgs/copy.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/semi-icons-vue/src/icons/svgs/map_pin.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /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/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/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-icons-vue/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Vite App 8 | 9 | 10 |
11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /.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/images/docIcons/doc-webcomponents.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /packages/semi-animation-vue/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Vite App 8 | 9 | 10 |
11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /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-vue/src/icons/svgs/unlock.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /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/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-illustrations-vue/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Vite App 8 | 9 | 10 |
11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /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/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 | -------------------------------------------------------------------------------- /docs/images/docIcons/doc-vector.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /docs/src/zh-CN/input/autocomplete/demo/disabledAutoComplete.vue: -------------------------------------------------------------------------------- 1 | 13 | 14 | 17 | 18 | -------------------------------------------------------------------------------- /packages/semi-icons-lab-vue/src/icons/svgs/navigation.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/semi-icons-vue/src/icons/svgs/bytedance_logo.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/semi-icons-vue/src/icons/svgs/sidebar.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /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/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/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/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-icons-lab-vue/src/icons/svgs/badge.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/semi-icons-lab-vue/src/icons/svgs/webcomponents.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /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/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/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 | -------------------------------------------------------------------------------- /docs/images/docIcons/doc-layout.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /docs/src/zh-CN/basic/space/demo/verticalDemo.vue: -------------------------------------------------------------------------------- 1 | 9 | 12 | 13 | -------------------------------------------------------------------------------- /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/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-icons-vue/src/icons/svgs/filled_arrow_up.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/semi-icons-vue/src/icons/svgs/plus_stroked.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /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-icons-lab-vue/src/icons/svgs/skeleton.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/semi-icons-lab-vue/src/icons/svgs/slider.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /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/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/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/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-icons-vue/src/icons/svgs/button_stroked.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/semi-icons-vue/src/icons/svgs/credit_card.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/semi-icons-vue/src/icons/svgs/mail_stroked.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/semi-icons-vue/src/icons/svgs/minus_circle.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/semi-icons-vue/src/icons/svgs/phone.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/semi-icons-vue/src/icons/svgs/triangle_arrow.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /docs/images/docIcons/doc-badge.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /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-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/lock.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/semi-icons-vue/src/icons/svgs/top_center_stroked.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /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/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/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 | -------------------------------------------------------------------------------- /docs/images/docIcons/doc-migrate.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /packages/semi-icons-vue/src/icons/svgs/box.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/semi-icons-vue/src/icons/svgs/caretdown.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/semi-icons-vue/src/icons/svgs/histogram.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/semi-icons-vue/src/icons/svgs/italic.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/semi-icons-vue/src/icons/svgs/pause.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/semi-icons-vue/src/icons/svgs/bottom_center_stroked.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/semi-icons-vue/src/icons/svgs/cloud.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/semi-icons-vue/src/icons/svgs/monitor_stroked.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /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/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-icons-lab-vue/src/icons/svgs/cascader.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/semi-icons-vue/src/icons/svgs/caretup.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/semi-icons-vue/src/icons/svgs/filled_arrow_down.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /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-icons-lab-vue/src/icons/svgs/time-picker.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/semi-icons-vue/src/icons/svgs/inherit.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/semi-icons-vue/src/icons/svgs/plus.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/semi-icons-vue/src/icons/svgs/section_stroked.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /docs/images/docIcons/doc-navigation.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /packages/semi-icons-lab-vue/src/icons/svgs/steps.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/semi-icons-vue/src/icons/svgs/inner_section_stroked.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /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-icons-vue/src/icons/svgs/bottom_right_stroked.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/semi-icons-vue/src/icons/svgs/folder_stroked.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/semi-icons-vue/src/icons/svgs/smartphone_stroked.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/semi-icons-vue/src/icons/svgs/text_stroked.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/semi-icons-vue/src/icons/svgs/top_right_stroked.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/semi-icons-vue/src/icons/svgs/video.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /docs/images/docIcons/doc-skeleton.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /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/bottom_left_stroked.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/semi-icons-vue/src/icons/svgs/carousel_stroked.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/semi-icons-vue/src/icons/svgs/mail_stroked_1.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/semi-icons-vue/src/icons/svgs/play_circle.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/semi-icons-vue/src/icons/svgs/top_left_stroked.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /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/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-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-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/home.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/semi-icons-vue/src/icons/svgs/volumn_silent.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /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/button/__test__/DemoButtonSFC.vue: -------------------------------------------------------------------------------- 1 | 15 | 16 | 19 | 20 | 23 | -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /docs/images/docIcons/doc-cascader.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /docs/images/docIcons/doc-slider.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /packages/semi-icons-vue/src/icons/svgs/restart.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /docs/images/docIcons/doc-popover-1.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /packages/semi-icons-vue/src/icons/svgs/like_heart.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/semi-icons-vue/src/icons/svgs/moon.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /docs/images/docIcons/doc-steps.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /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/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_stroked.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/semi-icons-vue/src/icons/svgs/chevron_up.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/semi-icons-vue/src/icons/svgs/desktop.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/semi-icons-vue/src/icons/svgs/eye_opened.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /packages/semi-icons-vue/src/icons/svgs/grid-square.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /docs/images/docIcons/doc-timepicker.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /packages/semi-icons-lab-vue/src/icons/svgs/dark-mode.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/semi-icons-lab-vue/src/icons/svgs/pagination.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /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/icons/svgs/chevron_down.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/semi-icons-vue/src/icons/svgs/chevron_right.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/semi-icons-vue/src/icons/svgs/grid-rectangle.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/semi-icons-vue/src/icons/svgs/key.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/semi-icons-vue/src/icons/svgs/reply.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/semi-icons-vue/src/icons/svgs/text.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /docs/images/docIcons/dark_mode.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /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-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-vue/src/icons/svgs/forward.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/semi-icons-vue/src/icons/svgs/gallery.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/semi-icons-vue/src/icons/svgs/music.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /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 | 30 | ``` 31 | -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /docs/src/zh-CN/input/button/demo/base.vue: -------------------------------------------------------------------------------- 1 | 4 | 5 | 14 | 15 | 20 | -------------------------------------------------------------------------------- /packages/semi-icons-vue/src/icons/svgs/disc.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/semi-icons-vue/src/icons/svgs/shopping_bag.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /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/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 | -------------------------------------------------------------------------------- /docs/images/docIcons/doc-codesandbox.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /packages/semi-icons-lab-vue/src/icons/svgs/intro.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/semi-icons-lab-vue/src/icons/svgs/space.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/semi-icons-vue/src/icons/svgs/connection_point_1.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /packages/semi-icons-vue/src/icons/svgs/fast_forward.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/semi-icons-vue/src/icons/svgs/fast_foward.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /.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 | -------------------------------------------------------------------------------- /docs/images/docIcons/doc-space.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/semi-icons-vue/src/icons/svgs/backward.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/semi-icons-vue/src/icons/svgs/columns_stroked.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /docs/images/docIcons/doc-darkmode.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /packages/semi-icons-lab-vue/src/icons/svgs/popconfirm.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/semi-icons-vue/src/icons/svgs/book_stroked.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/semi-icons-vue/src/icons/svgs/sort.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/semi-icons-vue/src/icons/svgs/top.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /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-icons-vue/src/icons/svgs/clock.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/semi-icons-vue/src/icons/svgs/duration.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/semi-icons-vue/src/icons/svgs/send.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/semi-icons-vue/src/icons/svgs/star.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /docs/images/docIcons/doc-pagination.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /packages/semi-icons-vue/src/icons/svgs/connection_point_2.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /packages/semi-icons-vue/src/icons/svgs/inherit_stroked.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/semi-icons-vue/src/icons/svgs/kanban.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/semi-icons-vue/src/icons/svgs/minus_circle_stroked.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/semi-icons-vue/src/icons/svgs/shield_stroked.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/semi-icons-vue/src/icons/svgs/tick.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /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-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 | -------------------------------------------------------------------------------- /docs/images/docIcons/doc-intro.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /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-vue/src/icons/svgs/pie_chart_stroked.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /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/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-icons-vue/src/icons/svgs/checkbox_tick.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /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-icons-lab-vue/src/icons/svgs/accessibility.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/semi-icons-vue/src/icons/svgs/bold.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/semi-icons-vue/src/icons/svgs/unlock_stroked.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /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/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-icons-lab-vue/src/icons/svgs/banner.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/semi-icons-vue/src/icons/svgs/arrow_down.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/semi-icons-vue/src/icons/svgs/crop.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/semi-icons-vue/src/icons/svgs/facebook.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/semi-icons-vue/src/icons/svgs/filter.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/semi-icons-vue/src/icons/svgs/qingyan.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /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 |
15 |
123
16 |
17 | ) 18 | }) 19 | 20 | 21 | // @ts-ignore 22 | App.props = VuePropsType 23 | 24 | export default App 25 | -------------------------------------------------------------------------------- /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/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-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-vue/src/icons/svgs/archive.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/semi-icons-vue/src/icons/svgs/underline.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /docs/images/docIcons/doc-a11y.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /packages/semi-icons-vue/src/icons/svgs/lock_stroked.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/semi-icons-vue/src/icons/svgs/rows_stroked.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/semi-icons-lab-vue/src/icons/svgs/button.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/semi-icons-vue/src/icons/svgs/arrow_right.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/semi-icons-vue/src/icons/svgs/font.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/semi-icons-vue/src/icons/svgs/list_view.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/semi-icons-vue/src/icons/svgs/option.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/semi-icons-vue/src/icons/svgs/save_stroked.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /docs/src/zh-CN/basic/grid/demo/FlexOder.vue: -------------------------------------------------------------------------------- 1 | 4 | 5 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /packages/semi-icons-vue/src/icons/svgs/align_h_left_stroked.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/semi-icons-vue/src/icons/svgs/arrow_left.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/semi-icons-vue/src/icons/svgs/arrow_up.svg: -------------------------------------------------------------------------------- 1 | --------------------------------------------------------------------------------